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

转自 https://mo2g.com/view/124/

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

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

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

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

1

/etc/init.d/mysql status

也显示Mysql未运行

1

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

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

1

/etc/init.d/mysql start

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

1

vi /var/log/messages

发现如下提示

1

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再大开杀戒。

1

2

3

4

cd /var/

dd if=/dev/zero of=swapfile bs=1024 count=1048576 #创建大小为1G的文件swapfile

mkswap swapfile #格式化虚拟内存文件

swapon swapfile #激活虚拟内存文件

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

1

vi /etc/fstab

添加如下代码

1

/var/swapfile swap swap defaults 0 0

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值