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 ベースのページフローティングボックスを実装するためのサンプルコード

推薦する

React diffアルゴリズムソースコード分析

目次単一ノード差分単一要素を調整するマルチノード差分調整子配列ノードが移動したかどうかを判断するには...

ラジオボタンと複数選択ボタンは画像を使用してスタイル設定されます

ラジオ ボタンや複数選択ボタンにスタイルを追加する方法や、ボタンを大きくする方法を尋ねる人を以前見か...

Chromeブラウザの自動パスワード保存プロンプト機能を無効にする方法

注: Web 開発では、フォームに autocomplete="off" を追加...

Linux でユーザーをグループに追加する 4 つの方法の概要

序文Linux グループは、Linux でユーザー アカウントを管理するために使用される組織単位です...

JavaScript オブジェクト (詳細)

目次JavaScript オブジェクト1. 定義2. オブジェクトの分類3. オブジェクトを定義する...

docker システムコマンドセットの使用

目次docker システム df docker システム プルーンdocker systemc 情報...

Mariadb リモート ログイン構成と問題解決

序文:インストール プロセスについては詳しく説明しません。問題に直接触れましょう。MySQL のリモ...

CSS 3.0 テキストホバージャンプ特殊効果コード

これは、CSS 3.0 で実装されたテキストのホバーとジャンプ効果です。効果は次のとおりです。 以下...

MySQL の 4 つのトランザクション分離レベルを例を使って分析する

序文データベース操作では、同時データ読み取りの正確性を効果的に保証するために、トランザクション分離レ...

MySQL マスタースレーブレプリケーションの実践の詳細説明 - GTID ベースのレプリケーション

GTIDベースのレプリケーション導入GTID ベースのレプリケーションは、MySQL 5.6 以降に...

雨滴効果を実現する JavaScript キャンバス

この記事の例では、雨滴効果を実現するためのキャンバスの具体的なコードを参考までに共有しています。具体...

Linux インデックスノード inode の詳細な説明

1. inodeの紹介inode を理解するには、まずファイル ストレージから始める必要があります。...

CSS3は、欠けた角の長方形、折り畳まれた角の長方形、欠けた角の境界線を実装しています。

序文数日前、偶然、コーナーの四角形が欠落している機能に遭遇しました。最初に頭に浮かんだのは、必要な場...

Ubuntu インストール時にブラックスクリーンが表示される場合の解決策 (3 種類)

私のコンピューターのグラフィック カードは Nvidia グラフィック カードです。再起動後、画面に...

Vueモバイル端末の適応化問題の詳細説明

1. vue uiでプロジェクトを作成する 2. 基本設定項目を選択する 3. プロジェクトを実行す...