CentOS   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了centos – kswap使用100%的CPU,即使有100GB的RAM也可用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在运行Centos 7 ESXi VM,具有近300GB的RAM和24个vCPU. 平均负载为3,应用程序几乎从不使用超过150GB的RAm.其余的可用内存由Linux用于缓存. 问题是,当缓存填满可用的RAM时,两个kswapd进程将开始使用100%的CPU,突然我看到所有CPU也显示99%的sys使用率(它不是等待或用户,它主要是sys). 这将导致高负载(100)几分钟,直到系统恢复并且
我正在运行Centos 7 ESXi VM,具有近300GB的RAM和24个vcpu.

平均负载为3,应用程序几乎从不使用超过150GB的RAm.其余的可用内存由Linux用于缓存.

问题是,当缓存填满可用的RAM时,两个kswapd进程将开始使用100%的cpu,突然我看到所有cpu显示99%的sys使用率(它不是等待或用户,它主要是sys).

这将导致负载(100)几分钟,直到系统恢复并且负载再次降至3.

此刻我没有交换分区,但即使我有一个这个问题发生了.

我找到的一个解决方案”是每天执行以下命令:

echo 3 > /proc/sys/vm/drop_caches

它会丢弃缓冲区/缓存.这将“解决”问题,因为缓存使用率从未达到100%.

我的问题是:

>这个问题有真正的解决方案吗?
> Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

毕竟,根据我的理解,RAM内存的主要功能是应用程序使用.缓存只是一个辅助功能,如果没有足够的内存,可以丢弃/忽略.

我的内核版本是3.10.0-229.14.1.el7.x86_64.

@H_874_39@
这听起来好像你在一个NUMA节点上耗尽了RAM,并且系统正在试图释放该节点上的内存.如果您使用大量内存的单个进程(认情况下)优先分配在运行该进程的节点上,则会发生这种情况.

看看这是否有帮助:

sysctl -w vm.zone_reclaim_mode=0

有关大多数系统上认NUMA策略可能出现的问题的详细说明,请参阅https://engineering.linkedin.com/performance/optimizing-linux-memory-management-low-latency-high-throughput-databases

大佬总结

以上是大佬教程为你收集整理的centos – kswap使用100%的CPU,即使有100GB的RAM也可用全部内容,希望文章能够帮你解决centos – kswap使用100%的CPU,即使有100GB的RAM也可用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。