可参考linux系统查看CPU使用率的命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
[root@izwz94b8tt3jlf3ne0ymp3z ~]# top
top - 09:27:04 up 49 days, 23:46, 8 users, load average: 0.68, 0.72, 0.71
Tasks: 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
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8987 root 20 0 5509748 2.4g 7592 S 46.7 7.7 25382:24 java
9730 root 20 0 4261252 824940 7772 S 4.0 2.5 2816:16 java
17683 root 10 -10 170532 49188 6460 S 2.3 0.2 468:07.53 AliYunDun
10476 root 20 0 9995260 9.4g 1348 S 1.0 30.0 254:27.10 redis-server
28829 root 20 0 162656 2832 1588 R 1.0 0.0 0:01.14 top
545 root 20 0 1269008 31392 5916 S 0.3 0.1 338:24.55 CmsGoAgent.linu
546 root 20 0 21672 1088 828 S 0.3 0.0 4:10.99 irqbalance
9333 root 10 -10 436916 2032 1232 S 0.3 0.0 32:12.31 AliSecGuard
27347 root 10 -10 579632 9200 1352 S 0.3 0.0 44:12.52 AliDetect
1 root 20 0 52768 4228 1956 S 0.0 0.0 10:34.76 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.83 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
……………………………………………………………………………………………………………………………………………
第一行是任务队列信息:
参数 | 释义 |
---|---|
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 | 命令名/命令行 |
free命令
[root@izwz94b8tt3jlf3ne0ymp3z ~]# free ##以KB为单位显示内存使用情况
total used free shared buff/cache available
Mem: 32780244 18509816 5784948 11504 8485480 13856092
Swap: 0 0 0
[root@izwz94b8tt3jlf3ne0ymp3z ~]# free -m ##以MB为单位显示内存使用情况
total used free shared buff/cache available
Mem: 32011 18075 5649 11 8286 13531
Swap: 0 0 0
[root@izwz94b8tt3jlf3ne0ymp3z ~]# free -g ##以GB为单位显示内存使用情况
total used free shared buff/cache available
Mem: 31 17 5 0 8 13
Swap: 0 0 0
[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
如果使用到交换分区,则表明物理内存不够或内存泄漏了
我们的数据是存放在磁盘上的,数据是交给CPU进行处理的,但磁盘的运转速度很慢,CPU的运转速度很快,不可能直接把磁盘的数据直接丢给CPU进行处理,因此要经过一个中间层,即内存,我们把这部分内存称为缓存(cache);相反地CPU把数据处理完了,要存放到磁盘中,也要经过内存这个中间层,这部分内存则称为缓冲(buffer)因此,数据的流向不一样,内存的角色也不一样。系统会优先预留一部分内存给 buff/cache 使用,剩下的内存再留给系统或程序使用。
df命令
[root@izwz94b8tt3jlf3ne0ymp3z ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 16379668 0 16379668 0% /dev
tmpfs 16390120 0 16390120 0% /dev/shm
tmpfs 16390120 11496 16378624 1% /run
tmpfs 16390120 0 16390120 0% /sys/fs/cgroup
/dev/vda1 309505004 181307880 113500932 62% /
/dev/vdb1 515927276 21636792 471730172 5% /data
25b5d49774-fjs35.cn-shenzhen.nas.aliyuncs.com:/ 1099511627776 34277376 1099477350400 1% /content
tmpfs 3278028 4 3278024 1% /run/user/0
输出结果列说明
参数 | 释义 |
---|---|
Filesystem | 代表该文件系统是哪个分区,所以列出的是设备名称 |
1K-blocks | 磁盘大小。说明下面的数字单位是1KB,可利用-h或-m来改变单位大小,也可以用-B来设置 |
Used | 已经使用的空间大小。 |
Available | 剩余的空间大小。 |
Use% | 磁盘使用率 |
Mounted on | 磁盘挂载的目录 |