目录
IO密集导致系统负载高
使用top命令-观察服务器资源状态
使用vmstat命令-观察服务器资源状态
使用pidstat命令-观察服务器资源状态
使用iostat命令-观察服务器资源状态
IO密集导致系统负载高
stress-ng -i 10 --hdd 1 --timeout 100
-i :有多少个工作者进行,系统调用
--hdd:有多少个工作者进行,磁盘的写操作
使用top命令-观察服务器资源状态
top:系统负载升高,有此可见sy有数据变化,相对于us来说,sy的数比较大,同时一开始的时候wa高达70%,并且sy和wa在相对地在变化,wa高可能就是在等待资源可能就是磁盘的问题
使用vmstat命令-观察服务器资源状态
vmstat:swpd虚拟内存(交换分区)有数据,free空闲内存变小,buff缓冲区域有数据,cache缓冲缓冲使用增大,si,so有数据变化,bi,bo数据读写有明显的数据量,in,cs有明显变化,cs要比in大很多
(swpd磁盘虚拟出来的,转移内存的数据到交换分区,用于扩展,磁盘速度跟不上内存速度,所有si,so有对应数据变化才对)
使用pidstat命令-观察服务器资源状态
pidstat :cswch自愿上下文切换的数据明显比,非自愿上下文切换的数要大得多
使用iostat命令-观察服务器资源状态
iostat:await有数据,有磁盘等待,r/s,w/s,rkB/s,wkB/s,avgrq-sz avgqu-sz,r_await ,w_await都有数据。
针对以上情况,可以说明:
通过top命令,观察整体情况:有大量磁盘操作是,会导致系统负载升高;磁盘操作频时,sy和wa数据值比较明显
通过vmstat命令,具体分析: 没存数据变化明显,bi,bo数据读写有明显的数据量,in中断,cs上下文切换均有明显变化,其中cs要比in的数据要大
通过pidstat命令,针对分析:cswch自愿上下文切换的数据明显比,非自愿上下文切换的数要大得多
通过iostat命令,针对分析发现:await有数据,有磁盘等待,磁盘写入频繁,因r_await ,w_await都有数据,其中w_await要比r_await的数据要大
综合上述数据得出:系统负载偏高,是由于磁盘读写频繁,其次是内存不足导致使用swpd,导致系统负载升高
所以解决办法如下:
- 使用RAID,磁盘矩阵
- 应用服务:(减少日志)
- 数据库服务器:(读、写数据)优化SQL,多数为读取数据时发生负载偏高
- 增加内存