【问题标题】:AWS EC2 t2.small Instance CPU utilization spikes to 100% at regular interval every dayAWS EC2 t2.small 实例 CPU 利用率每天都会定期达到 100%
【发布时间】:2019-05-31 06:17:48
【问题描述】:

我的 EC2 t2.small 实例 CPU 利用率每天都在同一时间达到 100%,大约在服务器时间 21:25 到 21:30 之间。

我检查了 syslog 和 apache 日志,在那段时间没有发现任何异常。另外,我检查了我的 cron 作业和系统 cron 作业,发现当时没有每天运行的 cron 作业(/etc/cron.daily 安排在 6:25 并且根据日志在那个时间正确执行)。

有什么想法会导致这种行为吗?

操作系统:Ubuntu 16.04

【问题讨论】:

  • 您确定这不是 6:25 的 cron 作业,并且服务器和 CloudWatch 控制台之间的时区差异使它看起来像是 21:25?
  • 是的,我已经仔细检查过了。每天的cron在每天6:25记录在syslog中,spike在21:26左右记录在同一个syslog文件中,所以时间应该不一样。顺便说一句,CloudWatch 控制台在我的时区显示峰值时间为 2:25。
  • 我不知道有谁能告诉你是什么进程导致了 CPU 峰值。您需要使用 top 之类的东西来捕获在那段时间使用 CPU 的确切进程。
  • 是的,我已经设置了 cron 来执行 top 并将输出保存到文件中,只是我必须等到明天才能得到结果。我想也许有人有类似的经历,并且可以就通常对此的怀疑提供一些想法。

标签: amazon-web-services amazon-ec2 cpu-usage


【解决方案1】:

经过大量搜索、记录、反复试验,我发现 apache2 导致了这种情况。 出于某种原因,该进程在某些情况下会以 100% 的速度挂起,特别是在 ssllabs.com 上执行 SSL 测试时。在 Apache error_log 中找到这一行:

[ssl:error] [pid 29110] [client 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

在此更改之后,问题不再重复。 我希望这可以帮助处于相同情况的其他人。

【讨论】:

    【解决方案2】:

    我的服务遇到了类似的问题(每日 cron 作业中的 CPU 峰值)。原来logrotate 每天早上都在使用 pbzip2 压缩一个非常大的日志文件。已更改代码以减少垃圾邮件日志,从而解决了问题。

    【讨论】:

      猜你喜欢
      • 2012-12-08
      • 2019-11-22
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 2017-03-17
      相关资源
      最近更新 更多