web-dev-qa-db-ja.com

Smartsでプロセスがoomのために殺されたかどうかを伝える方法

鉱山のデーモンプロセスは、要求の受信を開始するとすぐにほぼすぐに殺されます。フォアグラウンドで実行しようとしている場合でも、アプリケーションログにはエラー出力は絶対にありません。

このVMインスタンスに割り当てられていない)のため、OSがOOMのためにそれを殺しているかもしれないという疑いがあります。

これを引き起こしているものを見つけたいのですが、利用可能なログファイルがほとんどないという事実によって致命的です。

# ls -la /var/log
total 20011
drwxr-xr-x   3 root     sys           10 Oct  9 02:38 .
drwxr-xr-x  31 root     root          31 May 15  2013 ..
-rw-r-----   1 root     root     4914932 Nov 15 16:34 auth.log
-rw-r--r--   1 root     root           0 Sep  9 15:49 courier.log
drwxr-xr-x   3 root     root           5 Nov  8 22:18 httpd
-rw-r--r--   1 root     root     2515768 Sep 10 03:10 postfix.log
-rw-r-----   1 root     other          0 Feb 21  2008 sysidconfig.log
-rw-r-----   1 root     sys      2514934 Sep 10 03:10 syslog
-rw-------   1 root     root         132 Nov  8 18:45 vsftpd.log
-rw-r--r--   1 root     root           0 Jun  5  2012 zoneinit.log
 _

ご覧のとおり、syslogは2ヶ月前に、最近新しいエントリは追加されていません。そしてそれが私が見つけることができるすべてのログファイルです。

私はSmartosで走っています:

SunOS hostname 5.11 joyent_20120504T040233Z i86pc i386 i86pc
 _

私はこのインスタンスのrootを持っています(Smartos Parlanceで "Zone"と呼ばれますが、システム全体を制御しません。

私は読んだ Linuxサーバーが私のプロセスを殺し、どのプロセスが失われたかどうかを知っていますか? 、それは私の場合には役立ちません。

1
fulv

Solaris/SmartOSはOOMキラーを実装しません。だからそれはそうではありません。アプリケーションが使用できないメモリを要求しようとすると、エラーがアプリケーションに返され、実行を続けることが許可されます。もちろん、アプリケーションがエラーを管理する方法は異なる質問です。

Truss/Dtraceを使用して、アプリケーションが作成していて、返されたエラーを検討しているSYSCALLSを確認できます。

PRSTAT、PSなどを使用してプロセスに目を向けて、要求/使用しているメモリの量を確認することもできます。

1