2014-01-24 59 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對工作進程的幫助)工人正在嘗試寫日誌在磁盤上。磁盤負載過重,進程被阻止。