在面试开发或者运维岗的时候,面试官可能会问: 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行分别是什么意思呢?是表示系统的什么状态呢?