统计Linux系统资源使用情况
Linux作为一种开源操作系统,被广泛应用于服务器领域以及嵌入式设备领域。在实际应用中,我们常常需要了解系统资源的使用情况,比如CPU的利用率、内存的占用情况、磁盘的空间利用等。本文将详细介绍如何在Linux系统中进行资源的统计和监控。
CPU的使用情况
top命令
top命令是最简单的查看系统资源使用情况的方法之一,可以实时查看系统的CPU、内存等资源使用情况。
top
运行top命令后,我们可以看到类似如下的输出:
top - 13:02:03 up 1:12, 1 user, load average: 0.19, 0.35, 0.36
Tasks: 116 total, 1 running, 115 sleeping, 0 stopped, 0 zombie
%Cpu(s): 19.3 us, 3.4 sy, 0.0 ni, 76.8 id, 0.3 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 2049288 total, 1647444 free, 277516 used, 1243284 buff/cache
KiB Swap: 1048572 total, 1048572 free, 0 used. 1587080 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5411 root 20 0 49464 3632 3152 R 6.2 0.2 0:00.01 top
1 root 20 0 131888 5280 3452 S 0.0 0.3 0:02.63 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H
其中,%Cpu(s)行显示了CPU的使用情况,us代表用户空间的CPU时间占用比例,sy代表内核空间的CPU时间占用比例,id代表CPU空闲比例。
sar命令
sar(System Activity Reporter)命令也是一个查看系统资源使用情况的工具,可以用来定期采集系统资源数据。
sar -u 1 5
上述命令表示每1秒采集一次CPU使用情况,共采集5次,并输出。
内存的使用情况
free命令
free命令用于查看系统内存的占用情况。
free -m
运行free命令后,我们可以看到类似如下的输出:
total used free shared buff/cache available
Mem: 1885 411 142 6 1331 1338
Swap: 509 0 509
输出中,Mem一行显示了物理内存的总量、已使用、空闲、共享、缓存/缓冲区的使用情况以及可用内存的情况;Swap一行显示了交换区的总量、已使用和空闲情况。
vmstat命令
vmstat命令用于显示虚拟内存的统计信息。可以使用如下命令查看系统的内存使用情况:
vmstat 1 5
磁盘的使用情况
df命令
df命令用于显示文件系统的磁盘使用情况。
df -h
运行df命令后,我们可以看到类似如下的输出:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 10G 7.5G 57% /
devtmpfs 931M 0 931M 0% /dev
tmpfs 943M 16M 927M 2% /dev/shm
tmpfs 943M 643M 300M 69% /run
tmpfs 943M 0 943M 0% /sys/fs/cgroup
输出中,Size表示文件系统总容量,Used表示已使用的容量,Avail表示剩余容量,Use%表示已使用的百分比,Mounted on表示挂载的路径。
iostat命令
iostat命令用来查看系统的输入输出设备的使用情况。
iostat -x 1 5
上述命令表示每1秒采集一次磁盘使用情况,共采集5次,并输出。
网络的使用情况
ifconfig命令
ifconfig命令用于查看网络接口的配置信息。
ifconfig
运行ifconfig命令后,我们可以看到类似如下的输出:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::250:56ff:fe45:1 prefixlen 64 scopeid 0x20
ether 00:50:56:45:00:01 txqueuelen 1000 (Ethernet)
RX packets 1951 bytes 285354 (278.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1415 bytes 256026 (249.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
netstat命令
netstat命令用于显示网络连接、路由表和网络接口信息。
netstat -nat
上述命令将输出所有的TCP连接信息。
总结:通过上述的命令,我们可以比较容易地了解Linux系统的资源使用情况,从而及时发现和解决系统性能问题,保证系统的稳定运行。