Linux常用的监控命令——让你轻松掌握服务器状态
可以展示当前系统进程信息并按照CPU、内存等指标排序。使用top命令可以快速了解当前哪些进程占用了最多CPU、内存等资源。第三行和第四行显示了内存和swap使用情况。
作为一名运维人员,对服务器的监控是必不可少的。而在Linux系统中,有很多实用的监控命令可以帮助我们了解服务器的运行状况。本文将介绍几个常用的Linux监控命令,并详细讲解它们各自所能提供的信息以及如何使用。
1. top
top是一个实时系统进程查看器,可以展示当前系统进程信息并按照CPU、内存等指标排序。使用top命令可以快速了解当前哪些进程占用了最多CPU、内存等资源。
例如:
“`
top
该命令会打开一个动态刷新窗口,在这个窗口中你可以看到类似下面这样的输出:
Tasks: 137 total, 1 running, 136 sleeping, 0 stopped, 0 zombie
%Cpu(s): 11.2 us, 11.8 sy, 0.0 ni,76.9 id ,0.1 wa ,0.0 hi ,0 .1 si ,00.st
KiB Mem :16243552+total ,13955868 free ,2665116 used ,16756 buff/cache
KiB Swap:2097148 total ,2097148 free , o used 。16093392 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 1958368 O Ss O.O 7.6 O:43.96 systemd
2 root 20 o o o oo.SS O.OO o:00.04 kthreadd
3 root rt o o ooo.SS O.OO o:00.08 migration/0
4 root rt o ooOOoo.SS OO.OO OO:05.42 watchdog/0
5 root rt .oOOooo.SS OO.OO OO:06.36 migration/1
其中,第一行显示了当前系统进程的总数以及各种状态的进程数量。第二行则展示了CPU使用率,可以看到us、sy、ni等指标分别代表什么含义。第三行和第四行显示了内存和swap使用情况。最后面是各个进程的详细信息,包括PID、USER、%CPU等。
2. vmstat
vmstat是一个Linux系统性能监视工具,可以实时展示内存、虚拟内存、IO等方面的统计信息。
vmstat -n 2
该命令会每隔2秒刷新一次输出,在输出中你可以看到类似下面这样的内容:
procs ———–memory———- —swap– —–io—- -system– ——cpu—–
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 13955868 16756 16093392 O O O O OO.OO OO.OO 11.2 11.8 76.9 o.o
0 0 0 13955868 o o OO.OO OO.OO oo oo o.o o.o oo o.o
其中,第一列r表示正在运行的进程数,第二列b表示等待IO的进程数。接下来是内存、swap、io以及CPU使用情况。
![Linux常用的监控命令——让你轻松掌握服务器状态缩略图 Linux常用的监控命令——让你轻松掌握服务器状态](https://www.72715.net/wp-content/uploads/2023/05/3134ceed113fc7e6bd66a36eafd19ad3.png)
3. iostat
iostat是一个Linux系统磁盘I/O性能监视工具,可以实时展示磁盘读写速度、响应时间等信息。
iostat -xkz sda
该命令会每隔1秒刷新一次输出,并且只展示sda这个磁盘的信息。在输出中你可以看到类似下面这样的内容:
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda O.OOO OOO .OO .1o .oo os sso.o6 OOo sooo sooo tooo t2
其中,r表示每秒读取次数,w表示每秒写入次数;rkB和wkB分别表示每秒读取和写入数据量;await代表平均请求处理时间;svctm代表平均服务时间。
4. netstat
netstat是一个Linux系统网络工具,可以展示当前系统的网络连接情况。
netstat -an
该命令会展示所有TCP和UDP连接的信息。在输出中你可以看到类似下面这样的内容:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 O 0.0.0.0:22 000.000.00.OO:oo LISTEN
tcp o O 192.168.o.o:22 192.lo8.o.OoO:54o84 ESTABLISHED
tcp6 O O :::22 :::* LISTEN
udp o o O.O.O.O:o oo7.loo.OOO.l2l:l2l ESTABLISHED
udp6 o o ::1:l2l :::* CLOSE
其中,Local Address表示本地地址,Foreign Address表示远程地址;State表示连接状态。
5. sar
sar是一个Linux系统资源使用情况统计工具,可以记录CPU、内存、IO等方面的历史数据,并生成报告。
sar -u -f /var/log/sa/sa09
该命令会读取/var/log/sa/sa09文件(通常为当天日期),并输出CPU使用率历史数据。在输出中你可以看到类似下面这样的内容:
12:00:01 AM CPU %user %nice %system %iowait%steal %idle
12:10:01 AM all 4.23 O.OO O.OO o.o o.OO 95.77
12:20:01 AM all 2.79 O.OO 1.15 o.o o.OO 96.06
其中,%user表示CPU用户态使用率,%system表示CPU内核态使用率,%idle表示CPU空闲时间。
本文介绍了几个常用的Linux监控命令,包括top、vmstat、iostat、netstat和sar。这些工具可以帮助我们快速了解服务器的运行状况,并及时发现问题。当然,在实际应用中可能还需要更多的监控工具来全面监测服务器状态。只有对服务器进行全面有效的监控才能确保系统稳定运行。