给阿里云服务器添加swap交换区,避免OOM Killer

[文章作者:磨延城 转载请注明原文出处: https://mo2g.com/view/124/ ]

查找了一些资料,了解到Linux系统有一种内存保护机制(OOM Killer),避免Linux系统在内存不足的时候,影响系统内核正常运行,就会kill一些“不重要”的进程.内存不够用?不是有虚拟内存(swap交换区)的吗?当我再次观察htop的时候,发现swp为0/0MB!

最近客服那边反映,新注册的用户怎么没有获得相应的奖励了?

我连接服务器htop查看了一下进程,果然,我写的PHP守护进程消失了,一开始以为是自己崩溃了,没在意,就重新运行守护进程。

过了几天,客服突然反映怎么打不开网站了?

我打开主页一看,噢,雪特!Mysql数据库连不上了,马上登录服务器看看怎么回事。htop里找不到Mysql进程了

/etc/init.d/mysql status

也显示Mysql未运行

ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists

当务之急,就是让mysql恢复工作

/etc/init.d/mysql start

网站能正常试用后,我查看了一下log

vi /var/log/messages

发现如下提示

kernel: Out of memory: Kill process 6666 (mysqld) score 147 or sacrifice child

查找了一些资料,了解到Linux系统有一种内存保护机制(OOM Killer),避免Linux系统在内存不足的时候,影响系统内核正常运行,就会kill一些“不重要”的进程。

内存不够用?不是有虚拟内存(swap交换区)的吗?当我再次观察htop的时候,发现swp为0/0MB!

好吧,我突然想起来,通过阿里云安装的系统,似乎不会自动给我们分配swap虚拟内存空间。

在升级服务器配置前,就先给系统加上一块1GB大小的虚拟内存,防止Linux再大开杀戒。

cd /var/
dd if=/dev/zero of=swapfile bs=1024 count=1048576 #创建大小为1G的文件swapfile
mkswap swapfile #格式化虚拟内存文件
swapon swapfile #激活虚拟内存文件

再编辑自动挂载文件,让系统开机的时候自动加载虚拟内存文件

vi /etc/fstab

添加如下代码

/var/swapfile swap swap defaults 0 0

评论:

  1. 暂无评论...
  2. 我来说两句:

      切换  

    磨途歌检测发现,您当前使用的浏览器版本过低,要想使用画板模式,请先更新浏览器

      切换  

    磨途歌随机验证码