Nos últimos vinte anos, provavelmente construí cerca de cem computadores. Não é muito difícil e, na verdade, ficou muito mais fácil com o passar dos anos, à medida que os computadores se tornaram mais altamente integrados. Considere o que seria necessário para construir algo muito moderno como o o computador Scooter:
- Aplique um pouco de composto térmico na parte superior do gabinete.
- Coloque a placa-mãe no gabinete.
- Aparafuse a placa-mãe no gabinete.
- Insira a unidade SSD.
- Insira o cartão de memória RAM.
- Feche a caixa com parafusos.
- Conecte a alimentação externa.
- Inicialização.
Bam done.
É muito fácil. Meu filho de seis anos e eu construímos kits de Lego que eram muito mais complexos do que esse. Até mesmo a montagem de um desktop tradicional requer apenas mais algumas etapas: inserir a CPU, instalar o dissipador de calor, passar os cabos. E a montagem de um servidor é apenas algumas etapas adicionais, talvez com algumas restrições de espaço de 1U ou 2U. Scooter, desktop ou servidor, se o senhor montou um computador, basicamente montou todos eles.
Todos respiram aliviados quando seu computador recém-construído é inicializado pela primeira vez, não importa quantas vezes já tenham feito isso antes. Mas a inicialização é apenas o começo da história. Sim, ele inicializa, ótimo. Não me impressiona. O que realmente precisamos saber é se o esse computador é estável.
Embora as peças de computador comuns sejam mais confiáveis a cada ano, oe os fornecedores testam bastante suas peças antes de enviá-las, não há garantia de que todas essas peças funcionarão de forma confiável juntos, em seu ambiente específico, sob sua carga de trabalho específica. E sempre há a possibilidade, por menor que seja, de ter muito, muito azar com componentes sutilmente quebrados.
Como somos cientistas racionais, testamos as coisas em nosso ambiente nativo e coletamos dados para provar que nosso computador é estável. Certo? Então, depois de inicializarmos, testamos.
Memória
Gosto de começar com os testes de memória, pois eles exigem mídia inicializável e funcionam da mesma forma em todos os computadores x86, mesmo antes de o senhor ter um sistema operacional. Memtest86 é o avô de todos os testadores de memória. Não sei exatamente o que causou a divisão entre ele e o Memtest86+, mas todos eles funcionam de forma semelhante. O da passmark parece ser o mais atualizado, portanto é o que eu recomendo.
Baixe a versão de sua escolha, grave-a em uma unidade USB inicializável, conecte-a ao seu computador recém-construído, inicialize e deixe-a fazer sua mágica. É tudo automático. Basta inicializá-lo e ver o que acontece.
(Se o seu computador for compatível com a inicialização UEFI, o senhor obterá a mais nova versão 6.xcaso contrário, o senhor verá a versão 4.2 como acima).
Eu recomendo uma passagem completa do memtest86 no mínimo, mas se o senhor quiser ser mais cuidadoso, deixe-o rodar durante a noite. Além disso, se o senhor tiver muita memória, o memtest pode demorar um pouco! Em nossos servidores com 128 GB, demorou cerca de três horas, e espero que esse tempo seja escalonado linearmente com a quantidade de memória.
A porcentagem de “Pass” na parte superior deve chegar a 100% e a contagem de “Pass” na tabela deve ser maior que um. Se o senhor receber algum erro, qualquer coisa que não seja uma aprovação limpa de 100%, seu computador não está estável. É hora de começar a remover os sticks de RAM e descobrir qual deles está com defeito.
SISTEMA OPERACIONAL
Todos os testes subsequentes exigirão um sistema operacional, e um teste básico de estabilidade para qualquer computador é se ele pode instalar um sistema operacional. Escolha o sistema operacional gratuito de sua preferência e inicie uma instalação padrão. Eu recomendo Ubuntu Server LTS x64 já que ele pressupõe menos informações sobre seu hardware de vídeo. Faça o download da ISO e grave-a em uma unidade USB inicializável. Em seguida, inicialize-o.
(Ei, veja que ele tem uma opção de teste de memória! Que conveniente!)
- Certifique-se de que a rede esteja conectada para a instalação com o DHCP; isso torna a instalação mais rápida quando o usuário não precisa esperar o tempo limite da detecção de rede e ficar incomodando-o com as coisas da rede.
- Em geral, o senhor deve pressionar enter para aceitar todos os padrões e seguir em frente. Eu sei, eu sei, estamos instalando o Linux, mas, acredite ou não, eles já sabem como instalar.
- Tudo o que deve ser solicitado ao senhor é o nome de usuário e a senha da conta padrão. Eu recomendo
jeff
epassword
porque sou um dos maiores especialistas em segurança de computadores do mundo. - Se o senhor estiver instalando a partir do USB e for incomodado pela falta de um CD, remova e reinsira a unidade USB. Não, eu também não sei por que, mas o senhor não sabe. funciona.
Se qualquer coisa O que acontece de estranho durante a instalação do Ubuntu Server que o impede de finalizar a instalação e inicializar no Ubuntu Server … seu computador não está estável. Sei que não parece muito, mas esse é um teste holístico decente, pois exercita todo o sistema de forma muito repetitiva.
De qualquer forma, precisaremos de um sistema operacional instalado para os próximos testes. Presumo que o senhor tenha instalado o Ubuntu, mas qualquer distribuição Linux deve funcionar de forma semelhante.
CPU
A seguir, vamos nos certificar de que o cérebro da operação esteja em ordem: a CPU. Para ser honesto, se o senhor chegou até aqui, depois do teste de RAM e sistema operacional, as chances de ter uma CPU completamente quebrada são bastante baixas. Mas precisamos ser certezae a melhor maneira de fazer isso é recorrer ao nosso velho amigo, Marin Mersenne.
Em matemática, um número primo de Mersenne é um número primo que é um a menos que uma potência de dois. Ou seja, é um número primo que pode ser escrito na forma Mn = 2n – 1 para algum número inteiro n. Seu nome vem de Marin Mersenne, um frade mínimo francês, que os estudou no início do século XVII. Os quatro primeiros primos de Mersenne são 3, 7, 31 e 127.
Tenho usado o Prime95 e MPrime – ferramentas que tentam analisar o maior número de números gigantes o mais rápido possível para determinar se eles são primos – nos últimos 15 anos. Veja como fazer o download e instalar mprime
no novo sistema Ubuntu Server que o senhor acabou de inicializar.
mkdir mprime
cd mprime
wget ftp://mersenne.org/gimps/p95v298b3.linux64.tar.gz
tar xzvf p95v298b3.linux64.tar.gz
rm p95v298b3.linux64.tar.gz
(Talvez o senhor precise substituir o número da versão no comando acima pela versão mais recente do site página de download do mersenne.orgmas, até o momento em que este artigo foi escrito, essa é a versão mais recente. Além disso, se o senhor preferir uma versão mais antiga sem as instruções AVX e AVX2, que consomem muito calor, adicionadas em 2011 e 2014, respectivamente, obtenha mprime266-linux64.tar.gz
)
Agora o senhor tem uma cópia do mprime no seu diretório de usuário. Inicie-o digitando ./mprime
Estou apenas de passagem, obrigado. Resposta N para o prompt do GIMPS.
Em seguida, será solicitado que o senhor informe o número de threads de teste de tortura a serem executados. Eles são espertos aqui e sempre escolhem um número igual de threads para núcleos lógicos, portanto, pressione enter para aceitar isso. O senhor deseja um teste completo da CPU em todos os núcleos. Em seguida, selecione o tipo de teste.
- FFTs pequenas (aquecimento máximo e estresse da FPU, dados cabem no cache L2, RAM não é muito testada).
- FFTs grandes no local (consumo máximo de energia, alguma RAM testada).
- Blend (testa um pouco de tudo, muita RAM testada).
Eles não estão brincando quando dizem “consumo máximo de energia”, como o senhor está prestes a saber. Selecione 2. Em seguida, selecione Y para iniciar a tortura e ver sua CPU se contorcer de dor.
Accept the answers above? (Y):
[Main thread Feb 14 05:48] Starting workers.
[Worker #2 Feb 14 05:48] Worker starting
[Worker #3 Feb 14 05:48] Worker starting
[Worker #3 Feb 14 05:48] Setting affinity to run worker on logical CPU #2
[Worker #4 Feb 14 05:48] Worker starting
[Worker #2 Feb 14 05:48] Setting affinity to run worker on logical CPU #3
[Worker #1 Feb 14 05:48] Worker starting
[Worker #1 Feb 14 05:48] Setting affinity to run worker on logical CPU #1
[Worker #4 Feb 14 05:48] Setting affinity to run worker on logical CPU #4
[Worker #2 Feb 14 05:48] Beginning a continuous self-test on your computer.
[Worker #4 Feb 14 05:48] Test 1, 44000 Lucas-Lehmer iterations of M7471105 using FMA3 FFT length 384K, Pass1=256, Pass2=1536.
Agora é a hora de usar o Kill-a-Watt ou um medidor de consumo de energia semelhante, se tiver, para que o senhor possa medir o consumo máximo de energia da CPU. Na maioria dos sistemas, a menos que o senhor tenha uma placa de vídeo para jogos absolutamente fantástica instalada, a CPU é o único dispositivo que puxará mais calor e energia do sistema. Isso significa que todos os núcleos da CPU estão em plena atividade, queimando o máximo de ciclos possível.
Sugiro executar o i7z
de outra sessão do console para que possa monitorar as temperaturas e velocidades do núcleo enquanto mprime
está executando seu teste de tortura.
sudo apt-get install i7z
sudo i7z
Deixe o mprime funcionar durante a noite no modo de teste de tortura de calor máximo. Os cálculos de Mersenne são meticulosamente verificados, portanto, se houver algum erro, todo o processo será interrompido com um erro no console. E se o mprime for interrompido, nunca … seu computador não está estável.
Cuidado com as temperaturas da CPU! Além das temperaturas absolutas da CPU, o senhor também deve ficar de olho na dissipação total de calor no sistema. As ventoinhas do sistema (se houver) devem girar e todo o sistema deve ser mantido em temperaturas razoáveis durante todo esse processo, caso contrário, o senhor terá um computador doente e superaquecido um dia.
A má notícia é que é extremamente raro ter qualquer tipo de carga de trabalho prática no mundo real que se assemelhe remotamente ao estresse que Mersenne exerce sobre a CPU. A boa notícia é que, se o seu sistema conseguir sobreviver ao ataque de Mersenne da noite para o dia, ele estará definitivamente pronto para qualquer coisa que o senhor possa imaginar no futuro.
Disco
Os discos são provavelmente os itens mais fáceis de substituir na maioria dos sistemas e os que têm maior probabilidade de falhar com o tempo. Sabemos que o disco não pode estar totalmente quebrado, pois acabamos de instalar um sistema operacional nele, mas vamos ter certeza.
Comece com um teste de blocos ruins para toda a unidade.
sudo badblocks -sv /dev/sda
Isso exercita toda a extensão do disco (de forma segura e somente leitura). Não é preciso dizer que qualquer erro aqui deve gerar uma preocupação séria com essa unidade.
Checking blocks 0 to 125034839
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found. (0/0/0 errors)
Vamos verificar o Leituras SMART para a próxima unidade.
sudo apt-get install smartmontools
smartctl -i /dev/sda
Isso permitirá que o senhor saiba se a unidade é compatível com SMART. Vamos habilitá-la, se for o caso, e ver as estatísticas básicas da unidade:
smartctl -s on /dev/sda
smartctl -a /dev/sda
Agora podemos executar alguns testes SMART. Mas primeiro verifique quanto tempo os testes oferecidos levarão:
smartctl -c /dev/sda
Execute o teste long
se o senhor tiver tempo, ou o teste short
se o senhor não tiver:
smartctl -t long /dev/sda
Ele é feito de forma assíncrona, portanto, após o término do tempo, mostre o relatório do teste SMART e garanta que o senhor foi aprovado:
smartctl -l selftest /dev/sda
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed without error 00% 100 -
Em seguida, execute um benchmark de disco simples para ver se está obtendo aproximadamente o desempenho que o senhor espera da unidade ou do array:
dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync
hdparm -Tt /dev/sda
Para um sistema com um SSD básico, o senhor deve obter resultados pelo menos tão bons quanto esses, e talvez consideravelmente melhores:
536870912 bytes (537 MB) copied, 1.52775 s, 351 MB/s
Timing cached reads: 11434 MB in 2.00 seconds = 5720.61 MB/sec
Timing buffered disk reads: 760 MB in 3.00 seconds = 253.09 MB/sec
Por fim, vamos tentar um teste mais intensivo com o bonnie++, um benchmark de disco:
sudo apt-get install bonnie++
bonnie++ -f
Não nos importamos muito com os números de benchmark resultantes aqui, o que queremos é que o senhor passe sem erros. E se o senhor receber erros durante qualquer um dos testes acima … seu computador não está estável.
(Acho que esses testes de disco são suficientes para uso geral, principalmente se o senhor considerar que as unidades são facilmente RAID e substituíveis, como eu faço. Entretanto, se quiser testar suas unidades de forma mais exaustiva, um bom recurso é o tópico do FreeNAS “how to burn in hard drives” (como gravar discos rígidos).)
Rede
Para ser sincero, não tenho muita experiência com falhas de hardware de rede. Mas acredito no culto à largura de banda, e isso é algo que podemos verificar.
O senhor precisará de duas máquinas para um iperf o que torna o teste mais complexo. Aqui está o servidor, digamos que ele esteja em 10.0.0.1:
sudo apt-get install iperf
iperf -s
e aqui está o cliente, que se conectará ao servidor e registrará a velocidade de transmissão de dados entre os dois:
sudo apt-get install iperf
iperf -c 10.0.0.1
------------------------------------------------------------
Client connecting to 10.0.0.1, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[ 3] local 10.0.0.2 port 43220 connected with 10.0.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.09 GBytes 933 Mbits/sec
Como ponto de referência, o senhor deve esperar ver aproximadamente 120 megabytes/s (também conhecido como 960 megabits) de throughput do mundo real em uma única conexão ethernet gigabit. Se o senhor tiver a sorte de ter uma conexão de 10 gigabits, bem, boa sorte para alcançar esse meteórico máximo teórico de taxa de transferência de 1,2 gigabyte/s.
Placa de vídeo
Não estou abordando esse assunto, porque pouquíssimos computadores que construo atualmente precisam de mais do que o material incorporado à CPU para lidar com vídeo. O que está ficando surpreendentemente decente, finalmente.
O senhor é um jogador, certo? Então, o senhor provavelmente vai querer inicializar no Windows e tentar algo como furmark. E o senhor deve porque as GPUs – especialmente as GPUs para jogos – são equipamentos de última geração e consomem muitos watts. Monitore também as temperaturas e o aquecimento do sistema.
Se o senhor tiver recomendações para testes de estabilidade de placas de vídeo para jogos, compartilhe-as nos comentários.
OK, Talvez É estável
Esse é o regime que utilizo nas máquinas que construo e manuseio. E tem funcionado bem para mim. Identifiquei CPUs defeituosas (uma vez), RAM defeituosa, discos defeituosos e fluxo de ar insuficiente no gabinete logo no início, para que eu pudesse lidar com eles no laboratório, antes que se tornassem problemas no campo. Isso não significa que eles não falharão eventualmente, mas fiz tudo o que pude para garantir que meu bebês os computadores podem ter vida longa e próspera.
Quem sabe, com um pouco de sorte, talvez o senhor acabe como o cara cujo servidor netware tinha dezesseis anos de tempo de atividade antes de ser desativado.
Esses testes são apenas um ponto de partida. Que técnicas o senhor usa para garantir que os computadores que constrói sejam estáveis? Como o senhor melhoraria esses testes de estabilidade com base em sua experiência no mundo real?
[advertisement] No Stack Overflow, ajudamos os desenvolvedores a aprender, compartilhar e crescer. Não importa se o senhor está procurando o emprego dos seus sonhos ou se está procurando formar sua equipe, nós o apoiamos. |