[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:17353] Re: 大量メール配送時の不具合



長谷川です。

> これは ファイルオープンが Linux カーネルの制限 255 - 3 (stdin/stdout/stderr)
> 分に引っかかって いるとおもいますが
> > これは、プログラムからの呼び出しの問題なのでしょうか・・・
> > C言語から、popenでsendmailと通信して、pcloseで閉じているだけなのですが。
> 上記 252 を超えることは ありませんか?

popen〜pcloseまでの処理が繰り返し行われる回数は、252を超えています。
pcloseしてもファイルオープンされている扱いなのでしょうか。
たとえば、fopen 〜 fcloseを何度繰り返しても、問題はないですよね?閉じてる
わけですから。
それとも、呼び出されたsendmailのプロセスがファイルをオープンしているために
出るエラーなのでしょうか。

もしpcloseしてもオープンされている扱いなら、一度に処理できるメール数が252通
(あるいはそれ以下)に限られてしまうということですよね。

うーん。困った。。。
大体psコマンドで見ていると、130ほどsendmailプロセスで埋め尽くされた時点で
segmentation fault か、Too many open files in system などが表示され、psコマンド
自体も実行できなくなります。

> > maxQueueRunSize =10000
を100などにしても、起動されるプロセスは抑制できないみたいです。

カーネル再構築しか手がないのでしょうか。そのパッチでどのくらいのファイルオープ
ン数の増加が見込めるのでしょうか・・

思いっきりハマッテマス。。。