Node+Express テストサーバーのパフォーマンス

Node+Express テストサーバーのパフォーマンス

1 テスト環境

1.1 サーバーハードウェア

テスト対象のホストはAWSクラウドサーバーです。2つのテストが選択されています

1.1.1 t2.マイクロ

t2.micro は画期的なパフォーマンスを誇る EC2 で、AWS グローバル無料パッケージのサーバーです。構成は以下のとおりです。

t2.micro は画期的なパフォーマンスを誇る EC2 で、AWS グローバル無料パッケージのサーバーです。構成は以下のとおりです。

モデル仮想CPU電子制御ユニットメモリストレージネットワークパフォーマンス料金(時間)
t2.マイクロ1変数1 EBSのみ低〜中0.0945

シングルコア 1G、CPU パフォーマンスは 0.45ECU で、パフォーマンスが向上すると 2ECU に到達できます。ネットワーク性能は20Mbps~100Mbpsと言われている

PS: EC2 コンピューティング ユニット (ECU) – 1 つの EC2 コンピューティング ユニット (ECU) は、1.0~1.2 GHz の 2007 Opteron または 2007 Xeon CPU の計算能力に相当します。

1.1.2 c5.large

次に、評価用に c5.large を選択しました。

モデル仮想CPU電子制御ユニットメモリストレージネットワークパフォーマンス価格
c5.大2 9 4 EBSのみ最大10Gb 0.493

デュアルコア4G、パフォーマンスは9ECUに達する

1.1.3 プレス

プレス機は同じアベイラビリティゾーンにある別の c5.large です。

1.2 テストツール

1.2.1 テスト端末

ab ツールは主にテストに使用されます。 ab ツールは最大 2 億を同時に実行できるため、単一マシンのテストには十分です。

腹筋ツールの使い方については、別のブログを参照してください:https://www.jb51.net/article/231502.htm

1.2.2 サーバー監視

サーバー側の監視は主に AWS バックエンドの cloudwatch サービスを使用し、CPU とメモリの使用量はトップツールでチェックされます。

top コマンドの使い方については、別のブログを参照してください。

1.3 試験方法

Express フレームワークの app.js にテスト ルートを直接追加し、res.end() を直接返します。

2 テストデータ

2.1 c5.ラージ

図から、同時実行数が 2000 の場合、平均応答時間は 874.725 ミリ秒、QPS は約 2286.43 であることがわかります。月間 300 を超える 2 コア 4G サーバーでは、Express フレームワーク自体のパフォーマンスは悪くありません。

2.2 t2.マイクロ

図から、同時実行数が 300 の場合、平均応答時間は 189.191 ミリ秒、QPS は約 1585.7 であり、70 ブロック/月の T2 のパフォーマンスはかなり良好であることがわかります。ただし、同時実行数が 1000 に達すると、全体的なパフォーマンスがあまり安定しないことも図からわかります。

3 関連文書

IoT デバイスの同時接続数を推定するブログ:

https://www.jb51.net/article/231516.htm

ストレステストツールab:

https://www.jb51.net/article/231502.htm

ストレステストの指標と方法:

https://www.jb51.net/article/231518.htm

以上が、node+Express を使用してサーバーのパフォーマンスをテストする方法の編集者による紹介です。皆様のお役に立てれば幸いです。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • VPSサーバーでよく使われるパフォーマンステストスクリプトの概要
  • Nginx サーバーでパフォーマンス テストを実行するための Go プログラムの書き方

<<:  MySQL で CURRENT_TIMESTAMP を使用する方法

>>:  JS ベースのページフローティングボックスを実装するためのサンプルコード

推薦する

Vueメソッドに基づくシンプルなタイマーの実装

Vueのシンプルなタイマーを参考にしてください。具体的な内容は以下のとおりです原理: setInte...

トップ 10 Js 画像処理ライブラリ

目次導入1. 異食症2. レナ3. コンプレッサー4. ファブリック5. ぼかす6. 画像を結合する...

Vueのカスタムイベントコンテンツ配信の詳細な説明

1. これは理解するのが少し複雑なので、原理を注意深く読んで自分で入力していただければ幸いです。 &...

React における同期および非同期 setState の問題のコード分析

React は Facebook の社内プロジェクトとして始まりました。 React の出現は革命的...

MySql 自動切り捨て例の詳細な説明

MySql 自動切り捨て例の詳細な説明友人が質問しました。プロジェクト内で挿入または更新ステートメン...

CSS の画像パスの問題に関する議論 (同じパッケージ/異なるパッケージ)

CSS ファイルでは、背景を使用する、つまり背景画像を追加する必要がある場合があります。これは通常、...

ページにデータを表示するReactメソッド

目次親コンポーネントリストボックスリストコンポーネントボタンコンポーネント PageButton昨年...

CSS3 クリックボタン円形進行ティック効果実装コード

目次8. CSS3 クリックボタンの円形進捗チェック効果8.1 画像プレビュー8.2 index.h...

HTML CSS JS はタブページのサンプルコードを実装します

コードをコピーコードは次のとおりです。 <html xmlns="">...

RedHat 6.5/CentOS 6.5 に MySQL 5.7.20 をインストールするための詳細なチュートリアル

rpmインストールパッケージをダウンロードするMySQL公式サイト: https://dev.mys...

vue の webpack -v エラー解決の概要

XiaobaiはVueについて学び、次にwebpackについて学び、そしてさまざまなものをインストー...

要素のel-tree複数選択ツリー(チェックボックス)親子ノードの関連付けが関連付けられていません

属性チェック-厳密公式ドキュメントでは、チェックボックスが表示されるときに親項目と子項目を互いに関連...

浮遊する雲のアニメーションを実現するCSS3

操作効果 html <ヘッド> <メタ文字セット='UTF-8'&...

デュアル VIP を使用した高可用性 MySQL クラスタの構築

目次1. プロジェクトの説明: 2. プロジェクト環境: 2. プロジェクトの手順: 3. プロジェ...

WeChatアプレットトラック再生の実装と遭遇した落とし穴の詳細な説明

WeChat アプレットの軌跡再生では、主に線描画操作にポリラインを使用し、車の移動操作にマーカーを...