我們運行紅寶石請求時,有很多免費的堆插槽
- Sidekiq 4.2.9
- 軌4.2.8
- MRI 2.1.9
這是一個服務器更多的內存服務器定期從外部API中產生一定量的導入,對它們執行一些計算並將這些值保存到數據庫中。
大約3個星期前,服務器開始掛起,就像我從NewRelic看到的那樣(當ssh發現它時) - 它隨着時間消耗越來越多的內存,最終佔用所有可用內存,然後掛起服務器。爲什麼在~5:30 AM堆大小從〜2.3M跳到3M時,仍然有1M空閒堆插槽可用(GC設置爲默認)
所以,問題是:
- 如何讓Ruby填充空閒堆槽而不是從操作系統請求新插槽?
- 如何讓它釋放免費的堆槽到系統?
值得一讀:https://blog.heroku.com/incremental-gc – Anthony
你使用什麼服務器?美洲獅?獨角獸?瘦?生產中的webrick? –
@JoshBrody,我們的Puma服務器很好,我說的是sidekiq服務器 –