Ubuntu服务器swap占用100%导致无法访问


一台Ubuntu服务器,已经正常运行半年有余,最近频繁出现无法提供服务的情况。

服务器上仅安装了公司内部使用的 Wordpress 和 Redmine 系统,访问量很小。

服务器硬件

  • 2.5G 内存
  • 100G 硬盘
  • CPU Intel(R) Xeon(R) CPU X5650 @ 2.67GHz

服务器软件

  • Ubuntu x64 12.04.3 LTS
  • Apache/2.2.22 (Ubuntu)
  • mysql Ver 14.14 Distrib 5.5.32, for debian-linux-gnu (x86_64) using readline 6.2
  • ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
  • PHP 5.3.10-1ubuntu3.8 with Suhosin-Patch (cli) (built: Sep 4 2013 20:00:51)

故障现象

出现故障时,redmine无法访问,ruby报错无法连接数据库。

Ruby 无法连接数据库

远程上服务器,发现swap基本用完,free经常为0(这张截图中还有15M)。

swap 用完

重启 apache2 之后,swap恢复正常

重启 apache2

重启 mysql 的时候发现 mysql 服务已经挂了。

重启 mysql

故障频率

这种现象起先大约2~3天一次,重启mysql 和apache后可正常运行一段时间。最近为几个小时一次。

重启服务器并不能减缓或解决这种现象。

求解决方案和思路,谢谢!

Linux 服务器 Ubuntu

柠檬茶蜀黍 10 years, 10 months ago

访问量很小2.5G的内存没理由用完吧。可以用 这个脚本 看看哪个进程消耗了多少内存。
如果内存真的不够还是加内存吧,现在内存都白菜价了。

悲伤的咏叹调 answered 10 years, 10 months ago

Your Answer