我们的一个 API 服务器存在 CPU 使用率问题。API 是用 python 编写的,并在 ubuntu AWS EC2 实例中配置。这个应用程序使用Python 2.7和Django 1。这可以通过代理传递通过端口 80 进行访问。 有时我们在日志中收到 499 个请求,该时间$htop值显示服务器中的 CPU 使用率为 100%。唯一需要的python是在这个服务器中运行。但在AWS云监视监控中,情况并非如此。 只有40%到50%。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23086 root 20 0 815776 96056 12792 S 100 4.7 2:43.12 python
24041 root 20 0 292756 92820 12696 S 8.0 4.5 0:33.73 python
24072 root 20 0 815656 95696 12792 S 5.3 4.7 0:28.27 python
请帮助 TIA
你很可能使用双核服务器,你的python进程是单线程的,并且使用尽可能多的CPU(一个核心(。
因此,htop和cloudwatch之间的差异:
- 在htop中,"100%"表示"一个CPU内核",因此CPU总使用率最高可达200%
- 在 CloudWatch 中,报告的 CPU 使用率是内核之间的平均值,这解释了 50%(一个内核为 100%,另一个内核为 0%(