bjoernはuwsgiと比較してどのように機能していますか?
どちらもCで書かれています。
違いは何ですか?
少し速くなるはずです。 uwsgiは、あらゆる種類のものと簡単に統合したい場合に便利です。 bjoernは、実際には単なるスタンドアロンのベアボーンWSGIサーバーです。
@jonashaagベンチマークを実施する時間はありますか?
サーバーのパフォーマンスは実際にはごくわずかです。 時間の95%は、Pythonインタープリター/「Pythonコード」に費やされています。 数ミリ秒節約でき、応答時間を200ミリ秒から195ミリ秒に短縮できます。
ベンチマークとパフォーマンスの詳細に基づいて決定を下すべきではありません。 本当に重要なのは、スタックにどれだけうまく統合できるかということです。 セットアップと保守はどのくらい簡単ですか? それはどれくらい信頼できますか? 本当に必要な場合、バグを修正するのはどれくらい難しいですか? コードの品質はどれくらいですか? コミュニティはどうですか? などなど
ビョルンが本当に輝いているのはどこだと思います
私はあなたがそれを生産に使うべきではないと言っているのではありません。 ほとんどの場合、既存のセットアップがあり、WSGIアプリケーションを何らかの方法で統合する必要があります。 nginxの場合、uWSGIは統合に関してさらに多くの機能を提供します。 しかし、おそらくあなたはこれらをまったく必要としないでしょう、そしてあなたはbjoernでも大丈夫です:)
私は自宅の警報システム用に小さなPythonボトルベースのアプリを実行しています。 Webサーバーは、単一のプロセスとスレッドで実行されます。 少し前に、bottleがネイティブにサポートする17台のサーバーすべてのベンチマークを行い、bjoernが大幅に最高のパフォーマンスを発揮することを発見しました。 ロギングを無効にした後、meinheldは同様でした(<1%)が、これら2つは他のすべてよりもはるかに優れていました。 私は最近、それをuwsgiでテストしました。これは、明らかに3分の1でしたが、それでもbjoernよりも約25%遅くなりました(私のアプリの場合)。
@bulletmarkベンチマークはどのように見えましたか? もちろん、Hello Worldアプリケーションのベンチマークを行う場合、Webサーバーのパフォーマンスはさらに重要になります。 しかし、データベースアクセスやその他のI / Oを伴う作業を行うとすぐに、それは無視できると思います。
@jonashaag大量のリクエストを処理している場合はそうではありません。そのため、WSGIサーバーは非常に高速である必要があります。
私のベンチマークは、私のホームアラームのステータスと履歴のhtmlページを返す私の小さなラズベリーパイボトルアプリに対する単純な「ab-n400」でした。 確かに、データは内部の値とリストから取得されるだけです。 もう一度やり直しました。bjoern= 134リクエスト/秒、meinheld = 132、uwsgi = 100、cherrypy = 79、python wsgiref = 62。しかし、ベンチマークは簡単なので、最速のサーバーを選択することもできます。
ここにいくつかのベンチマークが参照されています:http: //benchmarks.codeart.io
@paulochequeとてもいいです。 しかし、なぜ1人のワーカーだけでベンチマークを行ったのですか?
はい、1つだけです。
ps:連絡先画面を追加して、誰もが改善のための提案を送信できるようにします
@paulochequeええ、でもなぜ1人のワーカーだけでベンチマークを行ったのですか?
はい
正直なところ、これらの結果はあまり信頼できるようには見えません。 複数の実行を使用しましたか? (構成ごとに少なくとも10)
さらに、 @ thedrowが言ったことは、おそらく1、2、4、…のワーカーのベンチマークを含める必要があります。
フィードバックをお寄せいただきありがとうございます。 TODOリストの「トライアル」はそのページにありました。 フィードバックをお寄せいただきありがとうございます!
1つのツールセットについて、複数のワーカーでテストしました。 これも自動化する必要があります! 再度、感謝します!
複数の実行(構成ごとに2つ)を使用して50kの要求でテストを再度実行しました。 私はいくつかの調整を行いましたが、私は常にテストを改善しようとします! フィードバックをありがとう、そしていつでもより多くの提案を自由に送ってください! 一番、
いくつかの改善:http: //benchmarks.codeart.io/?filter_server = bjoern
突然ここに投稿される古い分析である@ saitam1 。 BjoernはPython3をサポートしていないため、現在はほとんど関係ありません。
@bulletmark Python3をサポートする新しいリリースがリリースされました:)
@jonashaag頭を上げてくれてありがとう。 Python3アプリをBjoernを使用するように変更しました。 正常に動作しているようです。 時間の経過とともにどのように立ち上がるかをお知らせします。
マルチコアを使用するようにBjoernを構成する必要があることをどこかで読みましたが、どのように/何らかのwikiリファレンス/何かについてのアイデアはありますか?
Bjoernの推奨セットアップは何ですか?
Linuxで受信ステアリングを使用できます。https://github.com/jonashaag/bjoern/blob/3b46a6bba24929a3413eaa1f4da66bedc7ce9dff/bjoern.py#L24および/またはフォークを参照してください。https://github.com/jonashaag/bjoern/blob/を参照してください。
最も参考になるコメント
サーバーのパフォーマンスは実際にはごくわずかです。 時間の95%は、Pythonインタープリター/「Pythonコード」に費やされています。 数ミリ秒節約でき、応答時間を200ミリ秒から195ミリ秒に短縮できます。
ベンチマークとパフォーマンスの詳細に基づいて決定を下すべきではありません。 本当に重要なのは、スタックにどれだけうまく統合できるかということです。 セットアップと保守はどのくらい簡単ですか? それはどれくらい信頼できますか? 本当に必要な場合、バグを修正するのはどれくらい難しいですか? コードの品質はどれくらいですか? コミュニティはどうですか? などなど
ビョルンが本当に輝いているのはどこだと思います
私はあなたがそれを生産に使うべきではないと言っているのではありません。 ほとんどの場合、既存のセットアップがあり、WSGIアプリケーションを何らかの方法で統合する必要があります。 nginxの場合、uWSGIは統合に関してさらに多くの機能を提供します。 しかし、おそらくあなたはこれらをまったく必要としないでしょう、そしてあなたはbjoernでも大丈夫です:)