2

私は一連の自動負荷テスト スクリプトに取り組んできましたが、平均すると、Heroku dyno (この場合は Hapi. dyno が 4 つの使用可能な CPU を持っていると報告しているにもかかわらず、すぐに応答を返す js サーバー)。1 プロセスと 2 プロセスの違いは非常に大きく、スループットがほぼ 100% 向上します。

私の推測では、Intel CPU / ハイパースレッディングは、実際に利用可能なコア数の 2 倍を報告しており、Node はスケジューリングのメリットからあまり恩恵を受けていませんが、Heroku dyno の仕様に関する情報はほとんどないようです。これは正確ですか、それとも I/O のないサーバーで 2 つのスレッドでパフォーマンスが上限に達する別の理由がありますか?

4

1 に答える 1

2

これにはいくつかの理由があります。

  • Heroku dyno は共有 EC2 サーバーで実行されています。これは、CPU が X 人の他のユーザーとの間で分割されていることを意味します。
  • ネイバーがどれだけの CPU を使用しているかに応じて、パフォーマンスが向上または低下する可能性があります。
  • CPU は、Heroku (およびノー​​ド全般) で最大のボトルネックになるでしょう。

CPU を集中的に使用する場合は、dyno 間で水平方向にスケーリングする必要があります。IO 集中型の作業を行っている場合は、時間の経過とともに大きな dyno に垂直方向にスケーリングしても問題ないはずです =)

更新: ここにさらに情報を追加するには、これが仮想化の仕組みです。EC2 ボックス (およびすべての Linux サーバー) は、VM ではなく、コア マシンの CPU の総数を常に報告します。それが役立つことを願っています

于 2014-11-21T07:05:06.540 に答える