背景:Python:コードのCPU使用量はどのようにしてわかりますか?
が、私はそれが低負荷ではかなりうまく機能して応答し、Djangoアプリケーションを持っていますが、100のユーザー/秒のような高負荷に、それは100%のCPUを消費して、原因CPUの不足のために遅くなります。
問題:アプリケーションのプロファイリング
- は私の関数にかかる時間を与えます。
- 高負荷ではこの時間が長くなります。
- 複雑な計算やCPUを待っているために時間がかかることがあります。
コードで消費されるCPUサイクルを見つけるにはどうすればよいですか?
CPU消費量を減らすと応答時間が長くなります。
- 私は非常に効率的なコードを書かれたと私はいくつかの愚かなコードがCPUを取り、スローダウンを引き起こしている可能性がありますより多くのCPUパワーに
OR
- を追加する必要があるかもしれませんか?
何か助けてください!
アップデート:私は私のWebアプリケーションをプロファイルするのJMeterを使用しています
- が、それは私に2つのリクエスト/秒のスループットを提供します。 [100人のユーザー]
- 1リクエストで100リクエスト対1.25秒の平均時間は36秒です。 4人の労働者
- と
詳細
- 設定nginxの+ Uwsgi 1日にRESTのAPI
- からの応答を使用して、使用されませデータベースないのREST APIの応答をヒットキャッシュされますしたがって、違いはありません。
- json解析に
ujson
を使用する。
知りたい:Pythonの-Djangoのは非常に多くの大規模サイトのための非常に多くのORGSで使用されて
- 、その後、いくつかのハイエンドデバッグ/メモリ・CPUの解析ツールがなければなりません。
- 私が見つけたのは、プロファイリングを実行するコードのカジュアルスニペットでした。
プロファイリングの最初のステップは、ほとんどの時間が費やされている*機能を見て、それがなぜ正当化されたのか、それを減らすことができるかどうかを調べることです。 *時間量(たいていの場合)は*時間の比例量*ほど重要ではありません。 –
すべての時間は、アプリケーション全体に分散されているようです。特定の点は問題のある領域ではないようです。 –
と思われますか?正確な測定をしましたか?ヘルプについては、http://stackoverflow.com/a/582337/851737を参照してください。 – schlamar