IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 在排查性能过程中如遇到cpu的wa高时该如何做(一) -> 正文阅读

[系统运维]在排查性能过程中如遇到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、简单的排查过程见下图

Created with Rapha?l 2.3.0 开始 通过“iostat -x 1 10”命令查看相关磁盘使用信息 通过“iotop”命令查看比较详细的信息 通过“pidstat -d 1”展示I/O统计,每秒更新一次 结束
iostat -x 1 10

在这里插入图片描述

iotop

在这里插入图片描述

pidstat -d 1

在这里插入图片描述
现在是不是知道了,是不是很简单!

4、注意事项:

4.1、如果在使用iostat时提示“-bash: iostat: command not found“

在这里插入图片描述

说明系统没有安装,在安装时使用命令”yum -y install sysstat"而不是”yum install iostat“

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:31:17  更:2021-08-26 12:32:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:42:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码