Article delegate-ja/395 of [1-566] on the server localhost:7119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
[Reference:<_A394@delegate-ja.ML_>]
Newsgroups: mail-lists.delegate-ja

[DeleGate-Ja] Re: [DeleGate-Ja] Delegate 子プロセスがゾンビになる原因について
03 Mar 2010 07:00:52 GMT ysato@delegate.org (Yutaka Sato)
The DeleGate Project

In message <_A394@delegate-ja.ML_> on 03/02/10(20:24:02)
you necss@北薗 <praaqbrv6-qa4rnugpcja6.ml@delegate.org> wrote:
 |お世話になります。FILDG 北薗です。
...
 |長時間ゾンビがいるわけではなく、waitシステムコール待ちで
 |一瞬存在し、監視タイミングとバッティングして検知されている
 |だけですので、監視ソフト側で精度をあげる方法を実装したいと思います。
 |(長時間ゾンビは監視で検知し、wait待ちのゾンビは検知しないようにしたいと思います)

waitをする(子プロセスの終了を見届ける)のは親プロセスです。
子プロセスはただexitして貴賎なくゾンビになるのみです。親が
(いつ)waitして見届けてくれるかに関知することはできません。
SIGCHILDの件も、親が検出するように設定してくれているかどうか
によります。
ですので「wait待ちのゾンビ」というのは、概念的に無理がある
と思います(^^;)


 |原理的にUnixでは全ての子プロセスがゾンビ状態になるものだと思います。
 |つまり、親からfork()されてexit()したのち、親(権者)にwait()される
 |まではゾンビなわけですよね。
 |
 |問題は、ゾンビのまま長時間残る、あるいは放念されて誰も掃除(wait)し
 |ない放置状態になった場合で、これにより、リソースが不要に圧迫されたり、
 |ソンビがソケットなどのリソースを握ったままになっている場合に、相手が
 |切断待ちで終らないとか、サーバが再起動が出来ない、などの問題が発生
 |します。

これらは実際にDeleGateでこれまでに出会った事例ですが、どちらかと
言いますと Unix よりも Windows での問題だったと思います。

また、ゾンビではなく、プロセスがソース握ったままで困った例としては、
巨大なログファイルやテンポラリファイルのディスクリプタ(やハンドル)
をオープンしたまま保持し続けていて、名前空間からは削除されてどこにも
ないダークマターとしてディスクを圧迫していた、というような事象も
ありました。

似た様な話として、私はここのところ、DeleGate版のリモートシェル yysh
<URL:http://www.delegate.org/yysh/> を開発しているのですが、
yysh クライアントから yysh サーバにログインして、yysh サーバを再起動する
と(yyshクライアント -> yyshサーバ => forkpty() => shell => yyshdサーバ)
親yyshサーバプロセスの保持していたディスクリプタがそのまま継承されて
累積し、これを繰り返すと、やがてディスクリプタがパンクする、という事象に
遭遇しました。しかもこの現象が発生するのが、BSD系/SysV系ということに
よらず、OS依存なのが不思議です。


 |1対1で同期式の親子の場合には、fork()してすぐにwait()しますので、
 |ゾンビはほとんど発生しませんが、DeleGateのように1対Nの親子式
 |サーバの場合、親が、子供の後片付け(wait)よりも優先すべきと考える
 |他の処理に関わっている間は、子供はゾンビのままになります。
 |負荷が高い状況ではは、それが数秒間とかいうことも、あると思います。
 |(確かに、SIGCHILD割り込みを受けてなるべく早く掃除するというオプ
 |ションもありますが。最近のDeleGateでなら、子プロセスの終了処理を
 |専門に行なうスレッドを導入するでしょうね。。。)

                   9 9  
┌─┐┬┌──┬┐ //\^^ ( e ); {Do the more with the less -- B. Fuller}
├─┤│└─┐│ / 877m\_<   >_ <URL:http://www.delegate.org/delegate/>
┴ └┴──┘┴──────────────────────────────
佐藤豊@情報技術研究部門.産業技術総合研究所(独立行政法人)

  admin search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V