Apache-2.2

mod_python 與 Apache 失敗

  • May 5, 2014

我遇到了 mod_python 和 Apache 的問題,我很確定我知道問題出在哪裡,但我想要一點保證。我目前有一種情況,我正在使用一個只有 256M RAM的*非常小的 VM。*現在 MySQL 和 Apache 執行得相當好,一切都很好而且花花公子,直到我開始使用交換,我顯然想盡可能避免。有了這麼小的記憶體,這幾乎是不可能的。我選擇每天幾次重新啟動 MySQL 和 Apache,但是,大約 4-5 天后,我收到設備上沒有剩餘磁碟空間:

[Mon May 11 06:00:14 2009] [notice] caught SIGTERM, shutting down
[Mon May 11 06:00:20 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon May 11 06:00:20 2009] [notice] Digest: generating secret for digest authentication ...
[Mon May 11 06:00:20 2009] [notice] Digest: done
[Mon May 11 06:00:21 2009] [notice] mod_python: Creating 4 session mutexes based on 256 max processes and 0 max threads.
[Mon May 11 06:00:21 2009] [error] (28)No space left on device: mod_python: Failed to create global mutex 1 of 4 (/tmp/mpmtx265021).

我最初的想法是缺少信號量,但似乎並非如此。至少我過去用來規避這一點的技巧到目前為止還沒有奏效。我在使用 mod_python 的人身上看到過類似的問題,但我沒有找到太多實際修復的方法。是我的重啟導致了這個,還是這只是 mod_python 有問題?謝謝!

在我的筆記型電腦上反復重新啟動 Apache 時,我遇到了類似的問題(對我來說,它需要大約 40 次重新啟動);我找到的唯一解決方案是完全重新啟動電腦。當然,我的筆記型電腦有 2GB 的 RAM 和比您的伺服器多得多的磁碟空間,所以您可能會更快地遇到這個問題……基本上,我會避免在不完全重新啟動伺服器的情況下多次重新啟動 Apache。

  1. 刪除不再使用的洩漏信號量
ipcs -s | perl -ane '/^0x00000000/ && `ipcrm -s $F[1]`'
  1. 增加可用信號量
echo “kernel.sem = 512 32000 100 512″ >> /etc/sysctl.conf; sysctl -p

引用自:https://serverfault.com/questions/7619