J'ai un serveur Ubuntu exécutant Redis, qui souffre d'un problème de charge élevé.
# uptime
05:43:53 up 19 min, 1 user, load average: 2.96, 2.07, 1.52
# sar -q
05:24:00 AM LINUX RESTART
05:25:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
05:35:04 AM 0 116 3.41 2.27 1.20 4
Average: 0 116 3.41 2.27 1.20 4
La CPU utilise l'utilisation de htop
est embarrassant bas: -
34 Open redis-server
Connexions:
$ Sudo netstat -natp | grep redis-server | wc -l
34
$ free -g
total used free shared buffers cached
Mem: 14 6 8 0 0 2
-/+ buffers/cache: 4 10
Swap: 0 0 0
Comment savoir quels processus causent-ils la charge élevée en attente d'entrer l'état Running
? Le nombre de connexions est-il trop élevé?
Linux, contrairement à la plupart, sinon tous les autres OSES Unix, ne comptent pas seulement les processus de comptage à l'aide d'une CPU ou en attente d'une CPU dans la file d'attente d'exécution comme référence pour son calcul de charge, mais ajoutez également le nombre de processus (fils réellement) Etat ininterrompu, c'est-à-dire attendre pour un disque ou un réseau d'E/S. Ces derniers sont en fait inactifs, c'est-à-dire pas en utilisant la CPU.
Il n'y a alors probablement rien à craindre de votre charge (pas aussi). Les processus que vous recherchez sont probablement les filetages de noyau redis
plus transculents.