快捷搜索:

硬盘基础知识之IO状态和进程

 

硬盘的磁盘IO利用率比较高,可以执行:

iostat -dmx 1 3(每1秒统计一次,一共统计三次)

主要看await、svctm和%util三个参数。

svctm: 表示平均每次设备IO操作的服务时间(以毫秒为单位),如果await时间和svctm时间比较接近,说明几乎没有IO等待,磁盘性能很好。如果await的值远远地高于svctm的值,证明IO队列等待太长,系统上的应用程序将变慢。

await:每一个IO请求处理的平均时间。单位是毫秒。可以理解为IO的响应时间,一般系统的IO响应时间应该低于5ms(毫秒),如果大于10ms(毫秒)就比较大了。这个时间包括了队列时间和服务时间。也就是一般情况下,await大于svctm,它们之间的差值越小,说明队列时间越短;如果差值很大,说明队列时间越长,说明系统出现问题。

%util: 在统计时间内所有处理IO的时间,除以总共统计的时间。这个参数表示了设备的繁忙程度。一般地,如果这个参数是100%表示设备已经接近满负荷运行了。当然如果是多块磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用就未必到了读写瓶颈。

可以使用iotop -oP 命令查看线程的PID,去找到占用磁盘IO比较高的线程或者进程。

通过ps -ef | grep PID去找到对应的程序。

如果服务器上运行的docker容器,可以遍历容器,找到占用磁盘IO,导致磁盘IO高的容器名称。

for i in `docker ps -a |grep Up| awk '{print $1}' `; do (docker top $i |grep <PID>) && echo -e "\nDocker=$i";done

这样就可以查出来占用磁盘IO高的容器pod,然后删除一下容器。执行:

kubectl delete pod $pod_name -n $namespace_name --force -grace-period=0

鼓励的话语:待人接物要实在厚道!

[注:本文部分图片来自互联网!未经授权,不得转载!每天跟着我们读更多的书]


互推传媒文章转载自第三方或本站原创生产,如需转载,请联系版权方授权,如有内容如侵犯了你的权益,请联系我们进行删除!

如若转载,请注明出处:http://www.hfwlcm.com/info/80615.html