使用 HDFS 文件系统清除生产 Hadoop 集群上的 RAM 内存缓存和缓冲区

使用 HDFS 文件系统清除生产 Hadoop 集群上的 RAM 内存缓存和缓冲区

我们有 Hadoop 集群,包含 265 台 Linux RHEL 机器。

在总共 265 台机器中,我们有 230 台带有 HDFS 文件系统的数据节点机器。

每个数据节点上的总内存为 128G,我们在这些机器上运行许多 Spark 应用程序。

上个月我们添加了另一个 Spark 应用程序,因此进程从数据节点机器中占用了更多内存。

我们注意到了那个缓存。内存是非常重要的部分,当机器上运行更多进程时,正确的结论是添加更多 RAM 内存。

由于我们在接下来的5-6个月内无法将内存升级到256G,那么我们正在考虑如何尽可能提高RHEL机器的性能和内存现金。

根据我们的经验,内存 Csch 对于应用程序的稳定性非常重要。

一种选择是清除 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 内存缓存”是正确的临时解决方案,直到内存升级

相关内容