时间:2021-05-02
概述
今天收到zabbix告警,有点奇怪的是swap内存使用很高,但实际使用内存却不多,下面一起来看看吧:
1. 查看服务器内存使用情况
可以发现实际剩余内存还剩很多,但swap已经使用了90%
2. 查看占用swap过高的进程
正常情况下swap的使用应该是0,所以swap剩余小于80%时,我们便需要关注是哪个进程占用过高。
通过以下命令查看占用swap过高的进程:
foriin`cd/proc;ls|grep"^[0-9]"|awk'$0>100'`;doawk'/Swap:/{aa=a+$2}END{print'"$i"',a/1024"M"}'/proc/$i/smaps;done|sort-k2nr
3. 查看进程
检查pg数据库无异常,也没有任务在跑。
4. 配置内核参数来减少swap的使用
如果内存够大,其实不必太多的使用 SWAP 分区, 可以通过修改 swappiness 的数值。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
在linux里面,默认设置swappiness这个值等于60。
现在一般1个G的内存可修改为10, 2个G的可改为5, 甚至是0。具体这样做:
--尽可能使用内存而不用swap
echo"vm.swappiness=1">>/etc/sysctl.conf
sysctl-p
--刷新SWAP
--刷新一次SWAP(将SWAP里的数据转储回内存,并清空SWAP里的数据)
swapoff-a&&swapon-a
--清理缓存
sync
echo3>/proc/sys/vm/drop_caches
5. 处理后结果
可以发现问题已解决。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
buffer和cache是Linux服务器的缓存,而swap分区占用率过高时会影响系统的时候,所以Linux系统下要及时对这些进行清理,下面小编就给大家介绍
Linux服务器分配真实与虚拟内存给处理器,通过交换管理内存使用率。明白Linux内存类型以及处理器如何共享内存有助于优化内存使用率。从Linux内核start
swap交换内存主要是指当物理内存不够用时,系统会启用硬盘的一部分空间来充当服务器内存,而默认情况下swap内存会有一些设置标准,它与物理内存的大小也是有关系的
sz命令用途说明:sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。相对应的从本地上传文件到Linux服务器,可以使
Linux检测服务器是否连接着网络摘要:每隔5分钟检测一次服务器是否连接着网络,如果三次检测都没有网络?则自动关机!主要使用场景:由于自己有一台服务器放