mod_python: Failed to create global mutexへの対応

標準

mod_python絡みでもう1個。mod_pythonを組み込んでApacheを再起動するとerror_logに次のようなエラーメッセージが出る場合があります。

[error] (28)No space left on device: mod_python: Failed to create global mutex 5 of 8 (/tmp/mpmtx44815).
[error] mod_python: We can probably continue, but with diminished ability to process session locks.
[error] mod_python: Hint: On Linux, the problem may be the number of available semaphores, check 'sysctl kernel.sem'
[notice] Apache/2.2.4 (Unix) mod_ssl/2.2.4 OpenSSL/0.9.8e DAV/2 mod_python/3.3.1 Python/2.3.4 SVN/1.4.3 configured -- resuming normal operations

メッセージに書かれているようにKernelのセマフォが足りないためです。

  • 現在値の確認
    • sysctl kernel.sem

kernel.sem = 250        32000   32      128
  • 増やして反映
    • 値は適当

cat << 'HERE_EOF' >> /etc/sysctl.conf
# /proc/sys/kernel/sem
kernel.sem = 512 32000 100 256
HERE_EOF
sysctl -p

これでApacheを再起動してエラーが出なくなればOKです。エラーがまだ出るようなら値をもっと増やしてください。Oracleとか入れる時は結構でかい値に設定するようにドキュメントに書かれてたりします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です