前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux 常用的性能分析命令vmstat|iostat|iotop|mpstat

linux 常用的性能分析命令vmstat|iostat|iotop|mpstat

作者头像
瑾诺学长
发布2021-02-25 16:25:56
1.4K0
发布2021-02-25 16:25:56
举报
文章被收录于专栏:专注研发专注研发

1.vmstat--虚拟内存统计 vmstat(VirtualMeomoryStatistics,虚拟内存统计) 是Linux中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU等的整体情况进行监视。

代码语言:javascript
复制
mts@MTS-APP-AW:/mts$vmstat 7 每7秒获取一次
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 5985964 57928 3896 379128 8 7 70 14 0 0 1 2 96 2 0 
1 0 5985576 57536 3928 379620 70 0 100 7 15559 31082 1 1 96 1 0
1 0 5985440 54484 3976 382484 21 0 435 19 15674 31355 1 2 96 1 0

第一行显示了系统自启动以来的平均值,第二行开始显示现在正在发生的情况,接下来的行会显示每5秒间隔发生了什么,每一列的含义在头部,如下所示: ▪ procs:r这一列显示了多少进程在等待cpu,b列显示多少进程正在不可中断的休眠(等待IO)。 ▪ memory:swapd列显示了多少块被换出了磁盘(页面交换),剩下的列显示了多少块是空闲的(未被使用),多少块正在被用作缓冲区,以及多少正在被用作操作系统的缓存。 ▪ swap:显示交换活动:每秒有多少块正在被换入(从磁盘)和换出(到磁盘)。 ▪ io:显示了多少块从块设备读取(bi)和写出(bo),通常反映了硬盘I/O。 ▪ system:显示每秒中断(in)和上下文切换(cs)的数量。 ▪ cpu:显示所有的cpu时间花费在各类操作的百分比,包括执行用户代码(非内核),执行系统代码(内核),空闲以及等待IO。 内存不足的表现:free memory急剧减少,回收buffer和cacher也无济于事,大量使用交换分区(swpd),页面交换(swap)频繁,读写磁盘数量(io)增多,缺页中断(in)增多,上下文切换(cs)次数增多,等待IO的进程数(b)增多,大量CPU时间用于等待IO(wa) R: 运行和等待CPU时间片的进程数。长期大于CPU的个数,代表CPU不足 B: 等待资源的进程数,如果等待数量多,问题有可能处在I/O或者内存 Swpd: 切换到内存交换区的内存大小[以KB为单位] free: 当前空闲的物理内存数量[以KB为单位] si: 由磁盘调入内存 so: 由内存调入磁盘 bi: 从块设备读入数据的总量 bo: 写到块设备的数据总量 bi+bo 1000 如果超过1000,代表硬盘的读写速度有问题 in: 在某一时间间隔内观测到的每秒设备中断数[中断数太多对性能不好] cs: 列表示每秒产生的上下文切换次数 us+sy > 80% 代表CPU资源不足 us: 用户进程消耗的CPU时间百分比 sy: 内核进程消耗的CPU时间百分比 id: CPU处在空闲状态的时间百分比 wa: IO等待所占用的时间百分比 runq-sz: 内存中可以运行的进程数 plist-sz: 系统中活跃的任务个数

2.iostat--用于报告中央处理器统计信息 iostat用于报告中央处理器(CPU)统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的输入/输出统计信息,默认显示了与vmstat相同的cpu使用信息,使用以下命令显示扩展的设备统计:

代码语言:javascript
复制
mts@MTS-APP-AW:/mts$iostat -dx 5
Linux 4.4.156-94.64-default (MTS-APP-AW) 01/14/2021 _x86_64_ (4 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 2.36 6.35 15.39 5.94 275.36 53.58 30.85 0.13 5.96 8.15 0.28 1.94 4.14
dm-0 0.00 0.00 1.40 0.18 29.26 1.35 38.54 0.02 12.86 10.61 29.94 2.66 0.42
dm-1 0.00 0.00 2.24 0.02 72.52 0.07 64.40 0.04 16.92 15.76 176.80 3.19 0.72
dm-2 0.00 0.00 7.89 6.82 31.56 27.30 8.00 0.06 4.03 7.90 18.88 2.15 3.16
dm-3 0.00 0.00 1.74 2.07 18.07 8.32 13.84 0.09 22.41 9.19 33.52 0.73 0.28
dm-4 0.00 0.00 0.00 0.00 0.00 0.00 11.89 0.00 22.60 12.89 313.50 11.49 0.00
dm-5 0.00 0.00 1.01 0.14 44.62 0.58 78.60 0.03 21.97 12.07 94.11 2.16 0.25
dm-6 0.00 0.00 0.00 0.00 0.00 0.00 8.39 0.00 27.35 24.02 656.21 4.74 0.00
dm-7 0.00 0.00 0.13 0.78 0.64 4.03 10.19 0.06 63.17 14.82 71.35 7.94 0.73
dm-8 0.00 0.00 1.42 0.93 17.19 3.75 17.89 0.03 13.00 4.25 26.38 3.05 0.71
dm-9 0.00 0.00 0.08 0.01 2.30 0.03 52.51 0.00 25.59 25.54 26.26 4.14 0.04
dm-11 0.00 0.00 0.98 0.04 32.78 0.23 64.21 0.03 24.97 11.05 339.48 1.84 0.19
dm-12 0.00 0.00 0.29 0.03 13.51 0.11 86.93 0.00 8.44 6.34 30.34 2.03 0.06
dm-10 0.00 0.00 0.59 1.28 12.84 7.82 22.06 0.06 33.33 10.95 43.70 4.37 0.82

第一行显示的是自系统启动以来的平均值,然后显示增量的平均值,每个设备一行。 常见linux的磁盘IO指标的缩写习惯:rq是request,r是read,w是write,qu是queue,sz是size,a是verage,tm是time,svc是service。 ▪rrqm/s和wrqm/s:每秒合并的读和写请求,“合并的”意味着操作系统从队列中拿出多个逻辑请求合并为一个请求到实际磁盘。 ▪r/s和w/s:每秒发送到设备的读和写请求数。 ▪rsec/s和wsec/s:每秒读和写的扇区数。 ▪avgrq –sz:请求的扇区数。 ▪avgqu –sz:在设备队列中等待的请求数。 ▪await:每个IO请求花费的时间。 ▪svctm:实际请求(服务)时间。 ▪%util:至少有一个活跃请求所占时间的百分比。

3.iotop--LINUX进程实时监控工具 iotop命令是专门显示硬盘IO的命令,界面风格类似top命令,可以显示IO负载具体是由哪个进程产生的。是一个用来监视磁盘I/O使用状况的top类工具,具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。 可以以非交互的方式使用:iotop –bod interval,查看每个进程的I/O,可以使用pidstat,pidstat –d instat。

pidstat--监控系统资源情况 pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。 使用方法:pidstat –d interval;pidstat还可以用以统计CPU使用信息:pidstat –u interval;统计内存信息:Pidstat –r interval。

4.mpstat mpstat 是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。 在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。常见用法:mpstat –P ALL interval times。

hdparm查看硬度读取速度: 命令:hdparm -t /dev/sda1

5.sar检测CPU资源: 任务计划 /etc/cron.d/sysstat 日志目录 /var/log/sa 查看方法 Sar –q –f /var/log/sa/sa10

6.lscpu显示CPU信息: dmesg 显示出开机启动的信息 lscpu 显示CPU信息 lscpu -p 显示CPU对应的节点数 getconf LONG_BIT 获知主机的位数 getconf -a 查看全部的参数 /sys/class/dmi/id 可以查看Bios的信息 bios_* 7.strace显示程序的调用: strace –fc elinks –dump http://localhost

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
物联网
腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档