2014-09-30 37 views
4

我有這個錯誤在我的Apache服務器的error.log:無法分配內存:fork:無法分叉新進程:服務器apache,如何找到源代碼並修復它?

[error] (12)Cannot allocate memory: fork: Unable to fork new process 

我不知道從哪裏開始找問題!?

如何知道啓動了多少fork進程?

如何知道每個fork進程中運行的腳本?

如何知道每個fork進程的內存成本?

找到解決方案的其他想法?

定期發生此錯誤。我重新啓動服務器,問題得到解決,但不久後又回來了,所以我需要找到一個更好的解決方案。

+0

可能重複[無法分配內存:fork:無法fork新進程?](http://stackoverflow.com/questions/28715545/cannot-allocate-memory-fork-unable-to-fork-new-過程) – 2015-12-26 05:21:54

回答

0

對我來說,這是我的Apache日誌太大而不能enouth空間是免費的磁盤...

去想歸檔日誌!

-1

錯誤:「無法叉:無法分配內存」,而洛到VPS,

你通常得到這個錯誤時,你的VPS耗盡的資源尤其是RAM。

此刻你可以做的就是重新啓動VPS,讓內存使用率降到臨時登錄。

+2

我需要找到問題的根源,而不是每次解決它時。 – Matrix 2014-10-21 00:14:49

1

我有同樣的問題,解決它有2種選擇:

1-從微觀情況下移至小,這是解決問題的變化(亞馬遜微實例往往有較大的佔用CPU時間)

2-調整mysql數據庫服務器配置和我的apache配置,以使用更少的內存。

3有些認爲它是由交換文件空間不足造成的。沒有它,即使系統有足夠的可用內存,系統也必須拒絕分支操作。

針對低內存情況的調優指南,例如:http://www.narga.net/optimizing-apachephpmysql-low-memory-server/(但不要使用MyISAM表的建議 - 可怕的... )

這2個選項會使問題少得多發生..我仍然在尋找更好的解決方案來關閉已完成的進程並殺死那些掛在那裏的進程。

相關問題