1

Django ORMを使用して、ipythonシェルでいくつかのビッグデータクエリをいじっています。これは、OSX上のVMwareFusionのDebian6 VM上にあり、VMは、ホスト上の4コアHT i7の4コアまたは8コア(設定で遊んだ)へのアクセスを許可されています。

進行状況を一番上で見ると、たとえばPythonシェルで「結果の結果:do_query()」を実行すると、Pythonとpostgresプロセスの1つが常に同じ物理CPUコアに配置されているように見えます-それらの合計CPU使用率が100%を超えることはなく、Pythonは通常65%からpostgresの25%程度です。VMのiowaitはそれほど高くありません。

私は彼らが常に同じコアにいるとは思いませんが、確かにそれは見えます。最終的にこれをどのようにスケーリングするかを考えると、Pythonプロセスとpostgressワーカーをより最適にスケジュールすることをお勧めします。何か洞察はありますか?

4

1 に答える 1

4

現在、コードが私が思うように機能する場合、Postgresは常にPythonがクエリを送信するのを待っているか、PythonはPostgresが応答を返すのを待っています。両方が同時に作業を行うという状況はないため、一度に1つだけが実行されます。

マシンをより頻繁に使用し始めるには、Python側で何らかのマルチスレッドを実装する必要があります。あなたはあなたの質問が何であるかについて多くの詳細を与えていないので、それがどのように見えるかを言うのは難しいです。

于 2012-11-30T02:08:07.247 に答える