Linux の仮想メモリにより、オペレーティング システムはハード ディスクの一部を追加の RAM として使用し、より多くのメモリが使用可能であるかのような錯覚を効果的に作り出すことができますが、監視手法に進む前に、仮想メモリの基本を理解することが重要です。このプロセスには、スワッピングとページングという 2 つの主要なメカニズムが関係します。
- スワッピング: 物理 RAM メモリがいっぱいになると、プロセス全体が RAM からディスクに移動されます。
- ページング: 特定のメモリページのみがディスクに移動されるため、メモリ使用量をより細かく制御できます。これらのメカニズムの詳細については、Linux Documentation Projectのswapスペースに関するガイドを参照してください。swapスペースの初心者向けの説明については、PhoenixNAPの次の記事を参照してください。 スワップスペースとは何か、どのように機能するか.
LogicMonitorの記事 そもそも仮想メモリとは何か これらの概念をさらに深く理解することができます。
主要な取り組み
Linux のメモリ使用量を監視するための必須コマンド
システムの使用可能なメモリを監視することは、システムの効率的な動作を保証するために重要です。開始方法は次のとおりです。
1. 物理メモリ: free コマンドと top コマンド
使い方 free コマンドは、合計、使用済み、メモリ割り当てなどのメモリ使用量の簡単なスナップショットを提供します。top コマンドは、リアルタイムのメモリ使用量統計を提供するため、継続的な監視に非常に役立ちます。
[demo1.dc7:~]$ 無料 -g
キャッシュされた使用済み空き共有バッファの合計
メンバー: 47 45 1 0 0 21
SaaSベースのサーバービュー
Linux では、「空きメモリ」とはまだ目的が見つかっていないメモリのことです。
Linux は、実行中のプログラムで必要のないすべての物理メモリをキャッシュ ファイルとして使用します。プログラムが物理メモリを必要とする場合、Linux カーネルはファイル キャッシュ メモリをプログラムに再割り当てします。そのため、ファイル キャッシュで使用されるメモリ アドレスは空いているか、少なくともプログラムに割り当てることができ、別のプログラムで必要になるまでその目的を果たします。
すべて大丈夫 Linux メモリ 使用されているか、空き容量がほとんどないか、ファイル キャッシュとして使用されています。次の 2 つの場合を除き、ファイル キャッシュを用意しておくことをお勧めします。
- ヒープの最大化が必要な大規模なJavaプログラムを実行する場合
- ディスクキャッシュを管理するにはOSではなくデータベースが必要
自由がある限り バーチャル メモリ、アクティブスワップではなく、ほとんどのシステムは物理メモリで効率的に動作します。Linuxメモリの詳細については、LogicMonitorのブログ記事をご覧ください。 Linuxメモリを監視する正しい方法.
2. 仮想メモリの使用状況: free -t コマンド
使い方 無料 -t スワップ メモリの使用状況に関する詳細な情報を提供します。これは、使用されている仮想メモリの量を把握するために重要です。
例
無料 -t
[demo1.dc7:~]$ 無料 -t
キャッシュされた使用済み空き共有バッファの合計
メモリ: 49376156 48027256 1348900 0 279292 22996652
-/+ バッファ/キャッシュ: 24751312 24624844
スワップ: 4194296 0 4194296
合計: 53570452 48027256 5543196
監視ビュー
上記の出力によると、システムはスワップ領域をまったく使用していません。したがって、スワップ領域と物理仮想メモリ領域の合計の 90% が使用されているにもかかわらず、システムの物理メモリが不足することはありませんでした。
スワップの使用率が高いと、システムがすべてのメモリを使い果たしそうになっているため、危険です。プログラムがより多くのメイン メモリを必要とし、それを取得できない場合、Out Of Memory (OOM) Killer は、最初に要求されたメモリの量などの基準に基づいてプロセスを強制終了します。サーバー全体の機能を設定するサーバー プロセスは、おそらく最初に強制終了されるプロセスの 1 つになります。
スワップ使用量を高くすることは推奨されませんが、非アクティブ メモリのスワップ使用量が低から中程度であれば問題はありません。システムは、非アクティブなページを物理メモリからディスクに移動して、アクティブ ページ用のメモリを解放します。
スワップが使用されているかどうかを知ることは、使用量を低く抑えるための鍵となります。
スワップ使用量が多いことは単なる警告サインではなく、パフォーマンスを低下させる原因となります。
仮想メモリのページングレートの監視
メモリの問題を示す最も重要な指標の 1 つは、メモリ ページが物理メモリからディスクに移動する速度です。これは、vmstat コマンド、具体的には si (スワップインされたページ) 列と so (スワップアウトされたページ) 列を使用して監視できます。
例
vmstat
dev1.lax6:~]$ vmstat 1
プロセス -----------メモリ---------- ---スワップ-- -----io---- --システム-- -----CPU-----
rb swpd無料バフキャッシュsi so bi bo in cs us sy id wa st
8 17 2422376 122428 2520 24436 952 676 1796 904 10360 4421 41 0 33 26 0
9 17 2423820 123372 2524 24316 732 1716 752 1792 12259 4592 43 0 25 32 0
8 17 2425844 120408 2524 25044 416 2204 1616 2264 14675 4514 43 0 36 21 0
7 19 2427004 120532 2568 25640 608 1280 764 1308 12592 4383 44 0 36 20 0
8 24 2428816 121712 2572 25688 328 1880 500 1888 13289 4339 43 0 32 25 0
サーバー監視ビュー:
大量のブロックをスワップアウトすることは、システムのメモリが不足していることを示す主な指標です。ブロックを高速でスワップすると、システムは効率的に実行するために物理メモリではなくディスク上で必要なコードを探す必要があるため、パフォーマンスのボトルネックが発生します。この「ハント アンド スイッチ」プロセスにより、パフォーマンスが低下します。
このグラフを確認すると、ページイン レートとページアウト レートの持続的な急上昇は、メモリ競合の兆候である可能性があります。負荷の高い作業では、時折急上昇が発生するのは正常ですが、アクティビティが頻繁または長時間にわたる場合は、メモリ使用量の最適化、物理メモリの増設、またはメモリ リークの調査が必要であることを示しています。
さらに、ページイン レートとページアウト レートの関係から、システム パフォーマンスに関する洞察を得ることができます。たとえば、ページイン レートが高く、ページアウト レートが比較的低い場合、システムがメモリ使用量の一時的な急増から正常に回復していることを示している可能性があります。ただし、両方のメトリックが長期間にわたって高い場合、システムはスラッシング状態 (メモリのスワップインとスワップアウトが頻繁に発生) にある可能性が高く、パフォーマンスの問題につながります。
Linux メモリ管理のベストプラクティス
システムを効率的に稼働させるには、次のベスト プラクティスに従うことが不可欠です。
- スワッピングを最小限に抑える: 特に十分な RAM を備えたシステムでは、swappiness パラメータを調整してスワッピング頻度を減らします。
- スワップスペースを最適化する: スワップ領域がワークロードに対して適切なサイズであることを確認します。
- ファイルキャッシュの使用状況を監視する: Linux は利用可能な RAM をファイル キャッシュに使用するため、パフォーマンスは向上しますが、アプリケーションによっては調整が必要になる場合があることを理解してください。
Linuxがどのようにメモリを管理するか、空きメモリやファイルキャッシュに関するヒントなど、さらに詳しくは、LogicMonitorの記事をご覧ください。 Linux メモリの拡張: 空きメモリでもキャッシュでもないメモリを解放する.
「Linux でのメモリ使用量が多いことは、アクティブなスワッピングが発生しない限りは問題ではありません。重要なのは、システムが利用可能なリソースをどれだけ効率的に使用するかです。」
まとめ
Linux システムで最適なパフォーマンスを維持するには、仮想メモリを効果的に監視および管理することが重要です。適切なツールを使用し、ベスト プラクティスに従うことで、IT 管理者は、サーバーが最も要求の厳しいワークロードでも問題なく処理できることを確信できます。
LogicMonitor ブログでは、Linux 監視リソースの全範囲をご覧いただけます。特に、LogicMonitor は SSH 経由で信頼性の高い Linux 監視機能を提供しており、CPU、メモリ/共有メモリ、ファイルシステムの使用率、ユーザー スペース、稼働時間、ネットワーク スループットなどの重要なメトリックを収集できます。この方法は、SNMP が設定されていないシステムに特に便利です。LogicMonitor の DataSources スイートを使用すると、IT 管理者は特別な権限や SNMP 設定を必要とせずに Linux 環境を包括的に監視できます。
SSHベースのLinuxモニタリングの設定方法や、LogicModulesをインポートして完全なカバレッジを得る方法の詳細については、 LogicMonitor の Linux (SSH) 監視パッケージ.
私たちのブログを購読する
このような記事をあなたの受信箱に直接お届けします