2

我创建了一个非常简单的 Django 应用程序,它在一定程度上产生了高 CPU 负载:使用简单模型列表(其中 20 个)和每页 5-6 个 SQL 查询呈现一个简单的通用视图,产生一个 apache 进程,它将 CPU 负载增加 30 % - 50%。虽然内存使用量还不错(30MB),但据我了解,CPU 负载并不好,这不是因为 apache/wsgi 设置或其他原因,当我通过 runserver 运行应用程序时会发生相同的 CPU 负载。

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

4

2 回答 2

0

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

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

于 2012-05-29T22:09:18.623 回答
0

查看 %CPU 列不是很准确。我当然一直看到 50%-100% CPU 的峰值。它并不表示 CPU 使用了多长时间,只是我们在那个特定时刻达到了那个值。这些将属于最小/最大数字,而不是您的平均 CPU 使用率。

另一个重要的部分:假设您像我一样有 4 个内核,这意味着 30-50% 的数字top超出了最大值 400%。顶部的 50% 意味着一个核心的 50%,四个核心的 12.5%,等等。

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

于 2012-05-30T00:06:05.163 回答