oom_killerのデフォルト設定が、使用することができますそれを終わらせなさい。 oom_killerに最もメモリの多いプロセスをスキャンアウトさせず、メモリに適用されるプロセスを解決するように選択することができます。sysctl -w vm.oom_kill_allocating_task = 1この設定では、oom_killerは消費しません。大容量メモリプログラムを殺すために最も多くのメモリを占有するプロセスを見つけるための時間は、存続するチャンスがあります。しかし、メモリがなくなった瞬間には、空のメモリを申請したり使用したりする人は誰でも悲劇的になるでしょう。そして、予測不可能性に満ちたいくつかのプロセスが一緒に殺されているかもしれません。多くのプログラムが結びついていて、バックグラウンドのmysqldも殺されるのは不便であり、そして最後にpdflushが点滅するのを防ぐ方法はありません。一言で言えば、oom_killerは非常に調整されていません、それを再生させないことが最善です。この時点で、openSolarisはより良い仕事をしているように見えます、外部から、メモリが足りないとき、システムはアクティブに実行中のプログラムを強制終了しませんが、新しいプログラムを実行することを拒否します。利用可能なメモリができるまで、メモリの申請は保留されます。オーバーコミットそれでは、システムが以前にメモリが不足していることを検出できない場合、mallocはNULLを返す可能性があります。現在のオペレーティングシステム
では、過度にメモリを申請することが許されていますが、実際にメモリを申請していない場合は、実際のメモリよりも多くの容量を申請することができます。 (x);このようなプログラムは長時間使用できます)、使用が開始されると(memsetでいっぱいになるなど)、実際のメモリ使用量にカウントされ、メモリが本当に足りない場合はoom_killerが再生されます。現在Linuxには、このメモリ戦略を調整するためのいくつかのオプションがあります。-)
デフォルトでは、vm.overcommit_memory = 0ですが、今度はより多くのメモリを適用できますが、それでも特定の時点でアプリケーションが失敗しました。
vm.overcommit_memory = 1の場合、すべてのmallocが無条件に非常に恐ろしい世界を成功させるでしょう。
最後のオプションはこれです:sysctl -w vm.overcommit_memory = 2現時点では、要求されたメモリの総量に厳密な制限があり、制限を超えるとmallocはNULLを返します。アプリケーションはこれを適切に処理できます。この場合、oom_killerは二度と出てこないでしょう、プログラムが正しくこの状況を処理できないならば、pdflushはシステムが応答しないハード・ディスク回転をさせません、それはすぐにハングアップして、きれいにそしてきれいになります。
ただし、これにはいくつかの欠点もありますが、現時点ではvm.overcommit_ratioパラメータも機能します。デフォルトは50で、実際の物理メモリの50%にしか割り当てることができません。交換エリアがない場合、overcommit_ratio設定は小さく、非常に悲劇的なものになり、ほとんど何もできません。それから100に設定し、物事は非常に調和している?それほど単純ではありませんが、ここでの制限は、メモリ用のアプリケーションの総数に対する制限であり、アプリケーションが実際に使用されていない場合は、その合計もカウントされます。この場合、実際のメモリは使い果たされず、プログラムはメモリを申請することができない可能性があり、そしていくらかのメモリは浪費される。 overcommit_ratioは100以上の数値に設定することができますが、設定するのが難しい問題です設定が大きければ制限はありませんメモリが使い果たされると、ハードディスクは狂ってしまい、システムはしばらくの間応答を失います。現場にあるかもしれない、設定が小さい、それは何百メガバイトのメモリが浪費されることが可能であるメモリ情報を見ることができることをチェックすることができる:
%cat /proc /meminfo
MemTotal:2064616 kB
MemFree:1556672 kB
…。
CommitLimit:2064616 kB
Committed_AS:769068 kB
….
<ここで、Committed_ASはプログラムによって要求されたメモリの合計であり、CommitLimitを超えることはできません。
明らかにCommitted_AS + MemFreeがMemTotalよりも大きいので、CommitLimitをCommitted_AS + MemFreeに設定するのが適切なようです。
システムの可用性は、ハードウェアの冗長性またはソフトウェアによって大幅に向上させることができます。ハードウェアの冗長性は、主に、ハードディスクやネットワークケーブルなどの複数の冗長コンポーネントをシス
Linuxでのディスクパーティション、ファイルシステムのフォーマットとRAIDデバイス Linuxシステムでのディスクパーティションのフォーマットの比較 Windows ブートディスクを挿入するのは非
DevOpsはますます大規模な企業や組織にとって重要なので、DevOpsのいくつかの成功した実装を参照することが重要です。 DevOpsが正しく使用されている限り、DevOpsが非常に効果的な
Linuxの起動プロセスは何ですか? grubブートを使ってシステムの起動を完了する方法は?私が二重システムをインストールする前にこれらの問題は徹底的に研究されていません。 grubを介したLinuxの起動を理解し、Linux オペレーティングシステム
を理解するのを助け、また基本的な知識を普及させることができます^ _ ^。
図に示すように、これはハードディスクのLinuxパーティションの概略図です。 boot、root
Od -Ax -tx1z -vはMBR構造を導入します。GRUB(Grand Unified Bootloader)について話しましょう。現在のほとんどのLinuxシステムはこのブートローダを使って