我目前有一个由3台都运行Ubuntu的机器组成的集群,并且已经使用Cloudera Manager进行了配置。查看群集后,我发现其中两台计算机都有错误“内存过量使用验证阈值”。一种是使用6.3GB的内存,而它只有3.8GB的物理内存,另一种是使用11.6GB的内存,而机器只有7.8GB的物理内存。
我认为这是因为这两个都被设置为数据节点和名称节点,但是我不确定如何做到这一点,以便仅使用可用的内存而不进行交换。我已经在sysctl.conf文件中将swappiness设置为0。
我无法将另一台计算机用于namenode或向这些计算机添加任何内存。是否知道如何降低内存使用量以及应将内存使用量降低到什么程度,以使群集不会由于可用内存太少而开始出现故障?
最佳答案
这与Swappiness完全无关。仅当为该节点上的服务分配的内存大于该节点上可用的总内存时,才会发生此错误(请注意,默认情况下,系统保留内存的 20%用于系统)
转到每个主机上的资源页面,以查看每个服务正在使用多少内存。您可以通过转到配置选项卡(针对每个服务)并更改它来减少每个服务使用的内存量(在配置页面的搜索栏中使用“内存”或“堆”来调出这些属性)
这样做可以消除该错误,但是建议不要这样做。首先出现此错误的原因是,您的群集上可能正在运行太多服务。尝试摆脱一些您不使用的东西。您以后可以随时添加它们(添加更多内存时)