首先就是目前没有方法完全禁用kswapd0进程,只能通过cron时不时自动释放无用内存.
先建一个脚本,可以放在/home/fuckswapd0.sh
脚本内容:
#!/bin/bash
# Rev 2: Use ps instead of top
## run as cron, thus no $PATH, thus need to define all absolute paths
cpu=$(/usr/bin/printf %.0f $(/bin/ps -o pcpu= -C kswapd0))
[[ -n $cpu ]] \
&& (( $cpu >= 90 )) \
&& echo 1 > /proc/sys/vm/drop_caches \
&& echo "$$ $0: cache dropped (kswapd0 %CPU=$cpu)" >&2 \
&& exit 1
exit 0
然后命令crontab -e
接下来在底部加行:
* * * * * /bin/bash /home/fuckswapd0.sh >> /var/log/syslog 2>&1
保存即可。
随后kswapd0占用应该就不会上去了
## 这东西其实挺离谱的,也不知道是红帽社区的问题还是Linux kernel的问题 ##