Eu costumava fazer uma boa solução de problemas de hardware em grandes datacenters, eu recomendaria encontrar uma distribuição Linux inicializável, qualquer um fará. Certifique-se de encontrar um com uma imagem de 64 bits se tiver uma CPU de 64 bits. O Stresslinux contém um conjunto completo de ferramentas para enfatizar seus servidores e forçar a ocorrência de falhas de hardware.
Sou pessoal com a ferramenta "stress" - pode martelar disco (s), memória e processador (es).
estresse
Uma nota rápida sobre o memtest86 +
Isso não faz parte da suíte de estresse, mas obviamente você sabe que existe. Definitivamente, certifique-se de usar o memtest86 + (ênfase em +) - ele lida com sistemas de 64 bits e grandes alocações de memória muito melhor do que o memtest86 original.
Teste de memória
Isso gerará n processos girando em malloc () em 256MB cada.
stress -m n &
Então você gostaria de dividir a quantidade de memória que você tem por 256MB (aproximadamente), para acertar tudo. Isso eliminará quaisquer erros óbvios, você provavelmente verá EDCs ou MCEs (dependendo do processador / placa-mãe), ou um kernel panic / hard crash. Idealmente, você pode deixá-lo funcionar por algumas horas para que o sistema aqueça sob carga. Você pode verificar o syslog para esses erros.
Teste de CPU
Isso gerará n processos girando em sqrt ().
stress -c n &
Você deseja que n seja o número de núcleos em seu sistema. O mesmo conceito aqui aplica-se a deixá-lo funcionar por um tempo.
Teste do subsistema de disco
Isso requer que os discos rígidos sejam formatados de alguma forma, se você estiver usando o RAID, obterá melhores resultados se já tiver configurado isso antes de montá-los e enfatizá-los.
Altere o diretório para a partição / área do disco que você deseja enfatizar. Quanto mais espaço livre, melhor.
cd /hard/disk/partition
Isso gerará n processos girando em write () a 1GB cada
stress -d 32 n &
Monitorar E / S do disco com:
iostat -x 5
Estresse Mortal
Para matar todos os processos de estresse, sim, você pode executar verificações de memória, CPU e disco rígido simultaneamente, mas isso torna o isolamento dos componentes um pouco mais difícil:
pkill -9 -f stress
Verificando seus testes
Obviamente, você executa todas essas coisas e precisa ver algum tipo de resultado ou confirmação.
Memória / CPU
Você só vai querer verificar o syslog para coisas como MCE (Machine Check Exception), EDAC (Error Detection and Correction), OME (Out of Memory), etc.
zgrep -i -P ".*(error|warn|fail|panic|edac|mce|exception|oom-killer|oops).*" /var/log/kern.log* /var/log/dmesg /var/log/daemon.log*
Subsistema de disco
Este é provavelmente o mais fácil de detectar do que qualquer outro componente, smartctl é geralmente instalado na maioria dos sistemas operacionais * NIX, é uma parte do pacote smartmontools . O comando a seguir requer acesso root:
O aspecto / dev / sda pode precisar mudar se você tiver vários discos ou um controlador RAID.
sudo smartctl -a /dev/sda
Abaixo está um exemplo de saída do comando completo, vou especificar o que você realmente deveria procurar mais abaixo na página.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 099 099 016 Pre-fail Always - 65537
2 Throughput_Performance 0x0005 136 136 054 Pre-fail Offline - 95
3 Spin_Up_Time 0x0007 121 121 024 Pre-fail Always - 320 (Average 304)
4 Start_Stop_Count 0x0012 100 100 000 Old_age Always - 18
5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0
7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always - 0
8 Seek_Time_Performance 0x0005 144 144 020 Pre-fail Offline - 28
9 Power_On_Hours 0x0012 098 098 000 Old_age Always - 15407
10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 18
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 37
193 Load_Cycle_Count 0x0012 100 100 000 Old_age Always - 37
194 Temperature_Celsius 0x0002 253 253 000 Old_age Always - 22 (Min/Max 15/31)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0
Os principais atributos dos quais você deseja estar ciente são os seguintes:
Reallocated_Sector_Ct
Isso deve ser menor que 1000 em geral.
Estes são setores que tiveram que ser realocados para outra parte do disco rígido porque o setor anterior não era saudável.
Temperature_Celsius
Isso deve ser menor que 55, o comando em si terá um min / max em alguns casos - mas o sub 55 é onde vimos a operação saudável do disco.
Current_Pending_Sector
deve ser 0.
Offline_Uncorrectable
deve ser 0.
UDMA_CRC_Error_Count
Deve ser 0, alguns estão bem (menos de 100).
Observe também que estes podem ser indicativos de um cabo SATA / SAS defeituoso.
Existem muitas maneiras de enfatizar e avaliar seus servidores, isso é apenas uma maneira de me sentir confortável e com ótimos resultados.
Espero que isso ajude!