前言
随着中间件, 服务部署的越来越多, 内存使用也越来越多,swap 也占用的越来越多, 如何排查出占用 swap 过高的程序呢?
一、查询出 swap 占用高的程序
执行一下命令,可以查看使用较高的 swap 程序
for i in $(cd /proc;ls |grep "^[0-9]"|awk '$0 >100') ;do awk '/Swap:/{a=a+$2}END{print'"$i"',a/1024"M"}' /proc/$i/smaps 2>/dev/null ; done | sort -k2nr |head
找到对应服务的 pid,然后查到对应的服务
二 、调整 swap 参数
说明:/proc/sys/vm/swappiness
内核参数 vm.swappiness 控制换出运行时内存的相对权重,参数值大小对如何使用 swap 分区有很大联系。值越大,表示越积极使用 swap 分区,越小表示越积极使用物理内存。 默认值 swappiness=60,表示内存使用率超过 100-60=40% 时开始使用交换分区 。swappiness= 0 的时候表示最大限度使用物理内存,而后才是 swap 空间;swappiness=100 的时候表示积极使用 swap 分区,并把内存上的数据及时搬运到 swap 空间。
总结
此处对于 swap 占用程序的分析以及对于 swap 如何使用做了简单分析
转自 https://blog.csdn.net/u014497669/article/details/127228048
微信扫描下方的二维码阅读本文
正文完