出力されたファイルになります。各種デバイスやネットワークなど、システムに関連する様々な利用状況の情報を定期的に記録しているもので、システムの動作状況を確認する際に非常に便利な代物です。ついて以下のような説明がありました。memory.「現在のワークロードで要求されている総メモリ量の割合。超える可能性がある」とのことです。超えているのはバグの類ではなさそうです。おいては、プロセスがメモリを確保する場合、即座に実際のメモリを割り当てるのではなく「仮想メモリ」のみを割り当てます。実際に使用する段になって初めて実際の物理メモリを割り当てます。そのようなことをするのかというと、「プロセスが要求するメモリは実際に全て使われることはあまりないから」とされています。メモリ確保する」というプログラムがあったとします。メモリを消費しないものかもしれません。ものあまり使われないメモリが割り当てられたままになってしまいます。このように、プログラムやプロセスに要求された分だけメモリを渡してしまうと、実際に使用されることなく確保され続けるメモリが出てきてしまう可能性があります。なると、こういった「確保はされているものの使われていないメモリ」を使用できれば動くかもしれない別のプロセスが動かせなくなるなど、システムの動作に悪影響が出てしまう可能性が考えられます。先述のとおり、「要求されたメモリをそのまま渡さず、実際に使用する際に必要な分だけメモリを割り当てる」というアプローチを取ります。要求されたメモリの総量が実際のメモリより多くなろうと、実際にメモリ不足に陥るまでは「ま、実際には使ってないし平気平気!」と、どんどんプログラム等の動作を許可してしまいます。超えてしまうことがあるのです。このように、実際のメモリ総量を超えたメモリ要求を許可する動作を「オーバーコミット」と呼びます。メモリを無駄なく活用することができるのです。やって動作させたプロセスたちが実際に大量のメモリを使用しはじめ、実際のメモリの使用量がシステムの限界を超えそうになってしまったらどうなってしまうのでしょう?その答えは、「重要度が低そう」「動作していなさそう」「メモリの使用量が多そう」などの条件から考えていらなそうなプロセスを殺して、そのプロセスが使っていたメモリから確保する......そう、あの「OOM-killer」によってこの問題が解決されているのです。このオーバーコミットを利用して効率よくメモリを運用するためには不可欠なものなのです。憎いし怖いし嫌いなのでやって来て欲しくない!!...ということもあるでしょう。いった場合には、オーバーコミットが可能な量を制御する設定がきちんとあります。配下の設定ファイルに以下の設定を記述します。コマンドを実行することで設定が有効になります。値が設定でき、それぞれ以下のような設定になります。(デフォルト)「その時点で実際に利用可能なメモリ総量」を超えるメモリの要求を拒否します。程よい感じになるようにオーバーコミットを許可する設定です。1:無制限オーバーコミットの制御を行いません。どれだけのサイズのメモリの要求も通ります。発生リスクは高まりますがメモリの要求が阻害されないため、メモリの使用量が多いプロセスのパフォーマンスが向上する可能性があります。超える場合、メモリの要求を拒否します。領域が物理メモリよりも大きく十分なサイズであるシステム以外では推奨されません。配下の設定ファイルに設定を記述できます。コマンドを実行すると確認することができます。発生率は下げられる...はずです。逆にメモリが確保できずにプロセスを動かせないといったことが起こる可能性もありますので、変更するのであればまず他にメモリ関連の問題がないかを確認してから、システムの性格を考えた上で変更するのがよいと思います。オーバーコミット」のお話でした。大きく超えている場合には何か原因がないかを探っておくと事前にトラブルを回避することができるかもしれません。大きく超えている場合は、単純なメモリ不足やメモリリークの可能性も考えられます。観察はマシンの異常の原因を探る重要な糸口となることがありますので、上手く活用していきたいものです。雑誌等の執筆依頼を受付しております。役に立たなかった0人がこの投稿は役に立ったと言っています。コメントをキャンセルメールアドレスは表示されません。Reserved.本サイトに掲載されている社名、製品名、サービス名等は各社の商標または登録商標です。プライバシーポリシーお問い合わせ。