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常用的监控命令——让你轻松掌握服务器状态

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。这些工具可以帮助我们快速了解服务器的运行状况,并及时发现问题。当然,在实际应用中可能还需要更多的监控工具来全面监测服务器状态。只有对服务器进行全面有效的监控才能确保系统稳定运行。