一、top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器,下面详细介
绍它的使用方法;
top是一个动态显示过程,即可通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为
止。top命令提供了实时的对系统处理器的状态监视;它将显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU
占用率等;
1.1 常用参数
-b:批处理

-c:显示完整的治命令

-I:忽略失效过程

-s:保密模式

-S:累积模式

-i<时间>:设置间隔时间

-u<用户名>:指定用户名

-p<进程号>:指定进程

-n<次数>:循环显示的次数

在这里插入图片描述

top命令可以看到总体的系统运行状态和cpu的使用率;
%us:表示用户空间程序的cpu使用率(没有通过nice调度);
%sy:表示系统空间的cpu使用率,主要是内核程序;
%ni:表示用户空间且通过nice调度过的程序的cpu使用率;
%id:空闲cpu;
%wa:cpu运行时在等待io的时间;
%hi:cpu处理硬中断的数量;
%si:cpu处理软中断的数量;
%st:被虚拟机偷走的cpu;

在这里插入图片描述

PID:进程标示号
USER:进程所有者
PR:进程优先级
NI:进程优先级别数值
VIRT:进程占用的虚拟内存值
RES:进程占用的物理内存值
SHR :进程使用的共享内存值
S :进程的状态,其中S表示休眠,R表示正在运行,Z表示僵尸进程
%CPU :进程占用的CPU使用率
%MEM :进程占用的物理内存百分比
TIME+:进程启动后占用的总的CPU时间
Command:进程启动的启动命令名称

二、free

在这里插入图片描述

total:总计物理内存的大小
used:已使用多大
free:可用有多少
Shared:多个进程共享的内存总额
Buffers/cached:磁盘缓存的大小

三、vmstat

显示Linux虚拟内存统计信息:进程、内存、分页、IO和 cpu 活动的信息;
- 不需要特殊权限;

在这里插入图片描述

3.1 常用参数
-a:开关显示活动/非活动内存;
-f:开关显示自引导以来的分叉数。这包括 fork、vfork 和 clone 系统调用,相当于创建的任务总数。每个进程由一个或多个任务表示,具体取决于线程使用情况。此显示不重复。
-t:开关将时间戳添加到输出;
-m:开关显示slabinfo;
-n:开关使标头仅显示一次,而不是定期显示;
-s:开关显示各种事件计数器和内存统计信息的表格。此显示不重复;
-delay:是更新之间的延迟(以秒为单位)。如果未指定延迟,则仅打印一份报告,其中包含自启动以来的平均值;
-count:是更新的次数。如果未指定计数并定义了延迟,则计数默认为无穷大;
-d:报告磁盘统计信息;
-w:扩大大内存大小 的字段宽度;
-p:后跟一些分区名称以获取详细统计信息;
-S:后跟 k 或 K 或 m 或 M在1000、1024、1000000 或 1048576 字节之间切换输出;
-V:开关导致显示版本信息 。
3.2 获取信息

在这里插入图片描述

procs

r:在运行队列中等待的进程数;
b:在等待io的进程数;

memory

swpd:现时可用的交换内存(单位KB); 
free:空闲的内存(单位KB);
buff:缓冲去中的内存数(单位:KB);
cache:被用来做为高速缓存的内存数(单位:KB);

swap

si: 从磁盘交换到内存的交换页数量,单位:KB/秒;
so: 从内存交换到磁盘的交换页数量,单位:KB/秒;

io

bi: 发送到块设备的块数,单位:块/秒;
bo: 从块设备接收到的块数,单位:块/秒;

system

in: 每秒的中断数,包括时钟中断;
cs: 每秒的环境(上下文)转换次数;

cpu

cs:用户进程使用的时间 。以百分比表示;
sy:系统进程使用的时间。 以百分比表示;
id:中央处理器的空闲时间 。以百分比表示;

四、mpstat

是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不 但能查看所有
CPU的平均状况信息,而且能够查看特定CPU的信息;

【命令】:
mpstat [-P {|ALL}] [internal [count]]
- -P {|ALL} 表示监控哪个CPU, cpu在[0,cpu个数-1]中取值
- internal 相邻的两次采样的间隔时间
- count 采样的次数,count只能和delay一起使用
4.1 安装
yum install sysstat
4.2 获取信息

在这里插入图片描述

user:在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程,值为 (usr/total)*100;
nice:在internal时间段里,nice值为负进程的CPU时间(%),值为(nice/total)*100;
system:在internal时间段里,核心时间(%),值为(system/total)*100;
iowait:在internal时间段里,硬盘IO等待时间(%),值为(iowait/total)*100;
irq:在internal时间段里,硬中断时间(%),值为(irq/total)*100;
soft:在internal时间段里,软中断时间(%),值为(softirq/total)*100;
idle:在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%),值为(idle/total)*100;
intr/s:在internal时间段里,每秒CPU接收的中断的次数,值为(intr/total)*100
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐