2014-01-24 45 views
1

几天前我注意到一件奇怪的事情 - 时不时服务器停止处理请求一段时间。在top输出它看起来像这样:麒麟工人不时冻结

  • 十麒麟工人处理请求;
  • 然后,由于某种原因,他们停止了任何事情。我的意思是,所有十名工人都有“睡觉”状态;
  • 他们睡了十五秒钟;
  • 然后突然所有工人同时开始处理请求(他们中的很多人排队等待10秒);

我有以下设置: nginx的,麒麟4.6.2,Postgres的,Redis的会话以及高速缓存,MRI红宝石2.0.0p353。

我的第一个想法是责备redid(因为如果redis不给会话,所有进程都会等待它),但似乎并非如此,因为当独角兽工作者冻结时,redis会服务于其他进程后台工作。

我不明白这种奇怪行为的原因是什么。

如果有人对此事有一些想法,我会很乐意检查它。如果你需要更多的信息 - 告诉我该怎么做,我会尽力提供。

UPDATE:

+0

你可以粘贴你的独角兽配置的要点或类似? – Intrepidd

+0

@完美! –

+0

你有很大的负荷?这可能是redis max客户端容量。 – Intrepidd

回答

1

原来(与strace对工作进程的帮助)工人正在尝试写日志在磁盘上。磁盘负载过重,进程被阻止。