监控服务器的运行状态,是每一个运维人员的必要工作。Linux 提供了很多关于服务器运行状态的命令,如 w
、free
、uptime
、vmstat
、 ps
... 但是这些大部分的命令,都是一个命令的子集,这个命令就是 top
。
返回系统各个资源的运行状态。
$top
top - 23:04:50 up 115 days, 21:24, 9 users, load average: 0.08, 0.08, 0.02
Tasks: 32 total, 1 running, 31 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 262144 total, 106036 free, 112092 used, 44016 buff/cache
KiB Swap: 131072 total, 0 free, 131072 used. 42841 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
24457 root 20 0 38700 1848 1360 R 0.3 0.7 0:00.01 top
1 root 20 0 188912 1888 1140 S 0.0 0.7 0:52.34 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd/319573
3 root 20 0 0 0 0 S 0.0 0.0 0:00.14 khelper/319573
55 root 20 0 41632 136 88 S 0.0 0.1 0:05.95 systemd-udevd
56 root 20 0 28664 1224 1092 S 0.0 0.5 1:03.94 systemd-journal
125 root 20 0 47568 320 192 S 0.0 0.1 0:10.13 rpcbind
255 root 20 0 65452 336 228 S 0.0 0.1 0:24.40 sshd
269 mysql 20 0 1158712 916 348 S 0.0 0.3 80:25.97 mysqld
276 root 20 0 12780 8 4 S 0.0 0.0 0:00.00 agetty
277 root 20 0 12780 8 4 S 0.0 0.0 0:00.00 agetty
278 root 20 0 124920 4 0 S 0.0 0.0 0:00.00 nginx
279 www-data 20 0 125644 1132 548 S 0.0 0.4 0:35.67 nginx
458 root 20 0 131664 69712 1624 S 0.0 26.6 42:41.52 ssserver
24077 root 20 0 90396 3700 2800 S 0.0 1.4 0:00.00 sshd
24086 root 20 0 18368 1468 808 S 0.0 0.6 0:00.00 bash
24100 root 20 0 90396 3704 2800 S 0.0 1.4 0:00.03 sshd
24111 root 20 0 18368 1476 812 S 0.0 0.6 0:00.00 bash
24142 root 20 0 90396 3700 2800 S 0.0 1.4 0:00.00 sshd
24151 root 20 0 18368 1464 808 S 0.0 0.6 0:00.00 bash
24227 root 20 0 90396 3700 2800 S 0.0 1.4 0:00.00 sshd
24236 root 20 0 18368 1472 808 S 0.0 0.6 0:00.00 bash
24249 root 20 0 90396 3700 2800 S 0.0 1.4 0:00.01 sshd
24258 root 20 0 18368 1468 808 S 0.0 0.6 0:00.00 bash
24269 root 20 0 90396 3704 2800 S 0.0 1.4 0:00.00 sshd
下面我们解读一下这些信息。
上面提到了一个概念 负载
。load average 就是 cpu、内存、IO 等等各种的运行状况。这个数值不要高于当前系统 CPU 的核数。
cat /proc/cpuinfo // 查看 cpu 的信息,cores 核数