在排查性能过程中如遇到cpu的wa高时该如何做(一)
在排查性能过程中如遇到cpu的wa高时该如何做(一)
1、引言
谈到性能基本上离不开cpu。但对于性能只处于了解压测没有真正调优过的其实也不会关注太多。所以如何做下一步,基本上知道的更少。高手就另说了,如果你已经知道排查问题,到了调优阶段,恭喜你不用看本篇了,你已经是高手了。
所以我也以我的理解与经验来进行一步步操作说明。其实也是很简单的,就是多操作实践就好了。
2、常用的命令或工具
top命令虽然网上有很多说明,但为了更好的记忆,与快速的理解下文中提到相关的操作含义,我在此重复说明一下。
top
“top - 20:02:16 up 15 days, 10:00, 3 users, load average: 0.93, 0.96, 0.98”
top 系统时间 , up 运行时间 , users当前登录用户数,load averaget 负载均衡分别是~~1分钟、5分钟、15分钟~~ 的负载情况。
load averager数据是每隔5秒检查一次活跃的进程数,然后按特定算法计算出的数据。如果这个数除以逻辑CPU个数,结果高于5的时候就表明系统在超负荷运转。
Tasks: 219 total, 1 running, 218 sleeping, 0 stopped, 0 zombie
Tasks:总进程数, running 正在运行进程数,sleeping 休眠进程数,stopped 停止进行数,zombie 僵尸进程数
%Cpu(s): 6.7 us, 6.0 sy, 0.0 ni, 87.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
cpu状态:
us【user space】 用户空间占用cpu的百分比,
**sy【sysctl】**内核空间占用cpu的百分比;
**ni【】**改变过优先级的进程占用CPU的百分比
**id【idolt】**空闲CPU百分比
**wa【wait】**IO等待占用CPU的百分比
**hi【Hardware IRQ】**硬中断中用CPU的百分比
**si【Software Interrupts】**软中断占用CPU的百分比
KiB Mem : 32780104 total, 5848456 free, 13789140 used, 13142508 buff/cashe
内存状态:total总内存,free空闲内存,used已用内存,buff/cache缓存
如果系统上缓存buff/cache占用量非常大,并且有些在运行中的程序是可用可不用的,这个时候就可以使用以下命令释放缓存区,好让之后启动的程序能正常更快的运行,但如果数据是比较重要的,则必须在删除前先执行“sync;sync;sync”
同步数据到硬盘上,否则数据将丢失。
echo 1 > /proc/sys/vm/drop_caches#表示清除pagecache。
echo 2 > /proc/sys/vm/drop_caches#表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。
echo 3 > /proc/sys/vm/drop_caches#表示清除pagecache和slab分配器中的缓存对象。
KiB Swap: 4063228 total, 4063228 free, 0 used. 18520728 avail Mem
Swap交换分区信息:总交换信息,空闲交换区,已用交换区,可用的交换区
正常情况下used占用为0,如果在不停的变化,说明内核在不断进行内存和swap的数据交换,这时在告警真正的内存不够用了。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
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:**进程名称(命令名/命令行)
实例:
如果想要获取某个进程下所有的线程,可以使用命令:
top -Hp PID
可以使用帮助命令“top -h”
来查看其他详细信息
3、简单的排查过程见下图
iostat -x 1 10
iotop
pidstat -d 1
现在是不是知道了,是不是很简单!
4、注意事项:
4.1、如果在使用iostat时提示“-bash: iostat: command not found“
说明系统没有安装,在安装时使用命令”yum -y install sysstat
"而不是”yum install iostat“
在排查性能过程中如遇到cpu的wa高时该如何做(一)相关推荐
- mysql 有等待事件,排查性能详情中活动会话正在 SYNCH 等待事件状态下等待的问题...
为什么我的 MySQL 数据库实例在性能详情中显示大量活动会话正在 SYNCH 等待事件状态下等待? 上次更新时间:2020 年 12 月 14 日 我有 RDS MySQL.RDS MariaDB ...
- 测试投影仪性能的软件,4种CPU配置家用高清微型投影仪速度测试体验
大家使用电脑和手机会感受到,运行速度对体验感和实用性影响非常大.现在的高清智能微型投影仪都带有与手机或电脑类似的CPU,可以独立上网,独立处理办公文件等,其CPU的运行速度对于微型投影仪性能的影响也是 ...
- Linux中JAVA服务器CPU占用过高(分析解决方法)
当发现生产环境CPU使用非常高,并且居高不下,导致服务器报警,需要快速定位,分析是什么地方占用CPU过高,推荐步骤如下: 1. 首先服务器查看占用cpu高的进程是哪一个,查出进程号 top 2.查询该 ...
- KindEditor使用过程中,用JQ提交表单时,获取不到编辑器的内容
首先要说明的是,在使用提交按钮直接提交时,编辑器的内容是可以正常获取的,而使用 jq或js ,如$("#form").submit(),提交时,则编辑器的内容是无法获取的,这里在 ...
- 解决 Oracle10g安装过程中无法确定主机的IP地址时产生该异常错误
今天在虚拟机中安装Oracle遇到了小小的问题,跳出对话框"无法确定主机的IP地址时产生该异常错误",查了一下资料还是解决了,这里吧解决办法和大家分享一下! 首先我们需要知道自己的 ...
- 在计算机启动过程中按F8,Win8如何在启动时按F8出现修复计算机选项
Win8在启动时按F8出现修复计算机选项的方法如下: 在Win7以及更早的Windows系统中,开机按shift+F8可以进入"高级启动选项",Windows 7在默认安装情况下& ...
- Linux中Python程序CPU占用高排查
Linux中Python程序CPU占用高排查,Linux中Python程序CPU占用高排查,Linux中Python程序CPU占用高排查 kafka-python==2.0.2和 gevent 新版本 ...
- springboot redis 断线重连_Redis的主从复制是如何做的?复制过程中也会产生各种问题?...
如果Redis的读写请求量很大,那么单个实例很有可能承担不了这么大的请求量,如何提高Redis的性能呢?你也许已经想到了,可以部署多个副本节点,业务采用读写分离的方式,把读请求分担到多个副本节点上,提 ...
- CPU突然飙高系统反应慢,是怎么导致的?有什么办法排查?
[Java面试]场景面试题CPU突然飙高,系统反应慢怎么排查 面试过程中,场景类的问题更容易检测出一个开发人员的基本能力.这不,有一位小伙伴去阿里面试,第一面就遇到了关于"CPU 飙高系统反 ...
- 打开网页到我们看到页面显示的过程中发生了什么?
1.DNS解析 2.TCP连接 3.发送HTTP Request 4.服务器处理 Request and Return Request 报文 5.浏览器解析并渲染页面 6.连接结束 1:dns(D ...
最新文章
- golang函数——可以为类型(包括内置数据类型)定义函数,类似类方法,同时支持多返回值...
- Markdown 如何实现空行、空格?
- php汉字转换拼音,PHP汉字转换拼音的函数代码
- 微信多开txt_电脑版微信怎么双开、多开
- c语言fopen函数读dat文件,C语言 从a.dat文件读入数据存入b.dat文件里面(以字符形式)...
- 【个人想法】个人关于数据库字段类型选择的想法
- Catalan Number(卡特兰数/卡塔兰数)
- 方差为什么用平方不用绝对值,为什么要对差值求平方而不是取标准偏差的绝对值?...
- 利用python进行假设检验
- springboot接口慢_Springboot tomcat 启动慢 响应时间超长 问题解决
- 台式计算机亮度设置,台式电脑显示器屏幕亮度怎么调节
- 游戏编程入门学习笔记17——网络篇——显示本机IP
- 声明式导航与编程式导航
- 苏州计算机岗前培训,我院召开2018年新职工岗前培训动员大会
- 前端--HTML,常用标签学习
- cad 打开硬件加速卡_加速,连续变向,你以为是在说体育运动吗?其实我是在说CAD技巧...
- 记一次Linux服务器 误删数据的恢复操作
- 计算机提示无法识别usb,小编教你电脑出现无法识别usb设备怎么办
- linux - 异常:安装包冲突 conflicts with
- Python实现12306自动抢票小程序