您的位置:首页 > 运维架构 > Linux

linux服务器内存不够用怎么办?

2021-03-01 22:21 676 查看

服务器随着运行时间的增加,占用内存会逐渐增加。如果服务器内存小,就很容易出现内存占满,系统变慢,甚至是卡死的情况。一个办法是增加物理内存,但这涉及到费用、停机、开机箱等。这里有一个处理方案,可供借鉴。效果好的话,可以不用买内存条了哈哈。

如果你分析各个进程占用内存大小,然后把它们加一起,发现并不等于总占用内存的大小。那为什么free -m指令显示剩余的内存那么小呢?内存用来做什么了呢?

原来操作系统运行中会自己选择部分数据缓存到内存中,free -m结果中

-/+ buffers/cache: 后面统计的就是缓存数据的情况

缓存使用的物理内存加上进程占用物理内存,才是总的物理内存。

为了保护服务不会因为物理内存占用过高而卡死,可以定时计划crontab中每隔一小时清空操作系统的缓存数据,配置如下。表示每当到整点的45分时,执行

echo 3 > /proc/sys/vm/drop_caches 命令,清除操作系统缓存。

[root@localhost ~]# crontab -l

45 * * * * echo 3 > /proc/sys/vm/drop_caches

事实表明,清除缓存不但没有降低系统的速度,速度还明显提高了。当然,我的实验场景是物理内存本来就小只有8G,并且系统访问用户不大的情况。其它系统是否适用还没有数据支持。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: