Linux システムでは、SWAP、キャッシュ、バッファという 3 つの概念がよく登場しますが、それぞれは何を意味するのでしょうか?簡単に言うと、SWAP は仮想メモリのスワップ領域を指し、Cache はバッファ領域を指し、Buffer は入出力バッファ領域を指します。 Linux システムでのこれらの使用は、システムのパフォーマンスに重要な役割を果たします。ただし、アプリケーションのシナリオやアプリケーションが異なれば、これら 3 つのキャッシュ領域の占有および使用方法も異なります。次はこの記事で詳しく紹介していきます。
**1. 無料のコマンドを使用して Linux メモリを表示する
**
total: 合計メモリ サイズ。
used: 使用されたメモリ サイズ (これには、キャッシュ、バッファ、共有部分が含まれます)。
free: 空きメモリ サイズ。
shared: プロセス間の共有メモリ (通常は使用されず、無視できます)。
buffers: リクエストにすぐに応答できるように、メモリに書き込まれた内容はキャッシュされ、後続のデータは定期的にディスクにフラッシュされます。
cached: 読み取り後にメモリ内にキャッシュされたコンテンツのサイズ (この部分は、次のクエリ中にすぐに返すためのものです)。
-/ バッファ/キャッシュは 2 つの部分として考慮されます:
-buffers/cache: 使用されているメモリのサイズ (バッファとキャッシュは使用されていないため、使用されている部分ではないことに注意してください。組織や人々はそれらが解放できることを確認する必要があります)、その値 =使用済みバッファーがキャッシュされています。
バッファ/キャッシュ: 利用可能なメモリ サイズ (同様に、空きで表される部分ではありません)、その値 = キャッシュされた空きバッファ。
Swap: ハードディスク上のスワップ パーティションのサイズ。
設計の目的は、上記のバッファ/キャッシュによって表される利用可能なメモリが使い果たされた場合、新しい読み取りおよび書き込み要求が来た後、メモリ内のデータの一部がディスクに書き込まれることです。ディスク領域の一部を仮想メモリとして扱い、使用します。
2. バッファーとキャッシュの概要
キャッシュ (キャッシュ) は CPU とメモリ間のデータ交換を増やすように設計されており、バッファ (バッファ) はメモリとハードディスク (または他の I/O デバイス) 間のデータ交換を増やすように設計されています。
キャッシュは主に読み取り操作のために設計されていますが、キャッシュの概念は混同されやすい可能性があります。CPU 自体に一次キャッシュ、二次キャッシュ、三次キャッシュなどのキャッシュがあることは理解しています。 CPU のすべての命令操作は接続されています。それらはすべてメモリであり、CPU の処理能力はメモリの速度よりもはるかに高いため、CPU リソースがアイドル状態になるのを防ぐために、インテルや他の企業は内部にキャッシュを統合しました。 CPU ですが、結局のところ、あまりにも多くの回路を配置することはできないため、キャッシュのこの部分はあまり大きくありません。これは非常に大きく、主に一般的に使用される命令と一般的に使用されるデータを保存するために使用されます。実際、キャッシュ データのほとんどは、キャッシュ データのほとんどを格納する必要があります。要求されたデータをキャッシュするためにメモリ空間を占有します。つまり、上記の Cached 部分です (この部分は完全に個人的な理解であり、正しいかどうかはまだ検証されていません)。
バッファは主に書き込み操作用に設計されており、特にメモリとハードディスク間の書き込み操作用に設計されています。目的は、書き込み操作を集中させ、ディスクの断片化とハード ディスクのアドレッシング プロセスの繰り返しを軽減することです。パフォーマンスを向上させます。
Linux システム内には、バッファの内容を定期的にクリアしてハード ディスクに書き込むデーモン プロセスがあり、上記の操作は、sync コマンドが手動で実行された場合にもトリガーされます。
3. 一般的な症状
症状 1: Linux ではファイルが頻繁にアクセスされ、物理メモリがすぐに使い果たされ、キャッシュが増大し続けます。
説明: Linux は要求されたデータをすべてキャッシュにキャッシュします。その利点は、CPU の処理速度がメモリの処理速度よりもはるかに高いため、CPU とメモリが通信すると、ヒット結果がすぐに返されることです。キャッシュ。
症状 2: スワップが占有されています。
説明: メモリが不足するとスワップが占有される可能性があるため、サーバー監視の指標として使用して注意を引くことができます。
4. スワップとバッファ/キャッシュを手動でクリーンアップする
(1) スワップのクリーンアップ
リーリー操作手順: スワップが使用されており、バッファ/キャッシュをクリアした後もまだスペースが残っている場合、 swapoff -a 操作を実行すると、スワップの内容がメモリにスワップされ、データは失われません。 。
(2) バッファ/キャッシュのクリーンアップ:
リーリー ###説明書:###sync–>キャッシュされたコンテンツをハードディスクに書き込みます;
echo 3 >/proc/sys/vm/drop_caches–>drop_caches の値を 3 に変更します。デフォルトは 0 です。3 に変更すると、システムはキャッシュされたコンテンツをクリアします。
sleep 2 –> 前のステップが完了しないように少し待ちます;
echo 0 >/proc/sys/vm/drop_caches –> デフォルト値に戻す
一般に、SWAP、キャッシュ、バッファーの 3 つのキャッシュ領域は Linux システムの重要な部分であり、システムのパフォーマンスと安定性に直接影響します。これらを適切に制御して使用すると、システムがより安定して効率的に動作し、ユーザー エクスペリエンスが向上します。この記事が、Linux システムにおけるこれら 3 つのキャッシュ領域の使用方法を理解するのに役立つことを願っています。追加することや質問がある場合は、メッセージを残してください。
以上がLinux で SWAP、キャッシュ、バッファを合理的に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。