Profilo di performance del server Linux – come vedere cosa ha causato un carico elevato

Se un server sta riscontrando un carico elevato, utilizzo strumenti top e simili per risolvere il problema. Tuttavia, questo è efficace solo se posso analizzare mentre il server sta verificando il problema.

Quali sono alcuni ottimi strumenti per trovare la causa principale del carico server elevato nei tempi precedenti? Ad esempio stavo pensando di mettere in un lavoro cron per salvare l'output "top", le statistiche di server apache, l'elenco di processi mysql, ecc each 5 minuti. Ma questo non sembra molto elegante, chiedendosi se qualcuno abbia trovato qualche utilità per realizzarlo già.

  • Può OpenSWAN sostituire OpenVPN?
  • TCP in OpenVPN è molto lento (tsg allegato)
  • Il supporto CIFS Host è in discesa
  • CentOS 7.1 - Ripristino della vecchia funzionalità di top e servizio
  • Come faccio a sapere where vengono memorizzate le regole IPTables?
  • Come utilizzare ipset e iptables su Ubuntu 12.04 per bloccare un sacco di IP
  • Due Centos Machines. Aggiornamenti diversi
  • Perché le connessioni in stato FIN_WAIT2 non sono chiuse dal kernel Linux?
  • Come get il routing multipath per-pacchetto su Linux?
  • Perché i miei filesystem XFS improvvisamente consumano più spazio e sono pieni di file ridotti?
  • C'è un modo specifico per rinnovare automaticamente Lets Encrypt certs?
  • Backup giornaliero settimanale e mensile con logrotate?
  • 5 Solutions collect form web for “Profilo di performance del server Linux – come vedere cosa ha causato un carico elevato”

    Per un monitoraggio continuo è ansible considerare l'installazione di munin . Raccoglierà informazioni each 5 minuti e genera grafici che vi permetteranno di vedere where stanno le strozzature. Io uso anche sar che può essere eseguito in modalità background raccogliendo i dati su disco. Questo fornisce informazioni dettagliate su ciò che è il collo di bottiglia. A quali processi in cui eseguire in passato avrai bisogno del pacchetto di process accounting.

    La soluzione non elegante è effettivamente una buona senza configurare console di monitoraggio distinte (pensare alle trappole SNMP). Se stai eseguendo un sistema di stile RHEL / CentOS assicurati di aver installato 'sysstat' (e acceso) per raccogliere statistiche in corso su CPU, memory, disco I / O e simili. (vedere i file di configuration /etc/sysconfig/sysstat.* per sintonizzarsi).

    Una volta che hai raccolto le statistiche sottostanti per voi, può essere usato per individuare quando si verifica la tendenza del carico (quindi, oltre a vedere la CPU elevata, è la tua proc proca supportta? Vedete difetti importnti nella paginazione, come è il tuo utilizzo di swap)? potete quindi correlare alle liste di tipo 'mysqladmin proc stat' e così via. Se si tratta di uno stack LAMP, afferrare i processi totali httpd e quindi fare una sum / divisione veloce per scoprire la dimensione media del process da registrare. Abilita il tuo log di query lento in MySQL per poi intrappolare quei cattivi ragazzi e cercare alcune tabelle che necessitano di indici.

    Talvolta lo-tech non è una ctriggers tecnologia. 🙂 Perché usare una sega a catena quando un coltello farà.

    Mi piace collezione ma ho recentemente iniziato a giocare con pcp (co-pilota di performance). Ha alcune belle caratteristiche per la diagnosi storica. [1]: http://oss.sgi.com/projects/pcp/

    Potrebbe anche voler guardare a collectd, come alternativa munin.

    in cima .

    Complementa top / htop, perché può raccogliere statistiche nel tempo.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.