私のGnu / Linux Debianサーバーでこのスクリプトを使用するにはアドバイスが必要です。
このサーバーは、magentoプラットフォームを使用してWebサイトをホストするために使用されます。 2~3日ごとにメモリを確認してみると、合計64GBのうち使用可能なメモリが5~7GBとなった。
私は偶然このサイトを見つけました:LinuxでRAMメモリキャッシュ、バッファ、スワップ領域を消去する方法。
スクリプトは次のとおりです。
#!/bin/bash
# Note, we are using "echo 3", but it is not recommended in production
# instead use "echo 1"
echo 3 > /proc/sys/vm/drop_caches
- 問題はこれが安全かどうかです。
- 毎日実行しているcrontabにこれを置くと、いくつかの損傷が発生しますか?
彼らは次のように言います:
Linuxカーネルで利用可能なバッファとキャッシュを解放するのはLinuxにとって良い考えですか?さまざまな設定を適用し、実際にI / O拡張ベンチマークに実装されていることを確認したい場合は、バッファキャッシュを消去する必要があります。システムを再起動せずに、つまりダウンタイムなしで上記の指示に従ってキャッシュを削除できます。
Linuxの設計方法は、ディスクを見る前にディスクキャッシュを見ることです。キャッシュ内のリソースが見つかった場合、要求はディスクに到達しません。キャッシュをクリアすると、オペレーティングシステムがディスク上のリソースを見つけるため、ディスクキャッシュはもはや役に立ちません。
さらに、キャッシュを消去し、オペレーティングシステムに必要なすべてのリソースをディスクキャッシュにリロードすると、数秒間システムが遅くなります。
他のウェブサイトからメモリをロードするコマンドが次のようになっています。
#!/bin/bash
sync; echo 3 > /proc/sys/vm/drop_caches
エコー前に「同期」する方がいいですか?
答え1
私の提案はいいえ!
メモリが非常に具体的に必要な場合でなければ今、役に立つものを思い出に残す方が良いです。 Linuxカーネルは、必要に応じてマイクロ秒以内にメモリを回復できます。これと比較して、既存のハードドライブからデータを取得するには数万マイクロ秒かかります(7200rpmハードドライブの場合、ディスクが正しい位置に回転するのに平均4.2ミリ秒かかり、アドバンストディスクの検索時間も4ミリ秒です)。 )実際に必要であることが判明したら。 RAMと比較してSSDのパフォーマンスも低下します。
メモリに有用な情報がないからといって電力が節約されるわけではありません。
キャッシュを削除する理由は、主にベンチマーク、特にファイルシステムのベンチマークのためです。作成する必要がある主メモリの量を減らしたい休止状態ツールを想像することもできます。
答え2
はい、パフォーマンスが低下します。しかし、butを紹介しない限り、他の何も壊れてはいけません。
しかし、なぜこれを行うのですか?良いことはありません。カーネルは未使用のメモリの目的を見つけようとします。