博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux性能优化学习笔记-pidstat
阅读量:6441 次
发布时间:2019-06-23

本文共 1959 字,大约阅读时间需要 6 分钟。

如何快速查看系统负载

如何查看 cpu 个数

top 命令 再摁 1 键,会展示cpu列表使用情况

或者使用命令,查看 cpu 详情

cat /proc/cpuinfo |grep 'model name'复制代码

查看系统负载命令 uptime

uptime14:21:53 up 40 min,  2 users,  load average: 0.02, 0.01, 0.00复制代码

当前时间、服务器运行时间、登录用户数、1 分钟、5 分钟、15 分钟的平均负载

平均负载跟cpu有很大关系, 比如我们的系统为2个cpu,那么平均负载2 表示两个cpu全部占满。 我们的平均负载1分钟内为0.02,可以简单先理解为每个cpu占用了1%。

简单公式: 0.02 * 100 / cpu数, 当超过70%以上时,可以认为有些负载过高。

安装模拟压测 stress 工具

stress 是一个 Linux系统压力测试工具,用作异常进程模拟平均负载升高的场景。

-? 显示帮助信息-v 显示版本号-q 不显示运行信息-n,--dry-run 显示已经完成的指令执行情况-t --timeout N 指定运行N秒后停止   --backoff N 等待N微妙后开始运行-c --cpu 产生n个进程 每个进程都反复不停的计算随机数的平方根-i --io  产生n个进程 每个进程反复调用sync(),sync()用于将内存上的内容写到硬盘上-m --vm n 产生n个进程,每个进程不断调用内存分配malloc和内存释放free函数   --vm-bytes B 指定malloc时内存的字节数 (默认256MB)   --vm-hang N 指示每个消耗内存的进程在分配到内存后转入休眠状态,与正常的无限分配和释放内存的处理相反,这有利于模拟只有少量内存的机器-d --hadd n 产生n个执行write和unlink函数的进程   --hadd-bytes B 指定写的字节数,默认是1GB   --hadd-noclean 不要将写入随机ASCII数据的文件Unlink   时间单位可以为秒s,分m,小时h,天d,年y,文件大小单位可以为K,M,G复制代码

产生两个进程运算600s

stress --cpu 2 --timeout 600复制代码

使用pidstat分析到底哪里出了问题

pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

使用pidstat

wget http://pagesperso-orange.fr/sebastien.godard/sysstat-12.1.3.tar.gz./configuremake && make install复制代码
cpu使用情况统计(-u)

使用-u选项,pidstat将显示各活动进程的cpu使用统计,执行”pidstat -u”与单独执行”pidstat”的效果一样。

间隔 5 秒后输出一组数据pidstat -u 5 1复制代码

可以明显看出时stress命令导致的 cpu 负载过高。

内存使用情况统计(-r)

使用-r选项,pidstat将显示各活动进程的内存使用统计:

使用-d选项,我们可以查看进程IO的统计信息:

使用pidstat进行问题定位时,以下命令常被用到:pidstat -u 1pidstat -r 1pidstat -d 1以上命令以1秒为信息采集周期,分别获取cpu、内存和磁盘IO的统计信息。复制代码

使用pidstat查看某个进程的情况

查看nginx master进程的2s采样输出3次的内存使用情况

#nginx pid=32pidstat -r 2 -p 32 3复制代码

minflt/s: 每秒次缺页错误次数(minor page faults),次缺页错误次数意即虚拟内存地址映射成物理内存地址产生的page fault次数majflt/s: 每秒主缺页错误次数(major page faults),当虚拟内存地址映射成物理内存地址时,相应的page在swap中,这样的page fault为major page fault,一般在内存使用紧张时产生VSZ:      该进程使用的虚拟内存(以kB为单位)RSS:      该进程使用的物理内存(以kB为单位)%MEM:     该进程使用内存的百分比Command:  拉起进程对应的命令复制代码

更多精彩内容关注:

转载地址:http://qycwo.baihongyu.com/

你可能感兴趣的文章
Objective-C 中nil/Nil/NULL/NSNull
查看>>
细聊分布式ID生成方法
查看>>
第四周作业
查看>>
Linux上的文件查找工具之locate与find
查看>>
LeetCode-Move Zeroes
查看>>
结对第2次作业——WordCount进阶需求
查看>>
Python面向对象之面向对象基本概念
查看>>
PDB文件:每个开发人员都必须知道的
查看>>
脸上有酒窝,脖子后有痣,胸前有颗痣,此三种人不能错过
查看>>
用VC++开发Oracle数据库应用程序详解2
查看>>
bzoj1305
查看>>
SpringAOP面向切面编程
查看>>
[USACO12JAN]Video Game Combos
查看>>
Multiset的使用 TOJ 2196.Nuanran's Idol II 与 UVA11136 Hoax or what
查看>>
Linux安装相关
查看>>
WIN7 下 在cmd 命令中 进入某个目录 的方法
查看>>
查看被锁的表和解锁
查看>>
canvas自适应圆形时钟绘制
查看>>
币值转换编程总结
查看>>
javascript中关于value的一个小知识点(value既是属性也是变量)
查看>>