この長く詳細で面白い記事は、--thunder-lock
の歴史とデザインについて説明しています: http://uwsgi-docs.readthedocs.org/en/latest/articles/SerializingAccept.html
しかし、いつそれが必要かを判断するのに役立ちません!
--thunder-lock
が役立つのはいつですか?
まあ...答えはそれほど簡単ではありません。ただし、一般的には、複数のスレッドで複数のワーカーを使用している場合に使用する必要があります。だが...
数十の異なるオペレーティングシステムがあり、雷ロックはそれらの機能に大きく依存しています。雷ロックには少なくとも6つの異なるメカニズムがあり、オペレーティングシステムの機能に基づいてuWSGIによって選択されます。それらのメカニズムのいくつかは他のものより優れています。たとえば、堅牢なpthreadサポートを備えたLinuxを使用している場合、thunder-lockを使用しても99.999999%安全です。
非常にシンプルで小さな例を使用したいくつかのパフォーマンス比較が利用可能です ここ
「hello world」のサンダーロックなしでプロセスの数を増やすと、応答時間が、私が生成したプロセスの数の関数として一見線形的に増加するのは興味深いことです。おそらく、プロセスがフリーであるかどうかをチェックすることは、プロセスの数に比例することです。
わずかなパフォーマンスの低下はありますが、OSがその多くのプロセスを管理する必要があるためですが、雷ロックはそれほど深刻な影響を受けません。