Comment surveiller autant de paramètres du serveur Linux, la maîtrise de ces commandes de surveillance Linux peut laisser du travail tôt !

1. UC

cat /proc/cpuinfo
# 物理 CPU 个数
cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l
# 每个 CPU 核心数
cat /proc/cpuinfo | grep 'core id' | sort | uniq | wc -l
# 逻辑 CPU
cat /proc/cpuinfo | grep 'processor' | sort | uniq | wc -l
# mpstat
mpstat
mpstat 2 10

2. Mémoire

cat /proc/meminfo
free -gt
df -hT
du -csh ./*

Mémoire/file d'attente partagée OS IPC :

ipcs #(shmems, queues, semaphores)

Habituellement, nous avons souvent besoin de surveiller l'état d'utilisation de la mémoire. Les commandes couramment utilisées sont free, vmstat, top, dstat -metc.

2.1 gratuit

> free -h
             total       used       free     shared    buffers     cached
Mem:          7.7G       6.2G       1.5G        17M        33M       184M
-/+ buffers/cache:       6.0G       1.7G
Swap:          24G       581M        23G
La signification de chaque ligne de données

première ligne Mem:

  • total: mémoire totale 7.7G, taille de la mémoire physique , est la mémoire réelle de la machine
  • used: Mémoire utilisée6.2G , cette valeur inclut cachedla mémoire réellement utilisée par l'application
  • free: mémoire libre1.5G , taille mémoire inutilisée
  • shared: la taille de la mémoire partagée ,17M
  • buffers: la taille mémoire occupée par le buffer ,33M
  • cached: la taille mémoire occupée par le cache ,184M

Y compris:

total = used + free

La deuxième ligne -/+ buffers/cachereprésente la mémoire réellement utilisée par l'application :

  • La valeur précédente indique used - buffers/cachedque la mémoire réellement utilisée par l'application
  • Cette dernière valeur représente free + buffers/cachedla mémoire qui peut théoriquement être utilisée

On peut voir que la somme de ces deux valeurs est égalementtotal

La troisième ligne swapreprésente l'utilisation de la partition swap : totale, utilisée et inutilisée

cache cache

cacheReprésente le cache . Lorsque le système lit un fichier , il lit d'abord les données du disque dur dans la mémoire . Comme le disque dur est beaucoup plus lent que la mémoire, ce processus prendra du temps.

Afin d'améliorer l'efficacité, Linux mettra en cache les fichiers lus en mémoire (principe de localité), même si le programme se termine, le cache ne sera pas libéré automatiquement. Par conséquent, lorsqu'un programme effectue un grand nombre d'opérations de lecture de fichiers, vous constaterez que le taux d'utilisation de la mémoire a augmenté.

Lorsque d'autres programmes ont besoin d'utiliser de la mémoire, Linux libère ces caches inutilisés selon sa propre stratégie de cache (telle que LRU) pour que d'autres programmes les utilisent. Bien sûr, vous pouvez également libérer le cache manuellement :

echo 1 > /proc/sys/vm/drop_caches
tampon tampon

Considérez le scénario d' écriture de fichiers de la mémoire vers le disque dur , car le disque dur est trop lent, si la mémoire doit attendre que les données soient écrites avant de poursuivre les opérations suivantes, l'efficacité sera très faible et il affectent également la vitesse d'exécution du programme, il y a donc un tamponbuffer .

Lorsque la mémoire doit écrire des données sur le disque dur, elle sera d'abord placée dans le tampon, et la mémoire écrira rapidement les données dans le tampon, et d'autres travaux pourront être poursuivis, tandis que le disque dur pourra lire lentement les données dans le tampon en arrière-plan et enregistrez-le, afin d'améliorer l'efficacité de la lecture et de l'écriture.

Par exemple, lors de la copie d'un fichier de l'ordinateur vers une clé USB, si le fichier est particulièrement volumineux, une telle situation peut parfois se produire : le système indique toujours que la clé USB est en cours d'utilisation même si le fichier a été copié. . C'est la raison du tampon : bien que le programme de copie ait mis les données dans le tampon, il n'a pas écrit toutes les données sur le disque U.

De même, vous pouvez utiliser syncla commande pour flush buffermodifier manuellement le contenu :

> sync --help

Usage: sync [OPTION] [FILE]...
Synchronize cached writes to persistent storage

If one or more files are specified, sync only them,
or their containing file systems.

  -d, --data             sync only file data, no unneeded metadata
  -f, --file-system      sync the file systems that contain the files
      --help     display this help and exit
      --version  output version information and exit

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Full documentation at: <http://www.gnu.org/software/coreutils/sync>
or available locally via: info '(coreutils) sync invocation'
partition d'échange

La partition swapswap est un concept important dans la mise en œuvre de la mémoire virtuelle. swapIl s'agit d'utiliser une partie de l'espace sur le disque dur comme mémoire, et le programme en cours d'exécution utilisera la mémoire physique et placera la mémoire inutilisée sur le disque dur, qui s'appelle swap out. Le fait de replacer la mémoire de la partition d'échange du disque dur dans la mémoire physique s'appelle swap in.

La partition de swap peut logiquement étendre l'espace mémoire, mais elle ralentira également la vitesse du système, car la vitesse de lecture et d'écriture du disque dur est très lente. Le système Linux place la mémoire rarement utilisée dans la partition de swap.

La différence entre cache et tampon
  • cache: En tant page cacheque mémoire, c'est le cache du système de fichiers , et les données au niveau du fichier seront mises en cache page cachedans
  • buffer: Comme buffer cachela mémoire, c'est le cache des blocs du disque , et les données directement exploitées sur le disque seront mises en cache dans le cache tampon

En termes simples : page cacheutilisé pour mettre en cache les données du fichier , buffer cacheutilisé pour mettre en cache les données du disque . Dans le cas d'un système de fichiers, si le fichier est exploité, les données y seront mises en cache page cache. Si ddle disque est lu et écrit directement à l'aide d'outils tels que , les données seront mises en cache dans buffer cache.

2.2 vmstat

vmstat (Virtual Memory Stats, statistiques de la mémoire virtuelle) est une statistique sur la situation globale du système, comprenant des statistiques sur le processus du noyau, la mémoire virtuelle, le disque, les interruptions et l'activité du processeur :

> vmstat --help

Usage:
 vmstat [options] [delay [count]]

Options:
 -a, --active           active/inactive memory
 -f, --forks            number of forks since boot
 -m, --slabs            slabinfo
 -n, --one-header       do not redisplay header
 -s, --stats            event counter statistics
 -d, --disk             disk statistics
 -D, --disk-sum         summarize disk statistics
 -p, --partition <dev>  partition specific statistics
 -S, --unit <char>      define display unit
 -w, --wide             wide output
 -t, --timestamp        show timestamp

 -h, --help     display this help and exit
 -V, --version  output version information and exit
来源 | 公众号:网络技术干货圈
For more details see vmstat(8).

> vmstat -SM 1 100 # 1 表示刷新间隔(秒),100 表示打印次数,单位 MB

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0    470    188   1154    0    0     0     4    3    0  0  0 99  0  0
 0  0      0    470    188   1154    0    0     0     0  112  231  1  1 98  0  0
 0  0      0    470    188   1154    0    0     0     0   91  176  0  0 100  0  0
 0  0      0    470    188   1154    0    0     0     0  118  229  1  0 99  0  0
 0  0      0    470    188   1154    0    0     0     0   78  156  0  0 100  0  0
 0  0      0    470    188   1154    0    0     0    64   84  186  0  1 97  2  0
processus
  • rColonne : Indique le nombre de processus en cours d'exécution et en attente de la tranche de temps CPU . Si cette valeur est supérieure au nombre de CPU pendant une longue période, cela signifie que les ressources CPU sont insuffisantes et vous pouvez envisager d'augmenter la CPU
  • bColonne : indique le nombre de processus en attente d'une ressource , par exemple en attente d'E/S ou d'échange de mémoire
mémoire
  • swpnColonne : indique la taille de la mémoire commutée sur la partition d'échange . Si swpdla valeur de n'est pas 0 ou est relativement grande, et que la valeur de et est 0 pendant une longue période, alors cette situation n'affectera pas les performances du système pour le moment siêtreso
  • freeColonne : la taille actuelle de la mémoire physique libre
  • buffColonne : indique buffers cachela taille de la mémoire . Généralement, la lecture et l'écriture du périphérique bloc doivent uniquement être mises en mémoire tampon.
  • cacheColonne : Indique page cachela taille de la mémoire , qui est généralement utilisée comme cache du système de fichiers , et les fichiers fréquemment consultés seront mis en cache. Si la valeur du cache est relativement grande, cela signifie que le nombre de fichiers mis en cache est important. Si les E/S sont birelativement petites à ce moment, cela signifie que le système de fichiers est plus efficace
échanger
  • siColonne : Indique swap inque la mémoire est mise en mémoire physique par la partition swap
  • soColonne : Indique swap outque la mémoire inutilisée sera placée dans la partition swap du disque dur
io
  • biColonne : indique la quantité totale de données lues à partir du périphérique bloc, c'est-à-dire le disque lu, l'unitéKB/s
  • boColonne : indique la quantité totale de données écrites sur le périphérique bloc, c'est-à-dire écrites sur le disque, l'unitéKB/s

bi+boLa valeur de référence définie ici 1000, si elle dépasse 1000, et que wala valeur est relativement grande, cela signifie que le goulot d'étranglement des performances d'E/S du disque système

système
  • inColonne : Indique le nombre d'interruptions de périphérique par seconde observées pendant un certain intervalle de temps
  • csColonne : Indique le nombre de changements de contexte générés par seconde

Plus les deux valeurs ci-dessus sont grandes, plus le noyau consomme de temps CPU

CPU
  • usColonne : indique le pourcentage de temps pendant lequel le processus utilisateur a consommé le processeur. usLorsque la valeur est relativement élevée, cela signifie que le processus utilisateur consomme plus de temps CPU. Si elle est supérieure à 50% pendant une longue période, vous pouvez envisager d'optimiser le programme.
  • syColonne : indique le pourcentage de temps pendant lequel le processus du noyau a consommé le CPU. syLorsque la valeur est relativement élevée, cela signifie que le noyau consomme plus de temps CPU, si elle us+sydépasse 80%, cela signifie que les ressources CPU sont insuffisantes.
  • idColonne : indique le pourcentage de temps pendant lequel le processeur était inactif
  • waColonne : indique le pourcentage de temps CPU passé par l'attente d'E/S. waPlus la valeur est élevée, plus l'attente d'E/S est importante. Si wala valeur dépasse 20 %, cela signifie que l'attente d'E/S est sérieuse
  • stColonne : indique le temps de vol du processeur, pour les machines virtuelles

3. Réseau

3.1 Interface

ifconfig
iftop
ethtool

3.2 Ports

# 端口
netstat -ntlp # TCP
netstat -nulp # UDP
netstat -nxlp # UNIX
netstat -nalp # 不仅展示监听端口,还展示其他阶段的连接
lsof -p <PID> -P
lsof -i :5900
sar -n DEV 1  # 网络流量
ss
ss -s

3.3 tcpdump

sudo tcpdump -i any udp port 20112 and ip[0x1f:02]=0x4e91 -XNnvvv
sudo tcpdump -i any -XNnvvv
sudo tcpdump -i any udp -XNnvvv
sudo tcpdump -i any udp port 20112 -XNnvvv
sudo tcpdump -i any udp port 20112 and ip[0x1f:02]=0x4e91 -XNnvvv

3.4 nethogs

Surveiller le trafic réseau de chaque processus

nethogs

4. Performances d'E/S

iotop
iostat
iostat -kx 2
vmstat -SM
vmstat 2 10
dstat
dstat --top-io --top-bio

5. Processus

top
top -H
htop
ps auxf
ps -eLf # 展示线程
ls /proc/<PID>/task

5.1 haut

Par exemple les commandes les plus couramment utiliséestop :

Help for Interactive Commands - procps version 3.2.8
Window 1:Def: Cumulative mode Off.  System: Delay 3.0 secs; Secure mode Off.

  Z,B       Global: 'Z' change color mappings; 'B' disable/enable bold
  l,t,m     Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info
  1,I       Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode

  f,o     . Fields/Columns: 'f' add or remove; 'o' change display order
  F or O  . Select sort field
  <,>     . Move sort field: '<' next col left; '>' next col right
  R,H     . Toggle: 'R' normal/reverse sort; 'H' show threads
  c,i,S   . Toggle: 'c' cmd name/line; 'i' idle tasks; 'S' cumulative time
  x,y     . Toggle highlights: 'x' sort field; 'y' running tasks
  z,b     . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
  u       . Show specific user only
  n or #  . Set maximum tasks displayed

  k,r       Manipulate tasks: 'k' kill; 'r' renice
  d or s    Set update interval
  W         Write configuration file
  q         Quit
          ( commands shown with '.' require a visible task display window ) 
Press 'h' or '?' for help with Windows,
any other key to continue
  • 1: Afficher l'utilisation de chaque CPU
  • c: affiche le chemin complet du processus
  • H: afficher les discussions
  • P: Trier - Utilisation CPU
  • M: tri - utilisation de la mémoire
  • R: ordre inverse
  • Z: Modifier les mappages de couleurs
  • B: Désactiver/activer le gras
  • l : Basculer la charge moyenne
  • t: Basculer les statistiques de tâche/processeur
  • m: Basculer les infos mémoire
us - Time spent in user space
sy - Time spent in kernel space
ni - Time spent running niced user processes (User defined priority)
id - Time spent in idle operations
wa - Time spent on waiting on IO peripherals (eg. disk)
hi - Time spent handling hardware interrupt routines. (Whenever a peripheral unit want attention form the CPU, it literally pulls a line, to signal the CPU to service it)
来源 | 公众号:网络技术干货圈
si - Time spent handling software interrupt routines. (a piece of code, calls an interrupt routine...)
st - Time spent on involuntary waits by virtual cpu while hypervisor is servicing another processor (stolen from a virtual machine)

5.2 lsof

lsof -P -p 123

6. Tests de performances

stress --cpu 8 \
       --io 4  \
       --vm 2  \
       --vm-bytes 128M \
       --timeout 60s

timeCommande

7. Utilisateurs

w
whoami

8. État du système

uptime
htop
vmstat
mpstat
dstat

9. Matériel informatique

lspci
lscpu
lsblk
lsblk -fm # 显示文件系统、权限
lshw -c display
dmidecode

10. Système de fichiers

# 挂载
mount
umount
cat /etc/fstab
# LVM
pvdisplay
pvs
lvdisplay
lvs
vgdisplay
vgs
df -hT
lsof

11. Noyau, interruption

cat /proc/modules
sysctl -a | grep ...
cat /proc/interrupts

12. Journal système, journal du noyau

dmesg
less /var/log/messages
less /var/log/secure
less /var/log/auth

13. tâche chronométrée cron

crontab -l
crontab -l -u nobody
 # 查看所有用户的cron
sudo find /var/spool/cron/ | sudo xargs cat

14. Outils de débogage

14.1 performances

14.2 trace

straceCommande d' impression des appels système, signaux :

strace -p
strace -p 5191 -f
strace -e trace=signal -p 5191

-e trace=open
-e trace=file
-e trace=process
-e trace=network
-e trace=signal
-e trace=ipc
-e trace=desc
-e trace=memory

14,3 ltrace

ltraceLa commande permet d'imprimer l'accès à la bibliothèque de liens dynamiques :

ltrace -p <PID>
ltrace -S # syscall

15. Scénarios

Scénario 1 : Après la connexion au serveur

w       # 显示当前登录的用户、登录 IP、正在执行的进程等
last    # 看看最近谁登录了服务器、服务器重启时间
uptime  # 开机时间、登录用户、平均负载
history # 查看历史命令

Scénario 2 : quelles informations se trouvent dans le répertoire /proc

cat /proc/...

cgroups
cmdline
cpuinfo
crypto
devices
diskstats
filesystems
iomem
ioports
kallsyms
meminfo
modules
partitions
uptime
version
vmstat

Scénario 3 : Exécuter des commandes en arrière-plan

nohup <command> &>[some.log] &

quelques commandes

# 综合
top
htop 
glances
dstat & sar
mpstat
# 性能分析
perf
# 进程
ps
pstree -p
pgrep
pkill
pidof
Ctrl+z & jobs & fg
# 网络
ip
ifconfig
dig
ping
traceroute
iftop 
pingtop 
nload
netstat
vnstat
slurm
scp
tcpdump
# 磁盘 I/O
iotop 
iostat
# 虚拟机
virt-top
# 用户
w
whoami
# 运行时间
uptime
# 磁盘
du
df
lsblk
# 权限
chown
chmod
# 服务
systemctl list-unit-files
# 定位
find
locate
# 性能测试
time

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43025343/article/details/132269629
conseillé
Classement