加载和磁盘块突然出现峰值等待

你好高级服务器大师!

我正在运行一个Ubuntu服务器,它与MySQL数据库一起托pipe一个Apache Tomcat服务。 即使在一周中最繁忙的时间,服务器负载也始终接近于零。 尽pipe我每周都有1-2次随机挂断,整个服务器停止响应。

这个locking的一个有趣的效果是,所有的cronjob似乎比预定时间晚执行,至less这是各种系统日志中的时间戳指示的。 因此,在我看来,整个服务器确实是冻结的,不仅是作为tomcat服务的一部分运行的定制软件。 挂机通常会持续3-5分钟,之后一切都会恢复正常。

Hardware: Model: Dell PowerEdge R720, 16 cores, 16 GB ram HDD-configuration: Raid-1 (mirror) Main services: apache tomcat, mysql, ssh/sftp #uname -a Linux es2 2.6.24-24-server #1 SMP Tue Jul 7 19:39:36 UTC 2009 x86_64 GNU/Linux 

运行sysstat我可以看到平均负载和磁盘块等待时间的巨大峰值,恰好相当于客户报告后端系统出现问题的时间。 下面是一个磁盘使用情况从一个非常明显的峰值下午12时30分左右。

我诚挚的道歉,把这个在外部服务器,但我的代表是低到包括在这里直接的文件。 也不得不把它们放在一起,因为我只能发布一个链接:S

萨尔图: http : //213.115.101.5/abba/tmpdata/sardata_es.jpg

图表1:阻止等待,注意utils在12.58时如何上升到100%

图2:块传输,这里没什么不寻常的。

图3:平均负载,峰值与图1一起

图4:CPU使用率仍然接近0%。

图5:内存,这里没什么不寻常的

有没有人有任何线索可以在系统上造成这种影响? 正如我之前解释的,服务器上运行的唯一软件是一个带有SOAP接口的tomcat服务器,允许用户连接到数据库。 远程应用程序也通过SSH连接到服务器以将file upload并上传到服务器。 在繁忙的时候,我猜测我们有大约50个并发的SSH / SFTP连接,并且通过http(soap / tomcat)不超过1-200个连接。

在Google上search我发现了关于文件句柄和inode句柄的讨论,但是我认为这对于2.6.x kernals是正常的。 任何人不同意?

 cat /proc/sys/fs/file-nr 1152 0 1588671 cat /proc/sys/fs/inode-state 11392 236 0 0 0 0 0 

同时“sar -v”显示了上面挂断时间的这些值,但是这里的inode-nr总是非常高。

 12:40:01 dentunusd file-nr inode-nr pty-nr 12:40:01 40542 1024 15316 0 12:45:01 40568 1152 15349 0 12:50:01 40587 768 15365 0 12:55:01 40631 1024 15422 0 13:01:02 40648 896 15482 0 13:05:01 40595 768 15430 0 13:10:01 40637 1024 15465 0 

我已经看到这两个独立的服务器上运行相同的硬件,操作系统,软件,RAIDconfiguration等设置。因此,我想相信,更多的软件/configuration依赖于硬件依赖。

非常感谢您的时间
/ Ebbe

可能是你正在运行一些重要的查询,正在做一个全表扫描。 你有没有检查你的慢查询日志。

如果这种情况下只是添加适当的索引。

PS:对不起如果你已经做到了这一点。

这个问题与Ubuntu 8.04 LTS(Hardy)和Dell PERC 6 / i RAID控制器之间的兼容性问题有关,就像这个bug报告的那样: https : //bugs.launchpad.net/ubuntu/+source/linux/+bug / 607167升级到Ubuntu 10.04 LTS Lucid(内核2.6.32)解决了这个问题。

以防其他人遇到同样的问题。