性能分析必会-linux操作系统计数器

linux man在线手册

可以查看命令使用方法

Linux man pages online (man7.org)

top:实时显示系统中各个进程的资源占用状况

top [选项]

交互式命令

基本视图内容解释

top命令:
第一行队列任务信息
第二行 进程任务信息可以看到运行、休眠、停止、僵死状态的进程个数
第三行:CPU状态信息

%Cpu(s):  0.5 us,  0.4 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st


us:用户进程占用CPU百分比 
sy:内核进程占用CPU百分比
ni:改变过优先级的进程占用
id:空闲进程占用
wa:CPU 在读写的时候,所产生的 IO 等待时间占 CPU 时间的百分比
hi:硬中断占用CPU百分比
si:软中断占用CPU百分比
st:虚拟机占用CPU百分比   

st : time stolen from this vm by the hypervisor(被偷走的CPU)

st cpu 是指虚拟机被宿主机上的其他应用或 虚拟机抢走的 CPU。

"st"代表的是"time stolen from this vm by the hypervisor",指的是虚拟机被hypervisor(虚拟机监视器)窃取的时间。在虚拟化环境中,如果一个虚拟机在一段时间内没有收到CPU时间片,那么它的时间就会被hypervisor窃取,用于其他正在运行的虚拟机。这种窃取行为是为了平衡系统资源,确保所有虚拟机都能得到合理的CPU分配。
第四行:内存信息

KiB Mem : 16431440 total,  3815204 free,  9833880 used,  2782356 buff/cache


buffers:缓冲的内存量
第五行:交换分区信息

KiB Swap:        0 total,        0 free,        0 used.  6249880 avail Mem


cached缓存的内存量
真正可用的内存:第四行free+第四行buffers+第五行cached
第七行:进程状态监控


PR:进程优先级
NI:nice值,负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存数量,单位kb
RES:进程使用的未被换出的物理内存大小,单位kb
SHR:共享内存大小单位kb
S 进程状态。D=不可中断的睡眠状态R=运行S=睡眠T=跟踪/停止Z=僵尸进程
%CPU:上次更新到现在的CPU时间占用百分比
%MEM:进程使用的物理内存百分比
TIME+:进程使用的CPU时间总计单位1/100秒
COMMAND:命令行

mpstat CPU信息统计

安装

在CentOS上安装mpstat的步骤如下:

  1. 使用操作系统的包管理器,例如使用yum命令进行安装:sudo yum install sysstat
  2. 安装完成后,可以在终端中使用mpstat命令。

mpstat是Multiprocessor Statistics的缩写,是一种实时系统监控工具。mpstat命令会输出CPU的一些统计信息

使用方法

mpstat命令的最大特点是:可以查看多核心CPU中每个计算核心的统计数据,而类似命令vmstat只能查看系统整体的CPU情况

1)在mpstat命令及后面的选项里,每个元素之间都至少要有一个空格。2)delay表示两次输出之间的时间间隔。3)count表示按照delay指定的时间间隔统计的次数。

mpstat命令的参数选项及说明

使用示例

mpstat 如果省略时间间隔和次数参数,则仅显示一次报告后就退出

mpstat 2 5 表示每2秒更新一次输出信息,统计5次后停止输出,这种会只输出all

 mpstat -P ALL 2 5 输出所有CPU信息,2s一次共5次

mpstat -P 0指定CPU 0指的是第一个CPU

 结果详细说明

CPU,all表示所有CPU,0表示第一个CPU……

·%usr:用户进程消耗的CPU时间百分比。

·%nice:改变过优先级的进程占用的CPU时间百分比。·

%sys:系统(内核)进程消耗的CPU时间百分比。·

%iowait:IO等待所占用的CPU时间百分比。

·%irq:硬中断占用的CPU时间百分比。

%soft:软中断占用的CPU时间百分比%steal:虚拟机强制CPU等待的时间百分比。

·%guest:虚拟机占用CPU时间的百分比。

·%idle:CPU处在空闲状态的时间百分比。

uptime:显示系统的运行时间及负载

uptime命令可以输出当前系统时间、系统开机到现在的运行时间、目前有多少用户在线和系统平均负载等信息。

[root@oldboy ~]# uptime 19:07:14 up 13 min, 1 user, load average: 0.00, 0.00, 0.00 系统时间 运行时长 登录用户数 平均负载 1min,5min,15min  

uptime命令从如下两个文件读取信息

从/var/run/uptmp中读取用户登录信息。 从/proc中读取进程信息。 

free:查看系统内存信息

free命令用于显示系统内存状态,具体包括系统物理内存、虚拟内存、共享内存和系统缓存等

free 选项

 

free -h比较好用。 

直接用free命令不加参数很难读懂,建议带参数

·buffers为写入数据缓冲区。·cache为读取数据的缓存区。

·Linux系统的特性是将不用的物理内存缓存起来,因此系统的真实剩余内存。并不是free值

可用内存为available的值。

实时查询内存

free -h -s 10

 vmstat:虚拟内存统计

vmstat是Virtual Memory Statistics(虚拟内存统计)的缩写,利用vmstat命令可以对操作系统的内存信息、进程状态和CPU活动等进行监视。但是只能对系统的整体情况进行统计,无法对某个进程进行深入分析

第1列:procs。·

r列表示运行和等待CPU时间片的进程数。

·b列表示正在等待资源的进程数。

第2列:memory。

·swpd列表示使用虚拟内存的大小。

·free列表示当前空闲的物理内存数量。

·buff列表示buffers的内存数量。

·cache列表示cache的内存数量。

第3列:swap。

·si(swap in)列表示由磁盘调入内存,也就是内存进入内存交换区的数量。

·so(swap out)列表示由内存调入磁盘,也就是内存交换区进入内存的数量。

第4列:I/O项显示磁盘读写状况。·

bi列表示从块设备读入数据的总量(即读磁盘)(块/s)。

·bo列表示写入块设备的数据总量(即写磁盘)(块/s)。

第5列:system显示采集间隔内发生的中断数。

·in列表示在某一时间间隔中观测到的每秒设备中断数。·

cs列表示每秒产生的上下文切换次数。

第6列:CPU项显示了CPU的使用状态。·

us列显示了用户进程消耗的CPU时间百分比。

·sy列显示了系统(内核)进程消耗的CPU时间百分比。

·id列显示了CPU处在空闲状态的时间百分比。

·wa列显示了I/O等待所占用的CPU时间百分比。

·st列显示了虚拟机占用的CPU 

参数选项

vmstat # 仅显示一次报告后退出
vmstat 5 # 每5秒钟更新一次输出,按ctrl+C停止输出
vmstat 5 6 #  5秒钟更新一次,6次后退出
vmstat -a 2 5 显示活跃和非活跃内存,
memory列增加了inact和active两列,其说明具体如下。·inact:非活跃的内存大小(当使用-a选项时显示)。·active:活跃的内存大小(当使用-a选项时显示)
vmstat -s 查看内存使用详细信息 分别来自于/proc/meminfo、/proc/stat和/proc/vmstat
vmstat -d 查看磁盘读写 信息主要来自于/proc/diskstats。其中的merged表示一次来自于合并的写/读请求,系统一般会把多个连接/邻近的读/写请求合并到一起来操作。】
vmstat -p /dev/sda1 般会把多个连接/邻近的读/写请求合并到一起来操作。
这些信息主要来自于/proc/diskstats。各列的说明具体如下。·reads:来自于该分区的读的次数。·read sectors:来自于该分区的读扇区的次数。·writes:来自于该分区的写的次数。·requested writes:来自于该分区的写请求次数。

iotop:动态显示磁盘I/O统计信息

iostat:I/O信息统计

iostat是I/O statistics(输入/输出统计)的缩写,其主要功能是对系统的磁盘I/O操作进行监视

命令参数选项及说明

示例

iostat 省略时间间隔和次数,则显示一次报告就结束

 第1~2行中各列的含义具体如下。·%user:用户进程消耗的CPU时间百分比。·%nice:改变过优先级的进程占用的CPU时间百分比。·%system:系统(内核)进程消耗的CPU时间百分比。·%iowait:IO等待所占用的CPU时间百分比。·%steal:虚拟机强制CPU等待的时间百分比。·%idle:CPU处在空闲状态的时间百分比。

第3~4行中各列的含义如下。·tps:表示该设备每秒的传输次数,“一次传输”的意思是“一次I/O请求”,多个逻辑请求可能会被合并为“一次I/O请求”,“一次传输”请求的大小是未知的。·KB_read/s:表示每秒读取的数据KB。·KB_wrtn/s:表示每秒写入的KB。·KB_read:表示读取的所有KB。·KB_wrtn:表示写入的所有KB。

 iostat 2 3 2秒刷新一次,显示3次

 

 iostat -x 查看扩展信息

·rrqm/s:每秒进行merge的读操作数目。·wrqm/s:每秒进行merge的写操作数目。·r/s:每秒完成的读I/O设备次数。·w/s:每秒完成的写I/O设备次数。·rkB/s:每秒读入的千字节数。·wkB/s:每秒写入的千字节数。·avgrq-sz:设备平均每次进行I/O操作的数据大小(扇区)。·avgqu-sz:平均I/O队列长度。·await:设备平均每次I/O操作的等待时间(毫秒)。·svctm:设备平均每次I/O操作的服务时间(毫秒)。·%util:每秒钟用于I/O操作的百分比

iostat -c 只查看CPU信息

 

lscpu 显示与CPU相关的信息

lscpu是一个命令行工具,用于显示与CPU相关的信息。它从sysfs和/proc/cpuinfo收集CPU体系结构信息,并以易于阅读的方式输出这些信息。

输出的信息可能包括CPU数量、线程、核数、socket和Nom-Uniform Memeor Access (NUMA)等。

这个命令在使用时,不需要任何特殊的权限。

内容来自《跟老男孩学Linux运维》 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值