1:CPU使用率

可参考

常用命令:top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

[root@izwz94b8tt3jlf3ne0ymp3z ~]# top
top -09:27:04 up 49 days,23:46,8 users,  load average:0.68,0.72,0.71Tasks:642 total,1 running,641 sleeping,0 stopped,0 zombie
%Cpu0  :2.3 us,0.7 sy,0.0 ni,97.0 id,0.0 wa,0.0 hi,0.0 si,0.0 st
%Cpu1  :2.0 us,1.0 sy,0.0 ni,97.0 id,0.0 wa,0.0 hi,0.0 si,0.0 st
%Cpu2  :2.0 us,1.7 sy,0.0 ni,96.0 id,0.0 wa,0.0 hi,0.3 si,0.0 st
%Cpu3  :28.9 us,15.3 sy,0.0 ni,55.5 id,0.0 wa,0.0 hi,0.3 si,0.0 st
KiB Mem :32780244 total,5818224 free,18511132 used,8450888 buff/cache
KiB Swap:0 total,0 free,0 used.13854780 avail Mem 
  PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND8987 root      20055097482.4g   7592S46.77.725382:24 java                                                                               
 9730 root      20042612528249407772S4.02.52816:16 java                                                                               
17683 root      10-10170532491886460S2.30.2468:07.53 AliYunDun                                                                          
10476 root      20099952609.4g   1348S1.030.0254:27.10 redis-server                                                                       
28829 root      20016265628321588R1.00.00:01.14 top                                                                                
  545 root      2001269008313925916S0.30.1338:24.55 CmsGoAgent.linu                                                                    
  546 root      200216721088828S0.30.04:10.99 irqbalance                                                                         
 9333 root      10-1043691620321232S0.30.032:12.31 AliSecGuard                                                                        
27347 root      10-1057963292001352S0.30.044:12.52 AliDetect                                                                          
    1 root      2005276842281956S0.00.010:34.76 systemd                                                                            
    2 root      200000S0.00.00:00.83 kthreadd                                                                           
    4 root       0-20000S0.00.00:00.00 kworker/0:0H                                                                       
    ……………………………………………………………………………………………………………………………………………
top各参数解释:

统计信息区前几行是系统整体的统计信息。

第一行是任务队列信息

参数 释义
09:27:04 当前时间
up up 49 days, 23:46 系统运行时间,格式为天,时:分
8 users 当前登录用户数
load average: 0.68, 0.72, 0.71 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

同 uptime 命令的执行结果:

[root@izwz94b8tt3jlf3ne0ymp3z ~]# uptime
 09:30:43 up 49 days,23:50,8 users,  load average:2.11,0.87,0.74

第二行为进程的信息

参数 释义
total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数
第三行为CPU的信息
Cpu(s):
有几个CPU,就会显示几行。
例中有4个,故四行。
参数 释义
:--------: :-------------
us 表示用户空间程序的cpu使用率(没有通过nice调度)
sy 表示系统空间的cpu使用率,主要是内核程序
ni 表示用户空间且通过nice调度过的程序的cpu使用率
id 空闲cpu
wa cpu运行时在等待io的时间
hi 硬件CPU中断占用百分比
si 软中断占用百分比
st 虚拟机占用百分比
四五六行同第三行释义(多CPU)

【注意:】97.0id,表示空闲CPU,即CPU未使用率,100%-97.0%=3%,即系统的cpu使用率为3%
最后两行为内存信息
Mem:

参数 释义
total 物理内存总量
free 空闲内存总量
used 使用的物理内存总量
buff/cache 用作内核缓存的内存量
Swap:
参数 释义
:--------: :-------------
total 交换区总量
free
used 使用的交换区总量
avail Mem 代表可用于进程下一次分配的物理内存数量
第七行参数的释义
参数 释义
:--------: :-------------
PID 进程id
USER 进程所有者的用户名
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 命令名/命令行

2:内存使用率

free命令

[root@izwz94b8tt3jlf3ne0ymp3z ~]# free    	##以KB为单位显示内存使用情况
              total        used        free      shared  buff/cache   available
Mem:3278024418509816578494811504848548013856092Swap:000[root@izwz94b8tt3jlf3ne0ymp3z ~]# free -m	##以MB为单位显示内存使用情况
              total        used        free      shared  buff/cache   available
Mem:3201118075564911828613531Swap:000[root@izwz94b8tt3jlf3ne0ymp3z ~]# free -g	##以GB为单位显示内存使用情况
              total        used        free      shared  buff/cache   available
Mem:311750813Swap:000[root@izwz94b8tt3jlf3ne0ymp3z ~]# 
参数 释义
Mem 物理内存使用情况
swap 交换分区情况
+buffers/cache (可用)的内存数,即free+buffers+cached
-buffers/cache (已用)的内存数,即used-buffers-cached
total 物理内存总大小
used 已经使用的物理内存大小
free 空闲的物理内存大小
shared 多个进程共享的物理内存大小
buffers Buffer 缓存内存数
cached Page 缓存内存数
自动转换单位显示内存使用情况(centos7才有)
[root@izwz94b8tt3jlf3ne0ymp3z ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:            31G         17G        5.5G         11M        8.1G         13G
Swap:            0B          0B          0B

total 总内存 = used + free + buff/cache
available 还能用的内存 = free + buff/cache
如果使用到交换分区,则表明物理内存不够或内存泄漏了

关于 buffer 和 cache:

我们的数据是存放在磁盘上的,数据是交给CPU进行处理的,但磁盘的运转速度很慢,CPU的运转速度很快,不可能直接把磁盘的数据直接丢给CPU进行处理,因此要经过一个中间层,即内存,我们把这部分内存称为缓存(cache);相反地CPU把数据处理完了,要存放到磁盘中,也要经过内存这个中间层,这部分内存则称为缓冲(buffer)因此,数据的流向不一样,内存的角色也不一样。系统会优先预留一部分内存给 buff/cache 使用,剩下的内存再留给系统或程序使用。

3:磁盘使用率

df命令

[root@izwz94b8tt3jlf3ne0ymp3z ~]# df
Filesystem                                          1K-blocks      Used     Available Use% Mounted on
devtmpfs                                             163796680163796680%/dev
tmpfs                                                163901200163901200%/dev/shm
tmpfs                                                1639012011496163786241%/run
tmpfs                                                163901200163901200%/sys/fs/cgroup
/dev/vda1                                           30950500418130788011350093262%//dev/vdb1                                           515927276216367924717301725%/data
25b5d49774-fjs35.cn-shenzhen.nas.aliyuncs.com:/10995116277763427737610994773504001%/content
tmpfs                                                 3278028432780241%/run/user/0

输出结果列说明

参数 释义
Filesystem 代表该文件系统是哪个分区,所以列出的是设备名称
1K-blocks 磁盘大小。说明下面的数字单位是1KB,可利用-h或-m来改变单位大小,也可以用-B来设置
Used 已经使用的空间大小。
Available 剩余的空间大小。
Use% 磁盘使用率
Mounted on 磁盘挂载的目录