【Linux简单实用小命令010】面试常问:Linux怎么查看cpu、内存和磁盘的使用率?
在面试开发或者运维岗的时候,面试官可能会问:
Linux怎么查看cpu、内存、磁盘的使用率?
简单点来回答,就是top、free、df这三个命令。
如果想在多核Linux系统中计算cpu使用总和,可以使用sar命令。
NO.1 sar
sar -u 1 3
# 查看cpu总的使用情况,每秒刷新一次,共3次
示例如下:
[root@yaomm ~]# sar -u 1 3
Linux 3.10.0-957.21.3.el7.x86_64 (yaomm) 04/18/2020 _x86_64_ (2 CPU)
03:07:00 PM CPU %user %nice %system %iowait %steal %idle
03:07:01 PM all 1.00 0.00 0.50 0.00 0.00 98.50
03:07:02 PM all 0.50 0.00 1.00 0.00 0.00 98.50
03:07:03 PM all 1.00 0.00 0.50 0.00 0.00 98.50
Average: all 0.83 0.00 0.67 0.00 0.00 98.50
NO.2 top
top命令可以用于实时监控cpu的状态,显示系统中各个进程的资源占用情况。常用命令示例:
top
# 对,无参数的top命令是最长用的资源监控命令。
[root@VM_0_3_centos ~]# top
top - 23:03:23 up 127 days, 13:56, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 79 total, 1 running, 78 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.7 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3882032 total, 145996 free, 283752 used, 3452284 buff/cache
KiB Swap: 2097148 total, 1422392 free, 674756 used. 3218052 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
964 redis 20 0 142960 7244 988 S 0.3 0.2 168:01.87 redis-server
15515 root 20 0 260068 123108 3988 S 0.3 3.2 20:12.97 YDService
30378 root 20 0 155536 2132 1540 R 0.3 0.1 0:00.06 top
…………
# 后面还有很多内容,省略了
查看进程的cpu、内存占比主要就是看第七行下的这两列参数:
%CPU # 占用CPU百分比
%MEM # 占用物理内存百分比
如果想看每个cpu的使用率,使用命令top后按1就可以查看每个cpu的使用情况。
%Cpu0 : 1.0 us, 0.7 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.7 us, 0.7 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
NO.3 free
一台电脑、服务器,内存、存储(磁盘)、处理器(cpu)、操作系统是最基本的组成。
free就是用来监视linux系统使用内存的命令。
常用命令:
free -h
# 以人类可读方式展示内存使用情况,根据实际大小自动转换为KB、MB、GB
示例:
[root@yaomm ~]# free -h
total used free shared buff/cache available
Mem: 3.7G 2.1G 147M 1.6M 1.4G 1.3G
Swap: 0B 0B 0B
Mem为物理内存使用情况,Swap为虚拟内存使用情况(一般是划分一部分磁盘空间作为虚拟内存)。
total :总内存;3.7G一般为4G内存机器。
used :已使用内存。
free :自由内存。
shared :共享内存。
buff/cache : 缓存,3.3G。
available :可用内存。
注意:available才是可用内存。
在以前没有available这个展示字段的时候,我们通常是将 free + buff/cache 的总量作为可用内存。
linux系统的特性就是将不用的物理内存缓存起来,因为千万以为free的147M内存就是真实的系统剩余内存了。所以当前可用内存为available:1.3G。
NO.4 df
df命令可以说linux上最常用的命令之一,因为一旦磁盘空间不够就会出现各种故障,数据库、应用都可能会处于瘫痪状态。
常用命令示例:
df -h
# 以适合人类阅读的方式展示磁盘空间大小,一般以G为单位
df -i
# -i : 显示inode的使用情况
df -Th
# -T:查看文件系统类型
注意:linux文件有个inode的文件数量限制,一旦无可用inode,则无法再产生新的文件,会在磁盘空间未满的情况下报“No space left on device”,解决方案是删除无用(多天前)的小文件或者log文件。
思考题
top命令的结果中,1-5行分别是什么意思呢?是表示系统的什么状态呢?
有趣、实用的Linux命令,尽在Linux常用命令。
关注二维码,搜一搜