% iowait比特定时间提高99.9%,这使得服务器性能缓慢,请让我知道解决方案来修复?
08:30:01 IST CPU %user %nice %system %iowait %steal %idle
08:45:01 IST all 0.01 0.00 0.02 99.96 0.00 0.00
09:00:01 IST all 0.02 0.00 0.03 99.95 0.00 0.00
09:15:01
我想知道iowait时间是否在psutil.cpu_percent()中计算,所以编写如下代码来测试
#cat test.py
import os
import psutil
import time
p = psutil.Process(os.getpid())
start = time.time()
times_before_workload = p.cpu_times()
# this function return cpu_percent between two call. so we have to call it once before workload
percent_be
如果只有一个cpu,而IOwait是99%,那么cpu还可以执行其他进程吗?如果可以,是否只能使用1%的cpu资源?或者其他进程也可以使用100%的cpu资源,尽管在99% Iowait的情况下。
我在一本书中读到了下面这句话“
iowait is time spent receiving and handling hardware interrupts as a
percentage of processor ticks.
如果是这样的话,99%的中断并不意味着cpu空闲或等待,实际上它非常忙于接收和处理中断。如果这是真的,我猜其他进程只有1%的cpu资源可以使用。
我们有一个组合的应用程序/MySQL服务器,它已经开始崩溃。现在,它只能复制1.25亿行MySQL MyISAM表(INSERT INTO a_copy SELECT * FROM a和KEYS DISABLED on a_copy)。我们对克隆的生产VM中的生产数据进行了基准测试,这个查询是其中的一部分,不到一个小时。但是,在生产中运行此作业时,复制查询已经运行了超过12个小时而没有完成,随机地使每个MySQL查询比糖蜜慢(60+秒,没有任何锁)。
来自iostat的输出
yyyy@xxxx:~$ iostat -mxdc 10
Linux 2.6.32-5-686 (xxxx)