このチュートリアルでは、Linux で RAM キャッシュをクリアし、スワップ領域をクリーンにする方法を学びます。
他のすべてのオペレーティング システムと同様に、GNU/Linux にもメモリ管理システムが実装されています。ただし、Linux のメモリ管理は他のオペレーティング システムよりも効率的であり、使用頻度も高くなります。ただし、メモリ管理を制御したい場合や、システムの RAM を使い果たしているプロセスが 1 つ以上ある場合があります。そのような場合、私たちはそれを止めたいと思っています。 Linux には、フラッシュ (RAM キャッシュのクリア) する方法がいくつかあります。
Linuxでキャッシュをクリアする方法?
ほぼすべての Linux システムでは、キャッシュをクリアするために 3 つの方法が提供されています。これらの中には、進行中のプロセスやサービスを中断することなく驚くほど使用できるものもあります。 3 つの方法は次のとおりです。
- PageCache のみをクリア
- dentry と inode をクリアする
- dentry と inode のクリア、PageCache のクリア
3 つの方法すべてについて詳しく説明し、実際の実装についても見ていきます。
1. PageCache のみをクリアします -
この方法は、進行中の操作、アプリケーション、サービスを停止せずにキャッシュをクリアできるため、Linux のキャッシュをクリーンアップする最も安全な方法の 1 つです。これは実稼働環境でも使用できるため、キャッシュをクリーンアップする最も安全な方法と言われており、PageCache のみをクリーンアップします。この方法では、次のコマンドが使用されます。
指示
# sync ; echo 1 > proc/sys/vm/drop_caches
説明:
上記のコマンドでは、「 同期する ' はファイル システム バッファのフラッシュに使用され、コマンドは ' を使用して区切られます。 ; ' は順次実行されます。
ただし、シェルは、シーケンス内で使用可能な次のコマンドの実行を開始する前に、すべてのコマンドが実行または終了するのを待ちます。
の ドロップキャッシュ カーネルのドキュメントにも明確に記載されているように、実行中の他のアプリケーションやサービスを停止したり影響を与えたりすることなく、キャッシュをフラッシュまたはクリーニングするために使用されます。 ' エコー ' コマンドはファイルへの書き込みを行います。
jQueryの親
ターミナルを使用して PageCache をクリアする手順:
ステップ1 - Linux でターミナルを開き、次のコマンドを入力して Enter キーを押します。コマンドが実行されると、次の例に示すように、システムのメモリに関する情報が表示されます。
指示
free
上記のコマンドは、使用されているメモリ量を表示し、使用可能な合計メモリ、スワップ メモリなどの他の要素を表示するために使用されます。これを使用できます。 無料 それぞれの方法を使用するときに、直前と直後に ' コマンドを実行します。
メモリ割り当ての変更を簡単に確認または検出できるように、実際のコマンドを実行する前後に「free」コマンドを使用する必要があります。プロセス全体が実際にどのように機能するかを理解するための例を見てみましょう。
例
2. dentry と inode をクリアします。
このメソッドは、dentry と inode のメモリをクリアするために使用されます。これは最初の方法に似ていますが、PageCache のメモリをクリアするのではなく、dentry と i ノードの両方のメモリをクリアするために使用されるため、少し異なります。それでも、これは上で説明した最初の方法によく似ています。このメソッドで使用されるコマンドは次のとおりです。
指示
# sync ; echo 2 > proc / sys / vm / drop_caches
このメソッドの実装方法を理解するために例を見てみましょう。
例
3. dentry と inode をクリアし、PageCache をクリアします
これは最も効果的な方法の 1 つです。それにもかかわらず、特に本番環境で使用するのが最も安全であるとは考えられていないため、何をしているのかがわかるまでは使用することは伝統的に推奨されていません。このメソッドで使用されるコマンドは、PageCache、dentries、および i ノードを同時にクリーンアップする「echo 3 >」を使用します。
指示:
# sync ; echo 3 > / porc / sys / vm / drop_caches
実際にどのように機能するかをさらに詳しく理解するには、次の例を考えてください。
例:
注: 上で説明したように、PageCache と dentries、inode も即座にクリーンアップされるため、何をしているのかを理解していない限り、運用環境で使用することはお勧めできません。
スワップスペース
一般に、スワップ領域は、物理メモリの使用率がほぼピークに達したときに使用されます。そのため、システムがより多くのメモリ リソースを必要とし、物理 RAM がいっぱいになった場合、非アクティブなページはすべてスワップ メモリ領域に転送されます。
ただし、スワップ メモリ領域は、少量ではありますが有効な量の Ram としてシステムにも役立ちます。それでも、スワップ スペースを物理ラムとして考慮することはお勧めできません。
Linux でスワップ領域をクリアするにはどうすればよいですか?
システム上のスワップ メモリをクリアするには、スワップをオフにするだけです。これにより、すべてのデータがスワップ メモリから RAM に戻されます。また、この操作をサポートするためにシステムに十分な RAM があることを確認する必要があることも意味します。
これを行う簡単な方法は、 「フリーエム」 コマンドを使用して、スワップ、RAM で何が使用されているかを確認し、スワップを無効にします。
オフにしたら、操作が完了するまで 30 秒以上待ってから、スワップをオンに戻す必要があります。これにより、スワップ メモリ キャッシュがクリアされ、再び有効になりますが、スワップをクリアする前に、システムの現在 (またはデフォルト) 設定を確認する必要があります。
システムのスワップネスの現在の設定を確認するには、出力に示されているように次のコマンドを使用してターミナルを開くだけです。
cat /proc/sys/vm/swappiness
出力
ご覧のとおり、システムの現在の Swappiness 値は「60」秒です。ただし、変更したい場合は、0 ~ 100 の間の任意の値に設定できます。この値を編集 (更新) するプロセスは非常に簡単です。すべて、ターミナルに次のコマンドを入力して Enter キーを押す必要があります。
指示:
sudo sysctl vm.swappiness=x
(ここで、x は設定したいスワップ値です)
上記の出力からわかるように、システムの現在のスワップ値 (またはデフォルト値) は 60 です。スワップ値を 40 に変更してみます。
1. を押してターミナルを開きます。 Ctrl+Alt+T キーボードで。
Linuxのmakeコマンド
2. ターミナルが開いたら、次の図に示すように、次のコマンドを入力して Enter キーを押します。
sudo sysctl vm.swappiness=40
出力
注: このコマンドは superUser (root ユーザー) 権限で実行する必要があるため、パスワードの入力を求められる場合があります。
検証
スワップ値が正常に更新されたことを確認するには、次のコマンドを入力して Enter ボタンを押します。
cat /proc/sys/vm/swappiness
出力
出力からわかるように、スワップ値が 40 に正常に更新されました。
スワップスペースのクリア
スワップスペースをクリアするには、次のことを行うだけなので、プロセスは非常に簡単です。 サイクルオフ スワップ。これにより、すべてのデータまたは非アクティブなページがスワップ メモリ空間から RAM に転送されます。スワップをオフにすると、30 秒待ってから再起動するか、スワップ領域を再度オンにする必要があります。
便利なコマンド:
以下は、スワップ スペースのクリーンアップに役立ついくつかの基本的なコマンドです。
スワップメモリをクリアする手順
これらのコマンドを使用してスワップ領域またはメモリをクリアする方法を見てみましょう。
ステップ1。 「」を押してターミナルを開きます Ctrl+Alt+T ' キーボードで。
ステップ2。ターミナルが開いたら、「」を入力します。 sudo -i ' コマンドが必要になる場合があるため、 スーパーユーザー権限 上記のコマンドを実行するには:
ステップ3. 「free -m」コマンドを入力して、メモリの使用率を確認します。 サイクルオフ の スワップ :
ステップ-4 次に、「」を入力します。 スワップオフ -a ' コマンドを入力して Enter キーを押し、以下に示すようにスワップをオフにします。
SQLでキャストする
ステップ5. 後に サイクルオフ 、スワップは少なくとも 40 秒待機します。
ステップ6.ここで「swap-a」と入力し、Enter キーを押してスワップを再度有効にします。メモリ使用量の違い (または変化) を確認するには、以下に示すように、「free-m」コマンドをもう一度実行します。
このような状況に陥った場合に、これがシステムのスワップ メモリをクリアするのに役立つことを願っています。