1. 简介
Linux是一种自由和开源的操作系统内核,被广泛应用于服务器和嵌入式设备领域。由于Linux的开放性和灵活性,很多企业和个人选择使用Linux作为他们的操作系统。然而,在使用Linux系统时,了解系统的使用情况是非常重要的。这篇文章将介绍如何实时查看Linux系统的使用情况。
2. 使用top命令查看系统整体情况
top命令是一个非常常用的Linux命令,用于实时监控系统的整体情况。通过运行top命令,您可以看到系统的负载情况、CPU使用率、内存使用情况等信息。以下是运行top命令后的输出示例:
top - 09:34:13 up 1 day, 2:03, 2 users, load average: 0.20, 0.18, 0.12
Tasks: 255 total, 1 running, 253 sleeping, 0 stopped, 1 zombie
%Cpu(s): 0.9 us, 0.7 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 4047704 total, 1923576 free, 907612 used, 1216516 buff/cache
KiB Swap: 4194300 total, 4194300 free, 0 used. 2796808 avail Mem
从上述输出可以看出,系统的负载情况(load average)分别是0.20、0.18和0.12,这表示系统的负载水平比较低。同时,可以看到CPU的使用率、内存的使用情况等详细信息。
2.1 重要参数解释
在top命令的输出中,有一些重要的参数需要解释。
load average: 用于表示系统的负载情况,一般以三个值表示,分别是1分钟、5分钟和15分钟的平均负载。
%Cpu(s): 用于表示CPU的使用率,其中us表示用户空间占用CPU的时间百分比,sy表示内核空间占用CPU的时间百分比,id表示CPU空闲时间百分比。
KiB Mem: 表示系统的内存情况,其中total表示总内存大小,free表示空闲内存大小,used表示已使用的内存大小,buff/cache表示被缓存的内存大小。
KiB Swap: 表示系统的交换分区情况,其中total表示总交换分区大小,free表示空闲交换分区大小,used表示已使用的交换分区大小,avail Mem表示可用内存大小。
3. 使用vmstat命令查看系统资源使用情况
除了使用top命令外,还可以使用vmstat命令来查看系统的资源使用情况。vmstat命令可以显示出系统的进程、内存、交换分区、I/O等信息,它可以显示出一些top命令无法显示的详细信息。
vmstat 1 5
上述命令将每秒钟输出一次信息,输出5次。以下是vmstat命令的输出示例:
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 1923576 1216524 1415992 0 0 6 3 14 32 1 1 99 0 0
0 0 0 1923656 1216524 1416012 0 0 0 17 2122 2942 2 1 97 0 0
0 0 0 1923656 1216524 1416040 0 0 0 0 2221 3377 3 1 96 0 0
0 0 0 1923656 1216524 1416048 0 0 0 0 2228 3176 4 1 96 0 0
0 0 0 1923656 1216524 1416068 0 0 0 0 2257 3307 2 1 97 0 0
从上述输出可以看到,vmstat命令显示了更多细节信息,例如swap的使用情况、I/O操作等。
3.1 重要参数解释
在vmstat命令的输出中,也有一些重要参数需要解释。
r: 表示正在运行的进程数量。
b: 表示处于阻塞状态的进程数量。
swpd: 表示交换分区使用情况,如果大于0,表示系统正在使用交换分区。
free: 表示空闲内存大小。
buff: 表示被缓存的内存大小。
cache: 表示文件系统缓存的内存大小。
si: 表示每秒从磁盘读入交换分区的大小。
so: 表示每秒从交换分区写入到磁盘的大小。
bi: 表示每秒块设备接收的块数量。
bo: 表示每秒块设备发送的块数量。
in: 表示每秒的中断个数。
cs: 表示每秒上下文切换的次数。
us: 表示用户空间占用CPU的时间百分比。
sy: 表示内核空间占用CPU的时间百分比。
id: 表示CPU空闲时间百分比。
wa: 表示等待I/O操作完成的CPU时间百分比。
st: 表示虚拟化环境中被虚拟化机器抢占的CPU时间百分比。
4. 使用sar命令查看系统历史情况
sar命令是一个强大的系统监控命令,它可以通过查看系统历史情况来分析系统的性能。sar命令可以输出各种资源的使用情况,包括CPU、内存、磁盘、网络等。
sar -u 1 5
上述命令将每秒钟输出一次CPU使用情况,输出5次。以下是sar命令的输出示例:
Linux 5.4.0-52-generic (hostname) 11/17/21 _x86_64_ (4 CPU)
10:23:50 AM CPU %user %nice %system %iowait %steal %idle
10:23:51 AM all 2.65 0.00 0.32 0.00 0.00 97.03
10:23:52 AM all 2.58 0.00 0.58 0.00 0.00 96.85
10:23:53 AM all 1.97 0.00 0.47 0.00 0.00 97.56
10:23:54 AM all 2.54 0.00 0.30 0.00 0.00 97.17
10:23:55 AM all 2.81 0.00 0.47 0.00 0.00 96.72
Average: all 2.51 0.00 0.43 0.00 0.00 97.27
从上述输出中,我们可以得到CPU的使用率信息,分别以%user、%nice、%system、%iowait、%steal和%idle的形式呈现。
4.1 重要参数解释
在sar命令的输出中,有一些重要参数需要解释。
%user: 表示用户空间占用CPU的时间百分比。
%nice: 表示优先级较低的进程占用CPU的时间百分比。
%system: 表示内核空间占用CPU的时间百分比。
%iowait: 表示等待I/O操作完成的CPU时间百分比。
%steal: 表示虚拟化环境中被虚拟化机器抢占的CPU时间百分比。
%idle: 表示CPU空闲时间百分比。
5. 使用sar命令查看系统磁盘情况
除了查看CPU使用情况外,sar命令还可以查看系统的磁盘情况。使用sar命令查看系统磁盘情况可以帮助我们了解磁盘的使用情况和性能。
sar -d 1 5
上述命令将每秒钟输出一次磁盘使用情况,输出5次。以下是sar命令的输出示例:
Linux 5.4.0-52-generic (hostname) 11/17/21 _x86_64_ (4 CPU)
10:23:50 AM DEV tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
10:23:51 AM dev8-0 41.78 0.00 705.82 0.00 0 704 0
10:23:51 AM dev253-0 80.71 0.00 1651.32 0.00 0 1650 0
10:23:51 AM dev253-1 79.65 0.00 1651.32 0.00 0 1650 0
10:23:51 AM dev253-2 79.47 0.00 1651.32 0.00 0 1650 0
10:23:51 AM dev253-3 79.47 0.00 1651.32 0.00 0 1650 0
Average: dev8-0 40.91 0.00 705.68 0.00 0 704 0
Average: dev253-0 80.31 0.00 1651.32 0.00 0 1650 0
Average: dev253-1 79.82 0.00 1651.32 0.00 0 1650 0
Average: dev253-2 79.43 0.00 1651.32 0.00 0 1650 0
Average: dev253-3 79.91 0.00 1651.32 0.00 0 1650 0
从上述输出可以看到,sar命令输出了每个设备的磁盘读写速度(kB_read/s和kB_wrtn/s)以及磁盘I/O的统计信息。
5.1 重要参数解释
在sar命令的输出中,有一些重要参数需要解释。
DEV: 表示设备名。
tps: 表示每秒钟的传输次数(传输操作的个数)。
kB_read/s: 表示每秒钟读取的数据量。
kB_wrtn/s: 表示每秒钟写入的数据量。
kB_dscd/s: 表示每秒钟丢弃的数据量(不包括回写的数据)。
kB_read: 表示读取的总数据量。
kB_wrtn: 表示写入的总数据量。
kB_dscd: 表示丢弃的总数据量。
6. 总结
本文介绍了如何实时查看Linux系统的使用情况。通过使用top、vmstat和sar等命令,可以了解系统的整体情况、资源的使用情况和磁盘的情况。这些工具可以帮助我们发现系统的性能问题,优化系统的使用。通过深入了解和掌握这些工具,我们可以更好地管理和维护Linux系统。