解决高负载和高I/O问题

解决高负载问题

  • 当处理一个运行缓慢系统的时候,首先要观察的度量指标之一就是I/O等待时间,它可以用来排除磁盘I/O的问题。
  1. 如果I/O等待时间很低,那么可以看看CPU空闲时间百分比;
  2. 如果I/O等待时间很高,那么下一步就是确定是什么因素导致I/O等待时间所占的比重这么高;
  3. 如果I/O等待和CPU空闲时间百分比都很低,那么很可能会看到一个非常高的用户时间百分比,所以你必须确定是什么原因导致了这么高的用户时间百分比;
  4. 如果I/O等待时间所占百分比很低,而空闲时间百分比很高,那么你就知道系统运行缓慢不是CPU资源的原因,而应该从别的地方找原因。这可能意味这应该查看网络问题或者Web服务器的问题,或者查看Mysql查询缓慢的问题等。

解决高I/O等待时间问题

当你看到I/O等待时间所占CPU时间的比重很高的时候,首先需要检查的就是机器是否正在大量使用交换空间。因为硬盘操作的速度远远低于RAM,所以当系统内存耗尽,开始使用交换空间的时候,系统的性能会受到严重影响。任何想要访问硬盘的操作都要完成与硬盘的I/O交换。所以,故障排除的第一步是看内存是否耗尽,如果是,先解决这个问题。如果还有大量可用的RAM,你需要明确哪个进程占用了大部分I/O操作。

  • 使用iostat命令

[yangshuai@iZbp1fbha9mr8g8k7c5mk9Z ~]$ iostat
Linux 2.6.32-642.13.1.el6.x86_64 (iZbp1fbha9mr8g8k7c5mk9Z) 11/14/2018 x86_64 (8 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
22.47 0.00 4.39 0.38 0.00 72.76

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
vda 3.46 1.42 67.43 8039258 382790208
vdb 1.03 2.40 58.00 13636250 329293080

tps:
这个值列出了设备每秒的传输量。“传输”是向设备发送I/O请求的另一种表达方式。
Blk_read/s
表示每秒从设备读取的数据量
Blk_wrtn/s
表示每秒向设备写入的数据量
Blk_read
这一列表示从设备读取的数据总量
Blk_wrtn
这一列表示写入设备的数据总量

  • iotop

Total DISK READ: 55.90 K/s | Total DISK WRITE: 271.51 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND

536 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [jbd2/vda1-8]

第一行:READ和WRITE速率总计;

第二行:

tid:线程id,按p可转换进程pid

PRIO:优先级

DISK READ:磁盘读取速率

DISK WRITE:磁盘写取速率

SWAPIN:swap交换百分比

IO>:IO等待所占用百分比

COMMAND:线程/进程详细信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值