thegoodfellas/blogset-br huggingface dataset:
o HD Tach, voce obtera sempre um grafico similar a este, onde a taxa de leitura comeca num nivel alto (trilhas externas) e vai decaindo ate atingir o ponto mais baixo no final do teste (ao ler o conteudo das trilhas mais internas):Um dos principais motivos do desempenho dos HDs nao ter crescido na mesma proporcao da capacidade ao longo das ultimas decadas e que a densidade das trilhas aumentou numa escala muito maior que a dos setores dentro destas. Ou seja, as trilhas foram ficando mais "finas", mas o numero de setores por trilha passou a aumentar em escala incremental. Aumentar o numero de trilhas permite aumentar a area de armazenamento, mas e o numero de setores por trilha, combinado com a velocidade de rotacao do HD que determina a performance.Um antigo Maxtor 7040A, de 40 MB, por exemplo, possuia uma taxa de leitura media em torno de 700 KB/s, o que permitia ler todo o conteudo do disco em cerca de um minuto.Um Seagate Barracuda 7200.10 atual, de 750 GB, e bem mais rapido, com uma taxa media de leitura de 64 MB/s, mas, apesar disso, como a capacidade e brutalmente maior, ler todos os dados do disco demoraria pelo menos 3 horas e 15 minutos!No futuro, esta tendencia deve se manter, pois e muito mais simples para os fabricantes produzir cabecas de leitura e sistemas de codificacao capazes de lidarem com trilhas mais finas, do que espremer mais dados dentro de cada trilha, ja que elementos magneticos menores correspondem a um sinal magnetico mais fraco e, consequentemente, mais dificil de ser captado pela cabeca de leitura. Como um agravante, temos o problema do superparamagnetismo, que vimos ha pouco.Correcao de erros e badblocksConcluindo, temos a questao da deteccao e correcao de erros, que faz parte do processo de leitura e gravacao.Por melhor que seja sua qualidade, nenhuma midia magnetica e 100% confiavel (como pode confirmar quem ja teve o desprazer de trabalhar com disquetes... :). Pequenas falhas na superficie da midia podem levar a erros de leitura, sobretudo quando ela possui uma densidade de gravacao de mais de 100 gigabits por polegada quadrada e gira a 7.200 RPM ou mais, como nos HDs atuais.Isso nao significa que o seu HD va pifar amanha, mas que sao comuns erros na leitura de um setor ou outro. Obviamente, como todos os nossos dados importantes sao guardados no disco rigido, a possibilidade de erros na leitura de "um setor ou outro" nao seria aceitavel, principalmente no caso de maquinas destinadas a operacoes criticas. Imagine se, nesse "setor ou outro" do servidor de um grande banco, estivessem gravados os dados referentes a conta bancaria de um cliente importante, por exemplo.De modo a tornar os HDs uma forma de armazenamento confiavel, os fabricantes utilizam sistemas de ECC para detectar e corrigir erros de leitura eventualmente encontrados. O ECC e o mesmo sistema utilizado em modulos de memoria destinados a servidores e tambem em CD-ROMs, onde sao usados nada menos do que 276 bytes de codigos de correcao de erros para cada setor de 2048 bytes.Em
HD por particulas provenientes do ambiente. O ideal nesses casos e fazer backup de todos os dados e substituir o HD o mais rapido possivel.Entretanto, mesmo para estes HDs condenados, as vezes existe uma solucao. E comum a maioria dos setores aparecerem mais ou menos agrupados, englobando uma area relativamente pequena do disco. Se houver muitos badblocks em areas proximas, voce pode reparticionar o disco, isolando a area com problemas.Se, por exemplo, voce percebesse que a maioria dos defeitos se encontra nos ultimos 20% do disco, bastaria abrir o particionador, deletar a particao atual e criar uma nova, englobando apenas 80% do disco. Neste caso, voce perderia uma boa parte da area util, mas pelo menos teria a possibilidade de continuar usando a parte "boa" do HD (em algum micro usado para tarefas secundarias, sem dados importantes), ate que ele desse seus derradeiros suspiros.Proximo: NCQDesempenhoO desempenho do HD e determinado basicamente pela densidade dos discos, velocidade de rotacao e, em menor grau, pelo tamanho do cache de leitura e suporte ao NCQ. Por ser um componente mecanico, nao existe muito o que os fabricantes possam fazer para melhorar o desempenho de forma consideravel sem mexer nesses fatores.Outra questao e que o mercado de HDs e um ramo incrivelmente competitivo, de forma que tecnologias revolucionarias, como, por exemplo, a tecnica de gravacao perpendicular, sao rapidamente adotadas por todos os fabricantes, ja que os que nao sao capazes de acompanhar a evolucao tecnologica simplesmente nao conseguem se manter no mercado.Em se tratando de HDs "normais", destinados ao mercado de consumo, dois HDs produzidos na mesma epoca, com a mesma velocidade de rotacao e a mesma quantidade de cache, tendem a possuir um desempenho muito parecido.Na hora da compra voce deve se preocupar mais em nao levar para casa HDs antigos, baseados em tecnologias obsoletas, que por algum motivo tenham ficado parados no estoque dos distribuidores. Um HD de 500 GB produzido em 2010 muito provavelmente possuira um unico platter e sera mais rapido que um HD produzido dois ano antes (que embora tenha a mesma capacidade, utilizara dois platers), mesmo que ambos sejam de 7200 RPM e sejam vendidos por mais ou menos o mesmo preco.Existem ainda casos de HDs "premium", que utilizam tecnologias recentemente introduzidas ou mudancas radicais no design e dessa forma conseguem ficar um passo a frente em termos de desempenho. Eles naturalmente ficam no topo das tabelas comparativas, mas em geral nao sao uma boa opcao de compra fora de nichos muito especificos, pois sempre possuem um custo por megabyte muito mais alto.Um bom exemplo sao os Maxtor Atlas 15K II, uma serie de HDs SCSI que ate 2006 estavam entre os mais rapidos do mercado, em detrimento da capacidade de armazenamento.Como voce pode ver na foto a seguir, embora o Atlas 15K II fosse um HD de 3.5", internamente ele utilizava discos de 2.5", similares aos usados em notebooks. O menor diametro dos discos reduziu a capacidade de armazenamento, mas permitiu que os discos girassem a 15.000 RPM. O menor diametro tambem permitiu reduzir o tempo de acesso (ja
que a distancia a ser percorrida pelas cabecas de leitura era menor) o que, combinado com outras melhorias, resultou num HD Ultra 320 SCSI com tempo de acesso de apenas 5.5 ms e taxa de leitura sequencial (nas trilhas externas) de 98 MB/s:Atlas 15K II: um HD de 3.5", com discos de 2.5"O problema e que, alem de caro, a capacidade de armazenamento era pequena, mesmo para os padroes da epoca. O modelo com um platter armazenava apenas 37 GB, enquanto o modelo com quatro armazenava 147 GB. Ou seja, voce pagaria ate US$ 1.000 para ter uma capacidade equivalente a de um HD low-end.De uma forma geral, o melhor em termos de custo-beneficio e comprar HDs de geracao atual, escolhendo entre os modelos de baixo custo e substituir o HD a cada 18 ou 24 meses, se possivel revendendo o antigo (por algum motivo os HDs costumam ser um item valorizado no mercado de componentes usados, talvez porque todo mundo sempre precisa de mais espaco :). Dessa forma, voce vai conseguir manter sempre o seu equipamento relativamente atualizado, gastando pouco.Acaba sendo muito melhor do que gastar o dobro, tentando comprar "o melhor HD", que vai estar desatualizado da mesma forma daqui ha dois anos. Tenha em mente que a vida util de qualquer equipamento e limitada, entao so vale a pena gastar mais se o ganho de desempenho realmente for lhe trazer um retorno tangivel ao longo desse periodo.Em um servidor, o investimento em HDs topo de linha pode compensar em muitos casos, ja que um melhor desempenho equivale a mais requisicoes e, consequentemente, mais clientes atendidos. A perda acumulada de algumas visitas diarias, ao longo de alguns anos, poderia corresponder a um prejuizo equivalente a varias vezes o valor investido nos HDs, por exemplo.Tenha em mente, entretanto, que o perfil de uso de disco em um servidor e bem diferente do uso em um desktop tipico, sem contar que, dada a sua importancia, pequenos ganhos de desempenho podem realmente compensar pequenas extravagancias, o que nao e o caso de um desktop tipico.Por mais que voce mantenha varios programas abertos e realize muitas operacoes ao mesmo tempo, nao vai conseguir chegar nem perto do que acontece num servidor web, por exemplo, que precisa responder a um grande volume de requisicoes simultaneas a cada segundo.Num servidor tipico, sao realizadas um enorme numero de pequenas leituras, que sao usadas para montar as paginas ou arquivos que serao enviados aos clientes. Um forum com um grande numero de mensagens pode facilmente resultar em um banco de dados de 10 ou mesmo 20 GB, contendo uma infinidade de pequenas mensagens de texto e ter 1000 ou 2000 visitantes simultaneos em determinados periodos.Para cada pagina a ser exibida, o servidor precisa ler varias entradas dentro do banco de dados (o topico propriamente dito, informacoes sobre os usuarios e assim por diante). Mesmo com o uso de caches, nao e dificil imaginar que tantas requisicoes simultaneas levam o desempenho dos HDs ao limite. Nesse cenario, qualquer reducao no tempo de acesso representa um grande ganho de desempenho.Em
um desktop, o HD acaba sendo mais relacionado ao tempo de boot e carregamento dos programas, por isso a taxa de transferencia se torna o item mais importante. A unica operacao que se aproxima um pouco do que acontece nos servidores e o uso intensivo de swap, onde o HD tambem precisa realizar um grande numero de pequenas leituras. Entretanto, nesses casos o problema nao seria o HD, mas sim a falta de memoria RAM. O unico swap bom e o swap que nao e feito... :)Em casos onde voce realmente faz questao do melhor desempenho, a melhor opcao e usar um SSD de pequena capacidade (existem muitos modelos de 32 ou 64 GB a precos acessiveis) para a instalacao o sistema e aplicativos e um HD magnetico de maior capacidade para armazenar arquivos. Isso permite que voce maximize os pontos fortes de cada um (o desempenho do SSD e a capacidade do HD magnetico) sem gastar tanto.Considere tambem a compra de mais memoria RAM (ja que mais memoria significa menor uso de swap e mais cache de disco) e, caso um SSD esteja fora dos planos, tambem o uso o ReadyBoost do Vista/7 em conjunto com um Pendrive de 2 GB ou mais. O ganho de desempenho ao usar o ReadyBoost nao e tao grande assim, mas como os pendrives sao atualmente bastante baratos, o custo-beneficio acaba compensando.Existem ainda situacoes em que o desempenho simplesmente nao e um fator importante, como por exemplo no caso de HDs secundarios, usados apenas para guardar arquivos ou fazer backup, onde voce acessa os dados apenas esporadicamente. Nesses casos, o melhor negocio e simplesmente procurar os HDs com o menor custo por megabyte (dentro da capacidade de que voce precisa) e escolher um baseado na reputacao do fabricante. Em casos como este, um HD mais lento, de 5400 RPM, pode ser ate desejavel, ja que eles consomem menos energia e geram menos calor que os de 7200 RPM.De qualquer forma, e importante entender os fatores que determinam o desempenho dos HDs, de forma a nao ser enganado pelas frases floridas usadas pelos fabricantes e nao fazer feio nas rodas de amigos.Tempo de Busca (Seek Time)Ao comparar dois HDs fabricados na mesma epoca, que utilizam a mesma velocidade de rotacao e possuem uma capacidade e numero de discos similar (o que indica que possuem mais ou menos a mesma densidade), o tempo de busca e provavelmente o unico fator que pode diferir de forma significativa entre os dois.O tempo de busca indica o tempo que a cabeca de leitura demora para ir de uma trilha a outra do disco, ou seja, indica a performance do actuator usado no HD. O tempo de busca e importante, pois ele e o fator que mais influencia no tempo de acesso e consequentemente na performance geral do HD.Existem tres indices diferentes para o calculo do tempo de busca: Full Stroke, Track-to-Track e Average.O primeiro (Full Stroke) indica o tempo que a cabeca de leitura demora para se deslocar da primeira ate a ultima trilha do HD, o que normalmente leva
entre 15 e 20 milissegundos. Como e o maior dos tres, este valor nao costuma ser divulgado muito abertamente pelos fabricantes.O Track-to-Track e justamente o oposto; o tempo que a cabeca demora para mudar de uma trilha para a seguinte. Como a distancia a ser percorrida e muito pequena, ele costuma ser muito baixo, inferior a 1 milissegundo. Como este e o valor mais baixo dos tres, muitos fabricantes divulgam o valor do Track-to-Track nas especificacoes, omitindo os outros dois.Finalmente, temos o Average (valor medio), que e justamente um meio termo entre os dois. Ele indica o tempo medio que a cabeca demora para se locomover ate um setor aleatorio do HD. Ao pesquisar nas especificacoes, procure justamente se informar sobre o valor Average, ja que ele e o mais indicativo dos tres.Temos aqui as especificacoes de um Samsung HD300LJ, um HD de 300 GB e 7.200 RPM, que era um modelo de medio custo no inicio de 2007:Track to Track: 0.8 msAverage: 8.9 msFull Stroke: 18 msE aqui temos as de um Western Digital Raptor X, um "topo de linha" de 10.000 RPM, que utiliza platters de 2.5". O menor diametro dos discos faz com que ele tenha apenas 150 GB de capacidade (2 discos), mas em troca permitiu obter tempos de acesso bem mais baixos:Read Seek Time: 4.6 msWrite Seek Time: 5.2 ms (average)Track-To-Track Seek Time: 0.4 ms (average)Full Stroke Seek: 10.2 ms (average)Veja que as descricoes usadas pela Samsung e pela Western Digital sao ligeiramente diferentes. Tanto o "Average" da Samsung quanto o "Read Seek Time" da WD referem-se ao tempo de busca medio para operacoes de leitura. A WD incluiu tambem o Write Seek Time, que e o tempo de busca para operacoes de gravacao, que e sempre um pouco mais alto e por isso nem sempre divulgado nas especificacoes.Como voce pode ver, esses sao dois exemplos extremos. O Raptor possui tempos de busca quase 50% menores, mas em compensacao e mais caro e possui menos da metade da capacidade do Samsung. Voce acaba pagando muito mais caro pela maior performance.Tempo de Latencia (Latency Time)Dentro do disco rigido, os discos magneticos giram continuamente. Por isso, dificilmente os setores a serem lidos estarao sob a cabeca de leitura/gravacao no exato momento de executar a operacao. No pior dos casos, pode ser necessaria uma volta completa do disco ate o setor desejado passar novamente sob a cabeca de leitura.O tempo de latencia e tao importante quanto o tempo de busca. Felizmente, ele e facil de ser calculado, bastando dividir 60 pela velocidade de rotacao do HD, em RPM, e multiplicar o resultado por 1000. Teremos entao o tempo de latencia em milissegundos. Um HD de 5400 RPM, por exemplo, tera um tempo de latencia de 11.11 milissegundos (o tempo de uma rotacao), ja que 60 5200 x 1000 = 11.11.Geralmente e usado o tempo medio de latencia, que corresponde a metade de uma rotacao do disco (assumindo que os setores desejados estarao, em media, a meio caminho da cabeca de leitura). Um HD de 5400 RPM teria um tempo de
latencia medio de 5.55 ms, um de 7.200 RPM de 4.15 ms e um de 10.000 RPM de apenas 3 ms.Muitos fabricantes publicam o tempo de latencia medio nas especificacoes ao inves do tempo de busca ou o tempo de acesso (ja que ele e menor), o que acaba confundindo os desavisados.Tempo de Acesso (Access Time)O tempo de acesso e a combinacao do tempo de busca e do tempo de latencia, o tempo medio necessario para realizar um acesso a um setor aleatorio do HD.Assim que o comando e processado, a cabeca de leitura e movida para a trilha especificada (tempo de busca) e aguarda ate que a rotacao dos discos a faca passar pelo setor especificado (tempo de latencia). Aos dois, somamos tambem o settle time (o tempo que a cabeca de leitura demora para estabilizar depois de movimentada) e o command overhead time, que e o tempo que a placa controladora demora para processar o comando e iniciar ambas as operacoes. Estes dois valores sao bem menos significantes (somam algo em torno de 0.5 ms), por isso nem sempre sao divulgados pelos fabricantes, embora tambem entrem na conta.Os fabricantes calculam o tempo de latencia dos HDs de formas diferentes, tornando dificil uma comparacao direta. O ideal e que voce mesmo calcule o tempo de acesso medio com base nas informacoes anteriores.Para isso, basta somar o tempo de busca medio (Average) e o tempo de latencia, calculado com base na velocidade de rotacao dos discos. Como e muito dificil encontrar o settle time e o command overhead time nas especificacoes, voce pode adicionar 0.5 ms, que e um valor aproximado.O Samsung HD300LJ tem tempo de busca de 8.9 ms e latencia de 4.15 ms. Adicionando os 0.5 ms temos um total de 14.55 ms.Um Seagate ST3200822A (um modelo IDE, de 200 GB) tem tempo de busca de 8.5 ms. Como ele tambem e um modelo de 7.200 RPM, a latencia tambem e de 4.15 ms, o que (incluindo os 0.5 ms) daria um total de 14.15 ms.O Raptor X tem apenas 4.6 ms de tempo de busca e, por ser um HD de 10.000 RPM, tem latencia de 3 ms. Somando os 0.5 ms, teriamos um total de 9.1 ms.Veja que a diferenca entre o HD300LJ ST3200822A e muito pequena. O Raptor consegue ser 35% mais rapido, mas em compensacao e muito mais caro, como vimos.Apesar de importante, o tempo de acesso e um fator que nao deve ser superestimado. Ele afeta o desempenho do HD quando e lida uma grande quantidade de arquivos pequenos espalhados pelo HD, mas nao afeta muito a taxa de transferencia sequencial, que e o que voce ve ao carregar um programa pesado ou copiar uma grande quantidade de arquivos, por exemplo.Head Switch TimeUm disco rigido possui de um a quatro discos internos, sendo que cada disco possui duas faces e temos uma cabeca de leitura para cada face. Mesmo possuindo varias cabecas de leitura, apenas uma delas pode ser usada de cada vez, de forma que a controladora precisa constantemente chavear entre elas durante a
leitura ou gravacao dos dados.Voce poderia perguntar por que os dados nao sao organizados de forma que a controladora pudesse ler e gravar usando todas as cabecas simultaneamente, com cada uma armazenando parte dos arquivos, como em uma especie de "RAID interno". O problema aqui e que e tecnicamente impossivel manter as trilhas dos diferentes discos perfeitamente alinhadas entre si.Quando a controladora chaveia de uma cabeca de leitura para a outra, e necessario executar o procedimento normal de posicionamento, onde ela verifica as marcacoes servo dos discos e o braco de leitura move-se para a posicao apropriada.Devido a isso, o chaveamento acaba demorando um pouco mais do que poderiamos pensar inicialmente. Ele e apenas um pouco menor que o tempo de busca Track-to-Track e quase sempre proporcional a ele.Embora o Head Switch Time nao seja um fator tao significativo quanto o tempo de acesso, ele acaba sendo um fator importante para a taxa de leitura sequencial do HD, ja que a controladora le um cilindro por vez, chaveando entre todas as cabecas antes de ir para o proximo.Taxa de Transferencia Interna (Internal Transfer Rate)A taxa de transferencia interna e a velocidade "real" do HD ao ler arquivos gravados em setores sequenciais. Se tivessemos a mao todas as especificacoes do HD, incluindo o numero de setores por trilha, seria simples calcular a taxa de leitura real do HD.Em um HD que tivesse 1584 setores por trilha na area mais externa dos discos e 740 na area mais interna, com 2 patters, rotacao de 7200 RPM, tempo de busca Track-to-Track de 0.8 ms e Head Switch Time de 0.6 ms, por exemplo, teriamos o seguinte:Cada trilha externa possui 1584 setores, cada um com 512 bytes, de forma que temos 792 KB por trilha. Os discos giram a 7200 RPM, de forma que temos 120 rotacoes por segundo. Dividindo um segundo por 120 rotacoes, temos 8.33 milissegundos para cada rotacao completa do disco, que corresponde a leitura de cada trilha. Como o disco tem 2 platters, temos um total de 4 trilhas por cilindro. Para ler cada cilindro, a cabeca de leitura precisa realizar 3 chaveamentos entre as cabecas (0.6 ms cada) e em seguida precisa mover o braco de leitura para o cilindro seguinte, o que demora mais 0.8 ms. Somando tudo, a leitura de cada cilindro demora aproximadamente 36 ms, o que significa que temos a leitura de 27.7 cilindros por segundo. Cada cilindro e composto por 4 trilhas, o que corresponde a 3.093 MB. Se o HD consegue ler 27.7 deles por segundo, significaria que o nosso HD hipotetico teria uma taxa de transferencia interna (nas trilhas externas) de aproximadamente 85.9 MB/s.Nas trilhas internas a densidade cai para apenas 1.44 MB por cilindro (ja que cada trilha possui apenas 740 setores), de forma que a taxa de leitura cai para apenas 40.1 MB/s.Ao ler pequenos arquivos, temos a interferencia do cache de disco, mas ao ler uma grande quantidade de arquivos, ele deixa de ser eficaz (ja que armazena apenas uma pequena quantidade de dados), de forma que a taxa real de
transferencia cai para os valores da taxa de transferencia interna, variando entre 85.9 MB/s e 40.1 MB/s, de acordo com a parte do disco que estivesse sendo lida.Quando houver referencias a "Internal Transfer Rate" ou "Buffer to Disc" nas especificacoes de um HD, pode ter certeza de tratar-se da velocidade "maxima", atingida quando sao lidos setores sequenciais nas bordas do disco. Tenha em mente que no centro do disco voce obtera um pouco menos da metade do numero divulgado.No caso dos HDs de notebook, ou de HDs que utilizam platters de 2.5" (como o Raptor), a diferenca entre a taxa de leitura nas trilhas internas e externas e menor, numa relacao de aproximadamente 2/3 em vez de 1/2.O grande problema e que os fabricantes raramente divulgam o numero de setores por trilha, nem o Head Switch Time dos HDs, de forma que acaba sendo impossivel calcular diretamente a taxa de transferencia interna com base nas especificacoes. Normalmente, voce encontrara apenas o numero de setores por trilhas visto pelo BIOS (64), que nao tem nenhuma relacao com o numero real.Resta entao usar o metodo empirico, realizando um teste longo de leitura, como o teste realizado pelo HD Tach, onde sao lidos grandes volumes de dados, comecando pela borda e prosseguindo ate o centro dos discos. O cache pode ajudar o inicio da leitura, mas os dados armazenados logo se esgotam, deixando apenas a taxa real.Um bom lugar para pesquisar sobre as taxas de leitura (e outros indices) de diversos modelos e a tabela do Storage Review, disponivel no: http://www.storagereview.com/comparison.html.Outra tabela recomendada e a disponivel no TomsHardware: http://www23.tomshardware.com/storage.html.Outra curiosidade e que e comum que os fabricantes produzam alguns modelos de HDs onde nao sao utilizadas todas as trilhas dos discos, de forma a criar HDs com capacidades definidas, que se adaptem a determinados nichos do mercado. Imagine, por exemplo, que o fabricante X esta produzindo todos os seus discos usando platters de 200 GB. Isso significaria que ele teria modelos de 200, 400, 600 e 800 GB, de acordo com o numero de platters usados. Imagine agora que o fabricante Y, que ainda usa uma tecnica anterior de producao, lanca um HD de 160 GB, que e mais barato que o de 200 GB do fabricante X e por isso comeca a roubar mercado dele.Ao inves de reduzir o custo do HD de 200 GB e perder dinheiro na venda de todos os HDs, o fabricante X pode criar um HD de 160 GB fazendo uma simples alteracao no firmware do HD de 200 GB, que faca a controladora deixar de usar as trilhas mais externas do disco. Ele pode agora vender estes HDs de "160 GB" a um preco mais baixo, sem ter que mexer no preco do restante da linha. Por incrivel que possa parecer, isto e bastante comum.Ao medir o desempenho deste HD "castrado", voce perceberia que a diferenca entre o desempenho nas trilhas internas e externas e bem menor que nos outros modelos. O tempo de acesso medio tende tambem a ser um pouco menor, ja que a cabeca de