Linux 运行状态

运行状态

监控服务器的运行状态,是每一个运维人员的必要工作。Linux 提供了很多关于服务器运行状态的命令,如 wfreeuptimevmstatps ... 但是这些大部分的命令,都是一个命令的子集,这个命令就是 top


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

下面我们解读一下这些信息。

  • 1行:当前时间、运行时间、用户登陆情况、load average 三个参数分别代表 1分钟、5分钟、15分钟的负载状态。
  • 2行:进程的相关信息 | total 进程总数、runing 进行运行数、sleeping 睡眠、stopped 停止、zombie 僵死进程。
  • 3行:CPU 相关信息 | us 用户占用CPU比例、sy 内核占用CPU比例、id 空闲CPU比例、st 虚拟机占用比例。
  • 4行:内存相关信息 | total 内存总量、used 已使用、free 剩余、buff/cache 缓冲区。
  • 5行:交换分区的相关信息。
  • 下面的进程信息含义参考 ps aux

负载

上面提到了一个概念 负载。load average 就是 cpu、内存、IO 等等各种的运行状况。这个数值不要高于当前系统 CPU 的核数。

cat /proc/cpuinfo // 查看 cpu 的信息,cores 核数
更多教程 HTML5 教程 CSS3 教程 JavaScript 教程 JQuery 教程 React.js 教程 Node.js 教程 Koa2 教程 Python 教程 Linux 教程