AWS EC2 t3.micro实例每隔数小时无响应 求排查建议
排查建议
1. 优先排查内存资源耗尽问题
t3.micro实例仅含1GB内存,WordPress+Apache+MySQL的组合极易因内存占满触发系统OOM Killer(内存不足杀手),强制终止Apache进程导致站点失联。
- 验证OOM触发记录:执行
grep -i "out of memory" /var/log/syslog,若出现类似Out of memory: Killed process XXXX (apache2)的条目,即可确认。 - 临时缓解:确认EC2实例的突发CPU信用已启用(默认开启),避免CPU资源耗尽间接加剧内存压力;长期建议升级实例规格至t3.small(2GB内存)。
- 内存优化措施:
- 安装WordPress缓存插件(如WP Super Cache、LiteSpeed Cache),减少动态请求对内存的消耗。
- 禁用未使用的插件/主题,尤其是资源占用高的工具类插件。
- 调整MySQL配置:在
my.cnf中将innodb_buffer_pool_size设为256MB左右,降低数据库内存占用。
2. 调整Apache prefork进程配置
日志中多次出现Apache启动/关闭记录,prefork模式下进程数过高会快速耗尽内存:
- 查看当前配置:执行
cat /etc/apache2/mods-available/mpm_prefork.conf,重点关注MaxRequestWorkers参数(默认值可能超出t3.micro承载能力)。 - 修改配置:将
MaxRequestWorkers降至50以内,同步调整ServerLimit,示例配置:<IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 40 MaxConnectionsPerChild 1000 </IfModule> - 重启Apache生效:
sudo systemctl restart apache2
3. 修复邮件服务缺失问题
日志中出现sh: 1: /usr/sbin/sendmail: not found,WordPress表单提交时调用sendmail失败可能导致请求阻塞,积累后拖垮服务:
- 安装sendmail:执行
sudo apt update && sudo apt install sendmail,完成后重启Apache。 - 替代方案:使用WP Mail SMTP插件,配置第三方邮箱(如Gmail、企业邮)的SMTP服务,绕过本地sendmail依赖,同时提升邮件送达率。
4. 处理Elementor Pro的PHP警告
虽然PHP警告本身不会直接导致崩溃,但存在潜在代码逻辑问题,可能引发内存泄漏或请求异常:
- 将Elementor Pro升级至最新版本,官方通常会修复这类数组键未定义的已知问题。
- 临时禁用Elementor Pro,观察站点是否仍出现崩溃,排除插件导致的异常。
5. 排查系统/平台层面的终止事件
- 查看SIGTERM信号来源:执行
grep -i "sigterm" /var/log/syslog,确认Apache的终止信号是来自系统OOM、手动操作还是定时任务。 - 检查EC2实例历史:在EC2控制台「实例历史」中查看是否有AWS自动重启实例的记录(如状态检查失败触发的自动恢复)。
- 排查定时任务:执行
crontab -l,确认是否有定时脚本在终止Apache进程。
内容的提问来源于stack exchange,提问作者Roy
相关产品推荐
相关产品推荐

