プログラムに一貫性のないエラーが発生しているときにはシステムのリソースが不足していることが考えられます。リソースについて調べ、足りないリソースがあれば増やしたり、リソースの消費量を減らすことで対応できます。しかしどのリソースが足りないのか、どのようにリソースが足りないのかといったことを調べるためには、自分で「質問」を作っていきその質問に対して回答をする必要があります。ここでは、1)どのようなリソースに着目すべきか、2)どのような質問を作っていくかについて考えて見ます。
◇どのようなリソースがあるか
システムにあるリソースとしては下記があげられます。
processサイズ,ulimitおよび/etc/securityで制限されている値,共有メモリ
CPU,Memory,Disk,Network帯域
◇リソース不足に対しての質問
・共有メモリがすでにアタッチされていると起動できないないプログラムを例にします。
異常終了が発生したときにすでに確保されている共有メモリを開放しないでプログラムが終了するときがあります。再度実行するとすでに共有メモリは確保されているために、エラーとなります。
・共有メモリの残量を表示するコマンドは?
・共有メモリを取得・解放するシステムコールは?
・共有メモリが取得できないときに異常が発生しているかの判別
上記取得・解放システムコールからのリターンコード
・アプリケーションで共有メモリはどんなときに使われるのか