2017-04-11 5 views
4

私たちはスタートアップであり、現在、Webアプリケーション開発フレームワークとしてF#でSUAVEを使用するための評価モードです。私は、アプリケーションの開発にSUAVEフレームワークを使用することに非常に熱心です。 SUAVEが実稼働環境にあるかどうか、同時ユーザーの場合はOWINと比較してパフォーマンスベンチマークが行われているかどうか、Webサーバーが処理できるユーザートラフィックの数はわかります。数百万のユーザートラフィックを伴うWebアプリケーション開発のためのSUAVEの準備は整っていますか?

+0

これは実際にあなたの特定のアプリケーション、セットアップ(公開Suaveエンドポイント、IIS ...?)、サーバーの数などをホストしているので、あなた自身の概念証明とパフォーマンス測定をお勧めします。一般に、Kestrelサーバーは生のHTTP配管ではるかに高速になりますが、Suaveは依然としてOKです。 –

+0

Suestの正式なアドオンはKestrel/ASP.NETにプラグインできるようになっています(それはもっと速いかどうかわかりませんが、調べる価値があります)。 :https://github.com/SuaveIO/Suave.AspNetCore –

+0

@JoeClay私が見た最初の報告では、Kestrelの上のSuaveは普通のSuaveよりもはるかに高速です。プロダクションシステムの計画について考えるときには、バージョン番号が0.Xのリリースに注意する必要があります。 – TheInnerLight

答えて

0

このスレッドは現在8ヶ月ですが、WebサーバーとしてSuaveを使用した経験を共有したいと考えていました。

まず、単純なベンチマークに基づいてパフォーマンスを測定しても、複雑なシステムの全体的なパフォーマンスについて真実は分かりません。 しかし、Suaveを使用する場合、アプリケーションでボトルネックになることはほとんどありません。 アーキテクチャ全体、リクエストとレスポンスの間のメカニックスの合計、実装の詳細(リストのランダムアクセスはかなり遅いなど)によって多くの部分が異なります。

私は現在3つのプロジェクトでSuaveを使用していましたが、常に大成功を収めました。 これらのすべてでは、パラレル化とマルチスレッド化が頻繁に使用されていました。 2つはNginx-Proxyの背後にあるSuaveによって直接実行される場所で、IISを使用していました。 IISでの実行では、パフォーマンスに測定可能な影響はありませんでした。 パフォーマンス上の問題が発生したとき、Suaveは決してそれらを探す場所ではありませんでした。

F#の優れた並行性と並列化機能を利用する場合、アプリケーションは垂直方向のスケーリングの恩恵を受けます。 たとえば、AWSではやや悪い結果を出していましたが、クアッドコアPentiumプロセッサ搭載のノートパソコンではうまくいきました。 しかし、これもまたSuaveとは関係ありません。 実際、それはあなたの方法からかなり外に出ます。

Suave自体は素晴らしい選択です。約2年後、私はSuaveがトラブルの原因になるエッジケースに遭遇しませんでした。

私の言いたいことは、簡単なWebサーバーとサービスに基づいていることです。 Suaveは、RPCまたはREST-APIを提供するためにかなり平坦なWebレイヤーに使用されました。
ストリーミングやソフトリアルタイムアプリケーションのような他のタスクでは、別の方法が必要になることがあり、Suaveには適していない可能性があります。

関連する問題