swap关闭不生效与swapoff vs swappiness=0分析

对于hadoop集群来说,如果使用系统默认设置,会导致swap分区被频繁使用,集群会不断发出警告。

临时关闭swap:
sysctl -w vm.swappiness=0

使用free -h查看剩余内存情况

永久关闭swap:
echo “vm.swappiness = 0”>> /etc/sysctl.conf (尽量不使用交换分区,注意不是禁用)
如果集群已经使用了swap分区,在设置vm.swappiness值之后建议对swap分区进行刷新(将SWAP里的数据转储回内存,并清空SWAP里的数据):
swapoff -a && swapon -a
sysctl -p (执行这个使其生效,不用重启)

swapoff vs swappiness=0 差别分析
swap基本上只是硬盘上的虚拟RAM,当RAM内存不足时使用它。swap会在系统崩溃时提供安全机制,或者会在outofmemory的情况下阻止操作系统kill掉进程。
设置swappiness=0,不会禁用交换空间,它会将使用swap推迟到尽可能晚,直到它无法找到释放 RAM 的方法,并决定移动RAM中的一些内存以交换空间。
设置swapoff,关闭交换分区,意味着如果程序需要更多RAM,它就会崩溃。
参考:https://unix.stackexchange.com/questions/691795/what-is-the-different-between-settings-swappiness-to-0-to-swapoff

不生效分析:
1、如果主机安装了tuned,通过修改/etc/sysctl.conf 文件无法使该配置生效。
因为tuned配置文件晚于sysctl.conf读取并执行。
解决方法:
find /usr/lib/tuned -name ‘*.conf’ -type f -exec grep “vm.swappiness” {} +
//执行此命令,查找到存在vm.swappiness参数的配置文件

在基于 RedHat 的发行版上,通常 tuned 都已经安装好了。
如果系统尚未安装,则执行 yum install tuned (基于 Debian 的发行版上则是 apt-get install tuned)安装就好。
安装完成后就可以通过systemd来管理tuned服务。tuned自带管理工具tuned-adm来管理各种系统参数调优的规则。
tuned-adm list ,列出所有可用的 profiles 。
tuned-adm active ,显示当前激活的 profile 。
tuned-adm profie SomeProfileName ,激活对应的 profile

2、虚拟内存 在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出 的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间,称Swap Space,(swapon -s)可查看。
解决方案:
使用swapon -s查看交换空间挂载情况
关闭挂载分区的交换空间:
关闭挂载分区:swapoff /dev/dm-1
(开启挂载分区:swapon /dev/dm-1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值