MacOSXでsyslogへの1秒あたりの書きこみ上限数を無効にする
MacOSX 10.6 にて、ループで大量の文字列をsyslogに書き込むスクリプトを記述したところ、こんな感じで怒られてしまいました。
Dec 2 11:49:11 chen-pro konoha[730]: *** process 730 exceeded 500 log message per second limit - remaining messages this second discarded ***
どうやら、一秒あたりの書き込み上限数に達した模様。これを解除するために、plistファイルを編集しようと思ったのですが、なぜかバイナリファイルのため編集できませんでした。調べてみたところ、
Snow Leopard の syslogd で、UDPポートでLISTENしてリモートからのログを受け取る設定 - hibomaのはてなダイアリー
こちらに載っていた手順で編集できるようになりました。
$ sudo plutil -convert xml1 /System/Library/LaunchDaemons/com.apple.syslogd.plist
あとは、
macos - Mac: Extend or disable 500 Messages Limit of Console - Super User
こちらの手順に従って、syslogd起動時の引数を追加しました。
apple.syslogd.plist 2011-12-02 17:48:59.000000000 +0900 @@ -18,6 +18,8 @@ <key>ProgramArguments</key> <array> <string>/usr/sbin/syslogd</string> + <string>-mps_limit</string> + <string>0</string> </array> <key>Sockets</key> <dict> cing>/usr/sbin/syslogd</string>
最後に、plistをロードし直します。
$ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist $ sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist