### 服务器内存爆满的解决办法
> 由于我们购买的服务器或者挂机宝在一些情况下,配置很低。基本上都是1核1G的,1G的内存对于想要部署多个服务的我们肯定不够用,解决内存爆红十分有必要,下面是我的一些整理核总结,关于如何缓解内存问题
#### 1. 虚拟内存
在大多数情况下,我们的内存很小,但是硬盘容量却相对宽裕,利用这一点,我们可以牺牲一部分硬盘容量来作为虚拟内存分配给我们的服务器使用,虚拟内存一般为真实内存的1.5到2倍比较合适,由于内存调用的先后顺序,一般是真实内存几乎消耗完的时候才开始全面调用虚拟内存,因此,虚拟内存的使用可能会使主机变的没那么流畅,但是却也避免了爆内存的情况,绝大部分小内存vps或者挂机宝都使用了这一技术。
#### 2. 留出一块空间避免死机
设定Linux内存参数,始终留出一块空间,以避免缓存不释放导致死机。
方案一:可手动清理页文件缓存,但是需手动执行;
```
echo 1 > /pron/sys/vm/drop_caches
```
方案二:我们采用的方法是设定内存最低剩余内存,不让缓存占满
1.使用root用户备份/etc/sysctl.conf文件,准备修改原文件;
2.修改sysctl.conf配置文件
2.1 打开sysctl.conf
```
vim /etc/sysctl.conf
```
2.2 在文件最后加入一行:
```
vm.min_free_kbytes = 2097152
```
(命令意义:设置最小剩余内存,单位KB,这里设置2G)
2.3 保存退出。
3. 使配置文件生效
```
sysctl -p
```
由于第一种方法属于直接清空缓存,可能会造成数据丢失,方案二更佳。
#### 3. 解决异常进程
> 内存持续飙升,可能是有大量内存一直没有释放,考虑僵尸对象,僵尸进程,最简单的就是重启服务器,但是就无法找到罪魁祸首了。
top命令查看活跃进程的资源使用情况。(*top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。*)
ps -aux 查看当前系统的进程状态。
#### 4. ps
本文引用了两篇文章:
- [范一刀的文章](https://cloud.tencent.com/developer/article/1858898)
- [Mr.peter的文章](https://www.cnblogs.com/peteremperor/p/11248807.html)
##### 侵删说明
如果文章有侵权行为,请联系作者立刻删除相关内容