服务器内存占用过高导致数据库服务关闭,网站无法登陆的错误详解

  • 2019 年 11 月 27 日
  • 笔记

服务器内存占用过高导致数据库服务关闭,网站无法登陆的错误详解-制作swap交换区加大内存

这段时间经常网站会奔溃无法打开,返回的错误都是数据库错误,多次整修一般是重启apache之类,今天实在无法忍受这样的经常奔溃,so,请超哥出山检查下服务器的问题。现在记录下整个检测问题和整修的过程!

1:原来经常出现的问题–数据库连接错误(如图)

检查了账号密码之类没有错误,于是ssh进入服务器重启apache和数据库。但是过不了多久还是会复发。。最严重的时候即使重启也无法恢复。。只能回滚服务器。

2:最严重时候的错误信息:

3:请教超哥开始整修:

他检查了内存,然后说,问题不大,就是内存太低而apache2是罪魁祸首,你输入命令

free -m查看内存情况

基本可以说内存全满,而你的swap估计是设置问题没有正常启用,

top -b -n1    :再看看你的进程内存占用情况

3

基本都是apache2占用了大堆。300M。而总共内存在500M。。好霸道的apache。。

4:内存占用过高,开始清理:

本网站开了四个端口,做了4个wordpress的博客和一个online-oj。。这些肯定很占用内存。so。果断清理掉。rm   之。

5:清理完之后就是

整个世界都美好多了。

6:然后开始整swap。

这个就困难多了。SWAP 分区在一些情况下可以提升 Linux 操作系统性能,但在某些情况下又会成为系统运行的瓶颈,

  • 在空间合适处创建swap文件 # mkdir swap
  • # cd swap
  • # dd if=/dev/zero of=swapfile bs=1024 count=10000
  • 10000+0 records in
  • 10000+0 records out
  • # ll
  • # mkswap swapfile
  • # swapon swapfile
  • 然后,,主要是在/proc/sys/vm/swappiness文件我没有写权限,,
  • 解决方案是:输入命令 sysctl vm.swappiness=10

成功!

7:然后再次查看内存。

内存还是比较高,虽然不至于完全奔溃,总是在奔溃的边缘,so,,问题还是出先没有关闭apache的进程,还是考虑下怎么换成nginx吧,。.