Vérifiez le CPU et la mémoire de votre serveur Linux
Des ressources telles que le CPU et la mémoire (RAM) font partie intégrante des fonctionnalités de votre site. Si votre code en utilise trop, le site peut devenir lent ou cesser de fonctionner. Tous les autres processus (comme la messagerie) partagent les mêmes ressources avec les sites de votre serveur. Tout processus prenant plus que sa juste part (attendue) peut interrompre complètement le serveur.Pourquoi devrais-je vérifier l'utilisation des ressources?
- Votre site basé sur une base de données (comme WordPress) est lent.
- L'email met du temps à arriver.
- Votre site affiche une erreur ou tourne simplement
- Les tâches effectuées sur votre serveur prennent plus de temps que d'habitude (comme les sauvegardes).
Comment vérifier l'utilisation des ressources?
Linux propose plusieurs outils pour analyser l'utilisation du CPU et de la mémoire, tels que top , sar et watch .
La commande top vous permet de visualiser les tâches système en cours d’exécution en temps réel. Vous pouvez voir des informations globales telles que la disponibilité, la charge moyenne, le CPU et l'utilisation de la mémoire. Le commutateur -c vous permet de voir le nom du programme sous COMMANDE. Pour obtenir la liste complète des touches de raccourci, utilisez man top dans SSH.
[root @ server ~] $ top -c top - 15:08:23 jusqu'à 115 jours, 6:37, 2 utilisateurs, charge moyenne: 1.76, 1.35, 1.13 Tâches: 330 au total, 1 en cours d'exécution, 326 en veille, 0 arrêtées, 3 CPU (s) zombies: 0,7% américain, 2,9%s y, 0,0% ni, 81,5% id, 14,9% wa, 0,0% hi, 0,1%s i, 0,0%s t Mem: 32754672k total, 28808088k utilisé, 3946584k libres, 321260k buffers Swap: 8388604k total, 25992k utilisé, 8362612k libres, 8140560k en cache USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND 6926 mysql 20 0 130g 16g 22m S 12m 52.2 27065: 56 / usr / sbin / mysqld --basedir = / usr --datadir = / var / lib / mysql --plugin-dir = / usr / lib64 / mysql / plugin 2454 td-agent 20 0 1210m 160m 2440 S 0,7 0,5 347: 19,48 / opt / td-agent / embarqué / bin / ruby -Eascii-8bit: ascii-8bit /
Le System Activity Reporter (sar) est un outil qui vous aide à surveiller les statistiques d'utilisation de votre serveur. Sar fait partie du package sysstat . L'utilisation de la commande sar seule vous donnera des statistiques pour les dernières 24 heures.
sar -f vous permet d'afficher les fichiers journaux historiques à partir de 12 h 00 pour la journée.
[root @ server ~] $ sar -f / var / log / sa / sa10 Linux 2.6.32-042stab141.3 (server-hostname.net) 01/10/2022 _x86_64_ (24 CPU) 12h01: 01 CPU % utilisateur% gentil%s ystem% iowait%s teal% inactif 12:10:01 AM tous 1.92 0,00 0,39 0,00 0,00 97.69 12: 20:01 AM tous 1.63 0.00 0.34 0.00 0,00 98.02 12:30:01 AM tous 1.64 0.00 0.41 0.01 0.00 97.94 00:40:01 AM tous 2.85 0,00 0,61 0,00 0,00 96,54 12:50:01 AM tous 2,71 0,00 0,57 0,01 0,00 96,72 01:00:01 AM tous 2,02 0,00 0,38 0,00 0,00 97,60 01:10:01 AM tous 1,43 0,00 0,30 0,00 0,00 98,27
sar -r affichera les statistiques de mémoire libre et utilisée
[root @ server ~] $ sar -r Linux 2.6.32-042stab141.3 (server-hostname.net) 02/02/2022 _x86_64_ (24 CPU) 12:00:01 AM kbmemfree kbmemused% memused kbbuffers kbcached kbcommit% commit 00h10: 01 99454800 32354304 24,55 1429856 22624260 8285744 5,91 00h20: 01 99760972 32048132 24,31 1429884 22631184 7960428 5,68 00 h 30 min 01 s 8035000 5.73 00:50:01 99752696 32056408 24.32 1430012 22644804 7891100 5.63
La surveillance Linux vous permet de surveiller les commandes ou les tâches lorsqu'elles sont terminées ou exécutées. watch "mysql -e'show full processlist; '" affichera toutes les requêtes mysql en cours d'exécution, mise à jour toutes les 2 secondes.
Toutes les 2.0s: mysql -e'show full processlist; ' Sat Fév 12 11:09:56 2022 ID User Host db Command Time State Info 26574057 mysql_db1 localhost mysql_db1 Query 2 Sending data SELECT * from db_data_main where DOT_NUMBER = 1381207 26574063 mysql_db1 localhostql_db1 Query 1 Sending data = mysql_db1 Query 1 Sending on mysql_db1 (à partir de là où db_data_main_db1) mysql_wp3 localhost mysql_wp3 Veille 0 NULL 26574068 root localhost NULL Query 0 init show full processlist
Étapes suivantes
Une utilisation élevée des ressources peut être causée par un trafic malveillant ou un processus bloqué (comme une sauvegarde volumineuse). Une utilisation fréquente et élevée des ressources non causée par le trafic ou un processus bloqué ne peut être résolue que par l'optimisation ou la mise à niveau. Gardez à l’esprit que si vous n’optimisez pas votre serveur et vos sites, une mise à niveau n’est qu’une solution temporaire .
Signes qu’il est peut-être temps d’optimiser (serveur et site (s))
- Non causé par un trafic malveillant
- Le code du site est obsolète / génère des erreurs obsolètes
- L'utilisation du processeur est élevée, mais l'utilisation de la mémoire est faible.
- Les requêtes MySQL prennent du retard lorsque le trafic augmente
Signes qu'il est peut-être temps de mettre à niveau
- Le trafic vers votre ou vos sites est en augmentation constante
- Le serveur a été optimisé pour les besoins de votre site
- Vous avez optimisé votre (vos) site (s) en éliminant les longues requêtes mysql et en mettant à jour le code pour prendre en charge les nouvelles versions de PHP.
- Vous utilisez la mise en cache (comme Memcache) mais la charge reste élevée