Linux下查看系统负载相关命令
一. top命令
- 显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
1. 使用方式
top [参数]
-b 批处理 -c 显示完整的治命令 -I 忽略失效过程 -s 保密模式 -S 累积模式
-i<时间> 设置间隔时间 -d:屏幕刷新间隔时间 -u<用户名> 指定用户名 -p<进程号> 指定进程 -n<次数> 循环显示的次数
2. 显示数据说明
①统计信息区
前五行是当前系统情况整体的统计信息区。
1)第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:
04:54:32 — 当前系统时间
up 1 min — 系统已经运行了1分钟(在这期间系统没有重启过)
2 users — 当前有2个用户登录系统
load average: 0.57, 0.37, 0.14 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
2)第二行,Tasks — 任务(进程),具体信息说明如下:
系统现在共有150个进程,其中处于运行中的有2个,148个在休眠(sleep),stoped状态的有0个,僵尸进程有0个
3)第三行,cpu状态信息,具体属性说明如下:
0.0%us — 用户空间占用CPU的百分比。
0.3% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
99.7% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比
4)第四行,内存状态,具体信息如下:
1015516k total — 物理内存总量(约1GB)
809152k used — 使用中的内存总量(790MB)
206364k free — 空闲内存总量(201MB)
57720k buffers — 缓存的内存量 (56MB)
5)第五行,swap交换分区信息,具体信息说明如下:
1046524k total — 交换区总量(1GB)
0k used — 使用的交换区总量(0K)
1046524k free — 空闲交换区总量(1GB)
355972k cached — 缓冲的交换区总量(约350MB)
②进程状态区
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 — 进程名称(命令名/命令行)
3. 如果在top中发现一个进程占用CPU资源非常大,怎么后续追踪?
- 搞清楚哪个进程占用大后,可以用-p来看单个或几个进程,比较清晰。通过-d来指定刷新时间,例如:top -p 1,12 -d 1
二. uptime命令
查看内容和top的第一行类似
三. w命令
- 用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
1.使用说明
w(选项)(用户)
-h:不打印头信息;
-u:当显示当前进程和cpu时间时忽略用户名;
-s:使用短输出格式;
-f:显示用户从哪登录;
-V:显示版本信息。
用户:仅显示指定用户。
2.显示数据说明
第一行命令和上面类似
- USER:登录用户。
- TTY:登录终端。
- FROM:远程主机名,即从哪儿登录来的。
- [email protected]:何时登录。
- IDLE:空闲了多长时间,表示用户闲置的时间。这是一个计时器,一旦用户执行任何操作,该计时器便会被重置。
- JCPU:和该终端(tty)连接的所有进程占用的时间,这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间。
- PCPU:指当前进程(即在WHAT项中显示的进程)所占用的时间 。
- WHAT:当前正在运行进程的命令行。
四. vmstat命令
- 显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。
1. 使用可选选项
-a:显示活动内页;
-f:显示启动后创建的进程总数;
-m:显示slab信息;
-n:头信息仅显示一次;
-s:以表格方式显示事件计数器和内存状态;
-d:报告磁盘状态;
-p:显示指定的硬盘分区状态;
-S:输出信息的单位。
2. 显示数据说明
①procs部分:显示进程的相关信息
- r(run):表示运行或等待CPU时间片的进程数。该数值如果长期大于CPU核数就意味着CPU不够用了。
- b(block):表示等待资源的进程数,这里的资源指的是I/O、内存等。比如说有个数据CPU很快处理完了,但是硬盘在频繁的读写当中,该数据等待写入硬盘时,这个进程就是b的状态。该数据长时间大于1就需要找找问题了。
②memory部分:显示内存的相关信息
- swpd:表示切换到交换分区中的内存数量,单位为KB。
- free:表示当前空闲的内存大小。单位KB
- fuff:表示(即将写入磁盘的)缓冲大小,单位KB
- cache:表示(从磁盘中读取的)缓存大小,单位KB
③swap 显示内存的交换情况
- si:表示由交换分区写内存的数据量,单位KB
- so:表示由内存写入交换分区的数据量
④io显示磁盘的使用情况
- bi:表示从块设备读取数据的量(读磁盘)
- bo:表示从块设备写入数据的量(写磁盘)
⑤system显示采集间隔内发生的中断次数
- in:表示在某一时间间隔内观测到的每秒设备的中断次数
- cs:表示每秒产生的上下文切换次数
⑥cpu显示CPU的使用状态
- us:显示用户下所花费CPU的时间百分比
- sy:显示系统花费CPU的时间百分比
- id:表示CPU处于空闲状态的时间百分比
- wa:表示I/O等待所占用的CPU时间百分比
五. free命令
- free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
1. 使用说明
free [参数]
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-g 以GB为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
2. 显示数据说明
- total:总计物理内存的大小。used:已使用多大。free:可用有多少。Shared:多个进程共享的内存总额。Buffers/cached:磁盘缓存的大小。
- 第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别:
这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是2098428KB,已用内存是30841684KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
六. ps命令
- ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
1. 使用说明
ps[参数]
a 显示所有进程
-a 显示同一终端下的所有程序
-A 显示所有进程
c 显示进程的真实名称
-N 反向选择
-e 等于“-A”
e 显示环境变量
f 显示程序间的关系
-H 显示树状结构
r 显示当前终端的进程
T 显示当前终端的所有程序
u 指定用户的所有进程
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
-C<命令> 列出指定命令的状况
--lines<行数> 每页显示的行数
--width<字符数> 每页显示的字符数
--help 显示帮助信息
--version 显示版本显示
2. 显示数据