我的EC2 t2.small实例CPU利用率每天同时达到100%,大约在服务器时间21:25到21:30之间。
我检查了syslog和apache日志,发现在此期间没有异常。另外,我检查了我的cron作业和系统cron作业,发现当时没有每日的cron作业运行(/etc/cron.daily计划为6:25,并根据日志在该时间正确执行)。
有什么想法会导致这种行为?
操作系统:Ubuntu 16.04
答案 0 :(得分:0)
经过大量搜索,日志记录,反复试验和错误,我发现apache2引起了这种情况。 由于某些原因,该过程有时会以100%的速度挂起,特别是在ssllabs.com上执行SSL测试时。在Apache error_log中找到此行:
[ssl:error] [pid 29110] [客户端64.41.200.104:58242] AH02042:拒绝客户端发起的重新协商
同样,在经过反复试验后,解决此问题的解决方案是更新/etc/apache2/mods-available/ssl.conf中的SSLCipherSuite apache指令
这是我使用的值: SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA -AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
此更改之后,该问题不再重复。 我希望这会帮助处于相同情况的其他人。
答案 1 :(得分:0)
我的服务遇到了类似的问题(每日 cron 作业的 CPU 峰值)。结果证明,logrotate
每天早上都在使用 pbzip2 压缩一个非常大的日志文件。对代码进行了更改以减少垃圾邮件日志,从而解决了问题。