私たちは265のLinux RHELシステムで構成されたHadoopクラスタを持っています。
合計265台のマシンのうち、HDFSファイルシステムを備えた230台のデータノードマシンがあります。
各データノードの合計メモリは128Gであり、これらのシステムで多くのSparkアプリケーションを実行します。
先月に別のSparkアプリケーションを追加したため、プロセスはデータノードシステムでより多くのメモリを占有しました。
我々はそのキャッシュを発見した。メモリは非常に重要な部分であり、マシンでより多くのプロセスが実行されるときの正しい結論は、より多くのRAMメモリを追加することです。
今後5〜6ヶ月以内にメモリを256Gにアップグレードできないため、RHELシステムのパフォーマンスとメモリキャッシュを最大限に向上させる方法を検討しています。
経験的に、メモリCschはアプリケーションの安定性にとって非常に重要です。
1つのオプションは、以下のようにRAMメモリキャッシュとバッファを消去することです。
1. Clear PageCache only.
# sync; echo 1 > /proc/sys/vm/drop_caches
2. Clear dentries and inodes.
# sync; echo 2 > /proc/sys/vm/drop_caches
3. Clear PageCache, dentries and inodes.
# sync; echo 3 > /proc/sys/vm/drop_caches
以下のようにcronで実行してください。 (からhttps://www.wissenschaft.com.ng/blog/how-to-clear-ram-memory-cache-buffer-and-swap-space-on-linux/)
#!/bin/bash
# Note, we are using "echo 3", but it is not recommended in production instead use "echo 1"
echo "echo 3 > /proc/sys/vm/drop_caches"
Set execute permission on the clearcache.sh file.
# chmod 755 clearcache.sh
Now you may call the script whenever you required to clear ram cache.
Now set a cron to clear RAM cache everyday at 2am. Open crontab for editing.
# crontab -e
Append the below line, save and exit to run it at 2am daily.
0 2 * * * /path/to/clearcache.sh
ただし、本番データノードマシンについて話しているため、上記の設定が安全かどうかはわかりません。メモリを128Gから256Gに増やすことができるまで、いくつかのソリューションを提供します(?)。
私が書いた記事についてあなたのコメントを聞くことができますか?
メモリのアップグレードまでの「RAMメモリキャッシュの消去」が正しい一時的な解決策である場合