L'état de chargement du système d'exploitation reflète l'utilisation des ressources de l'application, à partir de laquelle les goulots d'étranglement de l'optimisation des applications peuvent être détectés.
La charge moyenne du système fait référence au nombre moyen de processus en cours d'exécution ou sans interruption.
est en cours d'exécution, ce qui signifie qu'il est en cours d'exécution, occupant le processeur ou prêt, en attente de la planification du processeur.
Ne pas déranger, indiquant le blocage, en attente des E/S
Recommandé : [Tutoriel vidéo Linux]
Dans le système Linux, vous devez vérifiez la charge En général, utilisez la commande uptime (la commande w et la commande top sont également acceptables) *
1. commande uptime
$ uptime\
16:33:56 up 69 days, 5:10, 1 user, load average: 0.14, 0.24, 0.29
Copier après la connexion
Les informations ci-dessus sont analysées comme suit :
<. 🎜>16:33:56 : Heure actuelle
jusqu'à 69 jours, 5h10 : Le système fonctionne depuis 69 jours, 5 heures et 10 minutes
1 utilisateur : Il y a actuellement 1 utilisateur connecté à la charge moyenne du système : 0,14, 0,24, 0,29 : La charge moyenne du système au cours des dernières 1 minute, 5 minutes et 15 minutes
charge moyenne : 0,14, 0,24, 0,29 : La moyenne charge du système au cours des dernières 1 minute, 5 minutes et 15 minutes
Analyse de la charge moyenne
Afficher le nombre de cœurs de processeur logiques :
$ grep 'model name' /proc/cpuinfo | wc -l\
1\
Copier après la connexion
Le résultat en cours d'exécution montre qu'il y a 1 cœur de processeur logique. En prenant 1 cœur de processeur comme exemple, en supposant que le processeur traite jusqu'à 100 processus par minute –
load=0, aucun processus ne nécessite de processeur
load=0,5, le processeur traite 50 processus
load=1, le CPU a traité 100 processus. À ce moment, le CPU est plein, mais le système peut toujours fonctionner correctement
load=1.5, le CPU a traité 100 processus, et il reste 50 processus. Un processus est en cours d'élimination et attend le traitement du processeur. À ce moment, le processeur est déjà surchargé
Afin de faire fonctionner le système en douceur, la valeur de charge ne doit pas dépasser 1,0, donc. qu'aucun processus ne doit attendre et que tous les processus peuvent être traités pour la première fois en un rien de temps.
Évidemment, 1,0 est une valeur clé. Si elle dépasse cette valeur, le système n'est pas dans un état optimal. Généralement, 0,7 est une valeur idéale.
De plus, l'état de santé de la valeur de charge est également lié au nombre de cœurs de processeur dans le système. Si le nombre de cœurs de processeur est de 2, alors la valeur de santé de la valeur de charge doit être de 2, et ainsi de suite.
La valeur de charge moyenne sur 15 minutes est généralement utilisée pour évaluer la charge du système.
2. w commande
$ w\
17:47:40 up 69 days, 6:24, 1 user, load average: 0.46, 0.26, 0.25\
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT\
lvinkim pts/0 14.18.144.2 15:55 0.00s 0.02s 0.00s w
Copier après la connexion
Ligne 1 : identique à celle de disponibilité.
En dessous de la ligne 2, la liste des utilisateurs actuellement connectés.
3. Commande supérieure
$ top\
top - 17:51:23 up 69 days, 6:28, 1 user, load average: 0.31, 0.30, 0.26\
Tasks: 99 total, 1 running, 98 sleeping, 0 stopped, 0 zombie\
Cpu(s): 2.3%us, 0.2%sy, 0.0%ni, 97.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st\
Mem: 1922244k total, 1737480k used, 184764k free, 208576k buffers\
Swap: 0k total, 0k used, 0k free, 466732k cached\
\
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND \
1 root 20 0 19232 1004 708 S 0.0 0.1 0:01.17 init \
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd \
...
Copier après la connexion
Ligne 1 : identique à celle de disponibilité.
Ligne 2 : informations sur le numéro de processus.
Tâches : 99 au total : il y a 99 processus au total
1 en cours d'exécution : 1 processus occupe le processeur
98 en veille : 98 processus en veille
0 arrêté : 0 processus arrêtés
0 zombie : 0 processus zombie
Ligne 3 : utilisation du processeur
nous (utilisateur) : occupé par des processus utilisateur non sympas Ratio CPU
sy (système) : Le ratio entre le noyau et les processus du noyau occupant le CPU
ni (nice) : Le ratio du CPU occupé par les processus qui ont changé de priorité dans l'espace des processus utilisateur
id (idle) : taux d'inactivité du processeur. Si le système est lent et que cette valeur est élevée, cela signifie que la raison de la lenteur du système n'est pas une charge élevée du processeur
wa (iowait) : Le rapport de temps du CPU en attente pour effectuer les opérations d'E/S, cet indicateur peut être utilisé pour résoudre les problèmes d'E/S de disque, généralement combiné avec wa et id pour déterminer
hi (Hardware IRQ) : le rapport de le temps passé par le CPU à traiter les interruptions matérielles
si (Software Interrupts) : Le rapport du temps passé par le CPU à traiter les interruptions logicielles
st (steal) : Le temps écoulé, le rapport de Temps CPU occupé par d'autres tâches dans la machine virtuelle
Quelques situations qui nécessitent une attention particulière :
Le processus utilisateur a une proportion élevée et le fonctionnement des E/S est faible : cela signifie que la raison pour laquelle Le système lent est que le processus consomme beaucoup de CPU, et il s'accompagne généralement d'un faible taux d'inactivité, ce qui signifie que le CPU a très peu de temps d'inactivité.
Le fonctionnement des E/S est faible et le taux d'inactivité id est élevé : la possibilité d'un goulot d'étranglement des ressources CPU peut être éliminée.
Le fonctionnement des E/S est élevé : cela signifie que les E/S prennent beaucoup de temps CPU. Vous devez vérifier l'utilisation de l'espace de swap. L'espace de swap est situé sur le disque et les performances sont importantes. inférieur à celui de la mémoire. Lorsque la mémoire est épuisée, le swap est utilisé. Lors de l'utilisation de l'espace, cela aura un impact sérieux sur les performances, donc pour les serveurs ayant des exigences de performances plus élevées, il est généralement recommandé de désactiver l'espace de swap. D'un autre côté, s'il y a beaucoup de mémoire mais que wa est élevé, vous devez vérifier quel processus consomme beaucoup de ressources d'E/S.
Plus de situations de charge peuvent être jugées de manière flexible dans la pratique.
4. Commande iostat
La commande iostat peut vérifier l'utilisation des E/S de la partition système
$ iostat \
Linux 2.6.32-573.22.1.el6.x86_64 (sgs02) 01/20/2017 _x86_64_ (1 CPU)\
\
avg-cpu: %user %nice %system %iowait %steal %idle\
2.29 0.00 0.25 0.04 0.00 97.41\
\
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn\
vda 1.15 3.48 21.88 21016084 131997520
Copier après la connexion
Quelques indicateurs IO remarquables :
Périphérique : nom du disque
tps : requêtes de transfert d'E/S par seconde
Blk_read/s : combien de blocs sont lus par seconde Pour afficher la taille du bloc, reportez-vous à la commande tune2fs
. Blk_wrtn/s : combien de blocs sont écrits par seconde
Blk_read : combien de blocs sont lus au total
–Blk_wrtn : combien de blocs sont écrits au total
5. Commande iotop
iotop La commande est similaire à la commande top, mais elle affiche l'état d'E/S de chaque processus, ce qui est utile pour localiser les processus avec des opérations d'E/S lourdes.
# iotop\
Total DISK READ: 0.00 B/s | Total DISK WRITE: 774.52 K/s\
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND \
272 be/3 root 0.00 B/s 0.00 B/s 0.00 % 4.86 % [jbd2/vda1-8]\
9072 be/4 mysql 0.00 B/s 268.71 K/s 0.00 % 0.00 % mysqld\
5058 be/4 lvinkim 0.00 B/s 3.95 K/s 0.00 % 0.00 % php-fpm: pool www\
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
Copier après la connexion
Vous pouvez voir l'intensité de lecture et d'écriture de différentes tâches.
6. outil sysstat
很多时候当检测到或者知道历史的高负载状况时,可能需要回放历史监控数据,这时 sar 命令就派上用场了,sar 命令同样来自 sysstat 工具包,可以记录系统的 CPU 负载、I/O 状况和内存使用记录,便于历史数据的回放。
sysstat 的配置文件在 /etc/sysconfig/sysstat 文件,历史日志的存放位置为 /var/log/sa\
统计信息都是每 10 分钟记录一次,每天的 23:59 会分割统计文件,这些操作的频率都在 /etc/cron.d/sysstat 文件配置。\
七、sar 命令
使用 sar 命令查看当天 CPU 使用:
$ sar\
Linux 2.6.32-431.23.3.el6.x86_64 (szs01) 01/20/2017 _x86_64_ (1 CPU)\
\
10:50:01 AM CPU %user %nice %system %iowait %steal %idle\
11:00:01 AM all 0.45 0.00 0.22 0.40 0.00 98.93\
Average: all 0.45 0.00 0.22 0.40 0.00 98.93
Copier après la connexion
使用 sar 命令查看当天内存使用:
$ sar -r\
Linux 2.6.32-431.23.3.el6.x86_64 (szs01) 01/20/2017 _x86_64_ (1 CPU)\
\
10:50:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit\
11:00:01 AM 41292 459180 91.75 44072 164620 822392 164.32\
Average: 41292 459180 91.75 44072 164620 822392 164.32
Copier après la connexion
使用 sar 命令查看当天 IO 统计记录:
$ sar -b\
Linux 2.6.32-431.23.3.el6.x86_64 (szs01) 01/20/2017 _x86_64_ (1 CPU)\
\
10:50:01 AM tps rtps wtps bread/s bwrtn/s\
11:00:01 AM 3.31 2.14 1.17 37.18 16.84\
Average: 3.31 2.14 1.17 37.18 16.84
Copier après la connexion
更多 sar 用法,请 man sar 。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!