続・OpenVZにハマる
Apacheなんかは簡単にコンパイルできたのですが,phpなんかでコンパイル時にオプションてんこ盛りにすると,途中でコンパイルが止まってしまいました.使ったコンパイルはIntel C++のお試し版.Out of memoryで,コンパイルプロセスがkillされてしまいました.
Out of memoryでkillされるかどうかを定めるパラメータはOOMGUARPAGESと書いてあったので,色々設定してみたのですが,全然ダメ.
PRIVVMPAGESやVMGUARPAGESのlimitを増やしてみてもダメ.
結局,ポイントは,Out of memoryを起こす仮想マシンに入って,
less /pros/user_beancounters
をすると分かりました.PRIVVMPAGESのfailcntというところが沢山カウントアップされていて,maxheldの値がbarrierより大きく,limitよりは小さくなってたので,PRIVVMPAGESのbarrierの値を大きくしたら,phpのコンパイルが通りました.
また,その後,別なVZマシンでpostfixを実行するときもうまく稼動しなかったのですが,それもやっぱりuser_beancountersを見ると,ソケットバッファが足りていないことが分かって解決しました.
溢れてる分だけconf-sampleファイルの中を書き換えて,
vzctrl set 101 --applyconfig aaa --save
とかやれば,特にVZマシンを再起動なんてせずに,その場で反映,OKです.