首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django应用程序的高CPU使用率

Django应用程序的高CPU使用率
EN

Stack Overflow用户
提问于 2012-05-30 03:31:42
回答 2查看 5.3K关注 0票数 2

我已经创建了一个相当简单的Django应用程序,它在某种程度上会产生很高的CPU负载:呈现一个带有简单模型列表(20个)的简单通用视图,每页5-6个SQL查询会产生一个apache进程,它会使CPU负载达到30% - 50%。虽然内存使用相当正常(30MB),但据我所知,CPU负载并不正常,这不是因为apache/wsgi设置或其他原因,当我通过runserver运行应用程序时,同样的CPU负载也会发生。

因为我是Django的新手,所以我想问: 1)对于Django应用程序来说,这30-50%的数字是不是很常见?(Django 1.4,ubuntu 12.04,python 2.7.3) 2)如何分析CPU负载?我在这里使用了一个配置文件中间件:http://djangosnippets.org/snippets/186/,但它只显示ms数字,而不显示CPU负载数字,也没有什么特别之处,那么我如何识别是什么消耗了如此多的CPU能力呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-30 06:09:19

CPU使用率本身并不能说明你的应用程序的效率。衡量性能的更重要的指标是你的应用程序每秒可以处理多少请求。你的机器的处理器类型自然也会对结果产生巨大的影响。

我建议你在多个并发请求的情况下运行ab,并将每秒的请求数与一些基准测试结果进行比较(网络上应该有很多)。ab将尝试测试最大吞吐量,因此自然会充分利用其中一个资源(瓶颈),通常是disk-io。举个例子,如果你碰巧CPU使用率接近100%,这可能意味着你在某个地方浪费了CPU (reqs/s是低的),或者你已经很好地优化了disk-io (reqs/s高)。

票数 0
EN

Stack Overflow用户

发布于 2012-05-30 08:06:05

查看%CPU列不是很准确。我确实经常看到CPU达到50%-100%的峰值。它并不表示cpu被使用了多长时间,只是表示我们在该特定时刻达到了该值。这些值属于最小/最大值,而不是您的平均cpu使用率。

另一个重要的部分:假设你像我一样有4个核心,这意味着top上的30-50%的数字是最大的400%。顶部50%意味着一个核心的50%,所有四个核心的12.5%,以此类推。

您可以在顶部按1来查看各个核心cpu的数字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10805481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档