2

私はかなり単純な Django アプリを作成しましたが、これはいくらか CPU 負荷が高くなります: 単純なモデルのリスト (20 個) を含む単純な汎用ビューをレンダリングし、ページごとに 5 ~ 6 個の SQL クエリを実行すると、CPU を 30 負荷する apache プロセスが生成されます。 % - 50%。メモリ使用量はかなり問題ありませんが (30MB)、CPU 負荷は私の理解では問題ありません。これは apache/wsgi 設定などによるものではありません。runserver 経由でアプリを実行すると、同じ CPU 負荷が発生します。

私は Django を初めて使用するので、質問したいことがあります。(Django 1.4、ubuntu 12.04、python 2.7.3) 2) CPU 負荷をプロファイルするにはどうすればよいですか? ここからプロファイル ミドルウェアを使用しました: http://djangosnippets.org/snippets/186/しかし、CPU 負荷の数値ではなくミリ秒の数値のみが表示され、特別なことは何もありませんでした。

4

2 に答える 2

0

CPU使用率自体は、アプリの効率を示していません。パフォーマンスを測定するためのより重要な指標は、アプリが処理できる1秒あたりのリクエスト数です。マシンに搭載されているプロセッサの種類も、当然、結果に大きな影響を与えます。

複数の同時リクエストを実行し、リクエスト/秒の数をいくつかのベンチマークと比較することをお勧めしますab(ネット上には多数あるはずです)。abは最大スループットをテストしようとするため、リソースの1つが完全に使用されるのは当然です(ボトルネック)。通常、これはdisk-ioです。例として、CPU使用率が100%に近づいた場合は、どこかでCPUを浪費している(要求/秒が低い)か、disk-ioを適切に最適化している(要求/秒が高い)ことを意味します。

于 2012-05-29T22:09:18.623 に答える
0

%CPU 列を見るのはあまり正確ではありません。確かに、常に 50% から 100% の CPU のスパイクが見られます。これは、CPU が使用されている時間を示すものではなく、その特定の瞬間にその値に達したことを示しています。これらは、平均的な CPU 使用率ではなく、最小 / 最大の数値に分類されます。

もう 1 つの重要な点: 私のように 4 つのコアがあるとします。これは、30 ~ 50% の数値topが最大の 400% から外れていることを意味します。上部の 50% は、1 つのコアの 50%、4 つすべての 12.5% などを意味します。

上部の 1 を押すと、個々のコア CPU の数値が表示されます。

于 2012-05-30T00:06:05.163 に答える