Apacheの起動が極端に遅い場合の対処法
現象
起動が極端に遅く,ログが
[notice] Digest: generating secret for digest authentication ...
で止まっている.
原因
/dev/randomの読み込み時にブロッキングしている.
対処法 (Gentooの場合)
補足
- /dev/randomと/dev/urandom
/dev/urandom デバイスから読み出しでは、エントロピーがより高くなるのを待つためのブロックは行われない。
http://www.linux.or.jp/JM/html/LDP_man-pages/man4/random.4.html
- apacheの起動時の状態
$ ps ax -o pid,comm,wchan | grep apache
5647 apache2 random_read
# lsof -p 5647|grep rand
apache2 5647 root 9r CHR 1,8 2219 /dev/random
より,/dev/randomに関係していることを確認
# cat /proc/sys/kernel/random/entropy_avail
39
# cat /proc/sys/kernel/random/read_wakeup_threshold
64
より,エントロピーが低いことが原因と判断.
http://gentoo-wiki.com/Apache2_Install より,上記対策法を知る.