对于这个模糊的问题很抱歉,但我刚刚编写了一些以CLI身份执行的PHP代码,我很确定它是行为不端的。当我在命令行上运行“top”时,它显示给予任何单个进程的资源非常少,但是在40-98%到iowait时间(%wa)之间。我通常在%us和%sy之间分配大约.7%,其余资源用于空闲进程(通常在20-50%之间)。
这个服务器正在执行MySQL查询,很容易,300倍于其他服务器运行相同查询所花费的时间,它甚至需要通过SSH登录才能看到永远......所以尽管有一些空闲的cpu时间遗留下来,似乎很清楚发生了一件非常糟糕的事情。无论正在运行的脚本是什么,都在更新我的MySQL数据库,但它们开始时似乎比指数级慢。
我需要一些想法作为我的启动点来诊断正在发生的事情。
我想知道的一些事情是:
我意识到这可能是一个很大的问题,但我更愿意遵循所提供的任何链接并阅读此内容......我只需要知道从哪里开始寻找。
答案 0 :(得分:4)
高iowait意味着您的磁盘带宽已饱和。这可能只是因为你的MySQL服务器充斥着过多的查询,而且它正在试图加载数据来执行它们。“/ p>
或者,您可能在物理内存上运行不足,从而导致大量磁盘IO进行交换。
要开始诊断,请运行vmstat 60
5分钟并检查输出 - si
和so
列显示交换和换出,以及bi
和bo
行显示其他IO。 (编辑您的问题并粘贴输出以获得更多帮助)。
答案 1 :(得分:0)
高iowait可能意味着你有一个缓慢/有缺陷的磁盘。尝试使用S.M.A.R.T进行检查。磁盘监视器。
http://www.linuxjournal.com/magazine/monitoring-hard-disks-smart