我们想要将vm.swappiness
10 更新为 1 并执行swapoff
和swapon
,因此内存消耗将仅来自存储卡而不是来自磁盘
所以我们编写了以下 bash 脚本(脚本应该运行在195Linux RHEL 7.6 服务器):
more /var/tmp/swap_conf_primary.sh
#!/bin/bash
sysctl -w vm.swappiness=1
sed -i 's/vm.swappiness = 10/vm.swappiness = 1/' /etc/sysctl.conf"
sleep 2
swapoff-a
swapon -a
.
.
.
我们注意到该swapoff
过程需要很长时间 - 几个小时(在某些机器上甚至 5-6 小时),因此我们决定使用 & 执行swapoff
and swapon
,如下所示:
$ more /var/tmp/swap_conf_primary.sh
#!/bin/bash
sysctl -w vm.swappiness=1
sed -i 's/vm.swappiness = 10/vm.swappiness = 1/' /etc/sysctl.conf"
sleep 2
/var/tmp/swap_conf_secondery.sh &
.
.
.
尽管
$ /var/tmp/swap_conf_secondery.sh &
#!/bin/bash
echo “`date` swapoff -a” >/tmp/swap_proccess.log
swapoff -a
echo “`date` swapon -a” >/tmp/swap_proccess.log
swapon -a
进行上述更改后,我们还添加了一个附加脚本 /var/tmp/swap_conf.sh
,它将作为进程运行,并自动执行swapoff
和swapon
,而不依赖于“父”脚本 - /var/tmp/swap_conf_primary.sh
。
我们不确定脚本的方法是否是 /var/tmp/swap_conf_secondery.sh &
我们可以做的最佳选择。那么,还有更好的选择吗?