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

 午夜呻吟的诱惑 发布于 2022-11-05 18:20

一台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报错无法连接数据库。

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

重启 apache2 之后,swap恢复正常

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

故障频率

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

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

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

4 个回答
  • kernel说的很对,你最开始占用超标apache的内容占用什么样?
    感觉上apache不应当这样,是在不知道的话尝试自己编译一个apache跑着试试?

    2022-11-12 01:56 回答
  • 你重启apache以后,内存的free也增长上去了,你最开始的截图里面没有看到apache的内存使用量是多少,按照内存使用量排序可以看一下apache和mysql消耗内存的增长速度。如果当机几秒钟没关系 可以考虑用cron job 在夜间定期重启apache和mysql。

    2022-11-12 01:56 回答
  • 以我的估计,这个内存怎么想都是够用的。我的思路是空载冷启动系统,然后一个一个服务往上挂,看挂到哪个服务出问题

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

    2022-11-12 01:56 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有