問題タブ [uvloop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - マルチプロセス uvloop サーバー (Sanic) で Tensorflow モデルを提供する方法は?
Flask では問題なく動作しますが、uvloop ベースのサーバー ( Sanic ) でTensorflow モデルを実行すると問題が発生します。Sanic が複数のプロセスを生成する方法と関係があると思いますか? これは、Sanic を 1 つのワーカー (つまり、プロセス) で実行すると、モデルが問題なく提供されるためです。複数のワーカーとワーカーごとのスレッドを使用して、Flask+gunicorn でこの同じモデルを展開したことは困惑していますが。
私が得る特定のエラーは次のとおりです。
少なくとも部分的にhttps://github.com/pytorch/pytorch/issues/2517に関連していると思います
予測を無駄に返すコードを呼び出す前に、sess.as_default()
andを使用してみました。graph.as_default()
私は壁にぶつかり、どのように進めるか迷っているので、試してみるべきいくつかのアイデアであっても、助けていただければ幸いです。
python - slow_callback_duration に関連する asyncio set_result の動作を理解する
asyncio イベント ループとして uvloop を使用して tornado の上に構築された、実行中の Python Web サービスのパフォーマンスをデバッグしようとしています。同時実行性を改善するために、イベント ループをブロックする同期コードが実行されている場所を探しています。この目的のために、サービスごとに debug と slow_callback_duration を次のように構成しました。
このコードを有効にすると、次のような多数のスロー コールバック ログ行が表示されます。
私の特定の python ビルドでは、その行はof/tasks.py:711
内のこの呼び出しを参照しています。__done__callback
gather
このデバッグ ログの行が実際に何を表しているのかをよりよく理解したいと思います。スロー コールバックの動作に関する私の (限られた) 理解から、gather のラッピング フューチャでの実際の実行にset_result
は長い時間がかかるように見えますが、これは少しおかしいようです。このデバッグ ログから詳細を取得したり、遅いコールバックが報告されたときにイベント ループが実際に実行しているコードを特定したりする方法はありますか?