AWS Linux AMI LAMP Stack 出现不规则内存不足

AWS Linux AMI LAMP Stack 出现不规则内存不足

LAMP 服务器内存异常。需要帮助找出原因。

发生这种情况时,无法通过 SSH 连接到服务器。除非完全停止服务器并从 AWS 控制台启动服务器,否则重新启动 httpd 或 mysqld 无法解决问题。重新启动有时会有所帮助,但大多数情况下没有用。

Web 应用程序:Drupal 7
服务器规格:AWS EC2,2 核,4 GB 内存
堆栈:LAMP 堆栈(AWS Linux、Apache2.4、MySQL 5.5、PHP5.6)
注意:
- 无交换
- 自服务器启动 1 年以来直到最近这种情况从未发生过
- 除操作系统安全补丁和 drupal 安全补丁外,服务器和 Web 应用程序没有重大变化

https://i.stack.imgur.com/cbv8e.png

如上图所示,在不同的时间范围内,内存使用量达到了最大值。为了进一步证明内存使用量是不规则的,我们进行了 2 项测试:

测试 1:克隆具有相同规格的服务器,并让其与生产服务器并发运行。克隆的服务器没有公开访问。
结果:生产服务器仍然遇到不规则的内存不足,但克隆的服务器从未达到超过 35% 的内存

测试 2:将克隆服务器切换为生产服务器(公开访问)
结果:也会遇到不规则的内存不足

从测试来看,两台相同的服务器具有相同的重复任务、cron 作业等,但只有具有公共访问权限的服务器会出现内存不足的情况。

消息日志:https://i.stack.imgur.com/7sAKV.png
MySQL 日志 1:https://i.stack.imgur.com/Vy4Kn.png
MySQL 日志 2:https://i.stack.imgur.com/mtp6z.png
访问日志:https://i.stack.imgur.com/d8BJZ.png
没有相同的问题。内部虚拟连接是 AWS 健康检查。没有内存不足也有类似的日志。
错误日志:https://i.stack.imgur.com/mK3Nm.png
没有发现相同的错误,但只是内存不足通知
Drupal 日志:内存不足期间未记录任何内容

---附加信息 2018 年 7 月 13 日---
顶部内存利用率高时的命令
https://i.stack.imgur.com/pxCuX.png

顶部5分钟后服务器完全重启
https://i.stack.imgur.com/yxWDv.png

注意:
- 重启后,至少 12 - 24 小时内不会再发生此情况

---附加信息 2018 年 7 月 25 日---
每个线程的平均 apache 为 2%,并计算内存使用量并按如下方式在内存使用量上添加 apache 配置。服务器的内存使用量不会超过 70%,但服务器将冻结并且没有响应,直到停止并启动服务器。

启动服务器 3 最小备用服务器 3 最大备用服务器 5 最大客户端 36 服务器限制 36 每个子级最大请求数 4500

相关内容