Linux服务器监控命令

iostat

iostat 命令用来显示存储子系统的详细信息,通常用它来监控磁盘 I/O 的情况。要特别注意 iostat 统计结果中的 %iowait 值,太大了表明你的系统存储子系统性能低下。

[root@localhost ~]# iostat
Linux 3.10.0-1062.9.1.el7.x86_64 (localhost.localdomain)        2019年12月22日 _x86_64_ (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.14    0.00    0.24    0.28    0.00   99.34

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
scd0              0.00         0.06         0.00       1050          0
sda               1.42        47.81         6.82     821751     117180
dm-0              1.43        45.93         6.70     789436     115091
dm-1              0.01         0.13         0.00       2204          0

解析:

  • 使用该命令,您可以查看每个设备的总读写速度(每秒)。
  • 在我的示例中,我在/ dev / sda上每秒写入155.52 KB,自启动以来总共有54659628 KB的写入,每秒有13.09 KB的读取,以及自启动以来的4601755的读取。
  • 我可以将其与该特定SSD驱动器的平均值进行比较,然后采取相应措施。
  • 该命令还将显示CPU统计信息,如果您的CPU导致系统出现问题,它可以使您有所了解。

meminfo 和 free

Meminfo 可让你获取内存的详细信息,你可以使用 cat 和 grep 命令来显示 meminfo 信息:cat /proc/meminfo

[root@localhost ~]# cat /proc/meminfo
MemTotal:        1863088 kB
MemFree:          139472 kB
MemAvailable:     781304 kB
Buffers:             204 kB
Cached:           784760 kB
SwapCached:            0 kB
Active:           885212 kB
......

free命令显示动态的内存使用信息,free 只是给你大概的内存信息,而 meminfo 提供的信息更加详细。

[root@localhost ~]# free
              total        used        free      shared  buff/cache   available
Mem:        1863088      857488      139324       52708      866276      781132
Swap:       2097148           0     2097148

mpstat

mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。

[root@localhost ~]# mpstat
Linux 3.10.0-1062.9.1.el7.x86_64 (localhost.localdomain)        2019年12月22日 _x86_64_ (2 CPU)

20时32分11秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20时32分11秒  all    0.14    0.00    0.21    0.28    0.00    0.03    0.00    0.00    0.00   99.35

netstat

Netstat 和 ps 命令类似,是 Linux 管理员基本上每天都会用的工具,它显示了大量跟网络相关的信息,例如 socket 的使用、路由、接口、协议、网络等等,下面是一些常用的参数:
-a:Show all socket information
-r:Show routing information
-i:Show network interface statistics
-s:Show network protocol statistics

[root@localhost ~]# netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN

ps
[root@localhost ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
zabbix     1197      1  0 15:39 ?        00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix     1205   1197  0 15:39 ?        00:00:05 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix     1206   1197  0 15:39 ?        00:00:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]

sar

目前Linux上最为全面的系统性能分析工具之一,可以从14个大方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、串口、CPU效率、内存使用状况、进程活动及IPC有关的活动等,使用也是较为复杂。

sar 默认显示的是从零点开始每隔十分钟到现在的CPU情况,如果是查看之前的报告,需要指定日志报告,sar -f /var/log/sysstat/sa25 。

[root@localhost ~]# sar
Linux 3.10.0-1062.9.1.el7.x86_64 (localhost.localdomain)        2019年12月22日 _x86_64_ (2 CPU)

00时00分02秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
00时10分01秒     all      0.64      0.00      0.61      0.31      0.00     98.44
平均时间:     all      0.64      0.00      0.61      0.31      0.00     98.44

15时39分28秒       LINUX RESTART

15时40分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15时50分01秒     all      0.86      0.04      1.29      3.02      0.00     94.80
16时00分01秒     all      0.07      0.00      0.16      0.01      0.00     99.76
16时10分01秒     all      0.09      0.00      0.16      0.01      0.00     99.75

各列的指标:
%user 用户模式下消耗的CPU时间的比例;
%nice 通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间的比例
%system 系统模式下消耗的CPU时间的比例;
%iowait CPU等待磁盘I/O导致空闲状态消耗的时间比例;
%steal 利用Xen等操作系统虚拟化技术,等待其它虚拟CPU计算占用的时间比例;
%idle CPU空闲时间比例;


uptime

uptime 命令告诉你这台服务器从开机启动到现在已经运行了多长时间了。
同时也包含了从启动到现在服务器的平均负载情况:

[root@localhost ~]# uptime
 20:44:05 up  5:05,  2 users,  load average: 0.03, 0.02, 0.05

vmstat

该命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。

[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0      0 138268    204 866620    0    0    23     3   80  111  0  0 99  0  0