22

スタックを Rails 4 に変換しました (はい!)

スレッドセーフなコードを利用したいと考えています。

プーマは起き上がるのに役立ちますが、それを止めることは別の問題のようです:(

マルチスレッドレールは Puma だけですか?

Thin -> EventMachine
Unicorn -> Forking
Puma -> multi-threaded

Mongrel -> don't care
Webbrick -> don't care
4

2 に答える 2

32

いいえ。アルファベット順:

  • IodineHTTP / Websocket サーバーと EventMachine の代替 (kqueue/epoll ベース)
  • Net::HTTP::Server、広告がないにもかかわらず、マルチスレッドをサポート
  • Phusion Passengerはv4 ベータ版からマルチスレッドをサポートしています
  • レインボーズ!マルチスレッドを含む複数の同時実行モデルをサポート
  • ReelCelluloidに支えられた「イベント化された」サーバーであり、「マルチスレッド アプリケーションにも最適に機能し、従来のマルチスレッド ブロッキング I/O サポートも提供します」
  • Thinにはスレッド モードがあり、適切な構成ファイル (例:)--threadedか設定することで有効にできthreaded: truebundle exec thin start --threaded
  • WEBrickはそれ自体がマルチスレッドであるため、オプションとして除外するのは公平ではありません。Rails 組み込みバージョンを使用している場合は、マルチスレッドを有効にするためにモンキー パッチを適用する必要があります。Rails::Server
  • ZbateryはRainbowsに基づいています!Rainbows! のすべての同時実行モデルをサポートします。サポート

現在、MRI Ruby はグローバル インタープリター ロック (GIL)により、一度に 1 つのスレッドしか実行しないことに注意してください。ネイティブ スレッドへのアクセスを提供するJRubyRubiniusなどの別の Ruby ランタイムを使用することによってのみ、マルチスレッドを真に活用することができます。JRuby を使用することにした場合は、調べてみる価値のある JVM 依存サーバーがいくつかあります。

于 2013-08-26T07:32:50.113 に答える
1

トリニダードいいですね。jRuby 開発用の非常に強力なサーバー:

http://blog.jruby.org/2012/04/two-apps-one-trinidad/

http://railscasts.com/episodes/377-trinidad?view=comments

いくつかの優れたベンチマークを次に示します (Trini サーバーは puma より優れています)。

http://carlhoerberg.github.io/blog/2012/03/31/jruby-application-server-benchmarks/

素敵なトリニダード サーバーのセットアップ チュートリアル:

http://blog.jruby.org/2012/04/two-apps-one-trinidad/

于 2014-02-11T16:26:58.027 に答える