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