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 核数
Linux 教程 Linux 用户 Linux 基础命令 Linux 文件权限 Linux 文件查找 Linux 文件归档 Linux vim Linux 管道和重定向 Linux 进程 Linux 运行状态 Linux 服务管理 Linux 定时任务 Linux 磁盘 Linux LVM Linux 网络配置 Linux 软件管理 Linux iptables Linux SSH Linux curl