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

推薦する

JavaScript はパスワードボックスの入力検証を実装します

サーバーの負荷を軽減するために、ユーザーが入力するときにフロントエンドページで簡単な検証を実行する必...

弾力性のあるナビゲーション効果を実現するJavaScript

この記事では、弾性ナビゲーション効果を実現するためのJavaScriptの具体的なコードを参考までに...

チャットバブル効果を実現するCSS

1. レンダリングJD効果シミュレーション効果 2. 原則高さと幅が0のボックスを用意しますこのボ...

Ubuntu 20.04にSogou入力方式をインストールする詳細な手順

1. Fcitx入力フレームワークをインストールする関連する依存ライブラリとフレームワークは自動的に...

Centos6.5 に zabbix2.4 をインストールするチュートリアル図

centos-DVD1バージョンシステムの固定IPアドレスは192.168.159.128で、cen...

MySQLデータベースインデックスの詳細な紹介

目次マインドマップシンプルな理解インデックスモデルの進化二分探索木自己バランス型二分木BツリーB+ ...

Bootstrap3.0 学習ノートテーブル関連

この記事では、Webサイトを作ったことがある人にとっては馴染みのあるテーブルについて主に説明します。...

MySQL関連のツールをいくつかお勧めします

序文:インターネット技術の継続的な発展に伴い、MySQL 関連のエコシステムはますます充実し、ますま...

CentOS 6.9 で glibc ダイナミック ライブラリをアップグレードする詳細なプロセス

glibc は、gnu によってリリースされた libc ライブラリ、つまり c ランタイム ライブ...

Dockerコンテナの中国語言語パックの設定の問題を解決する

Dockerでdocker search centosを使用する場合docker pull dock...

MySQL 8.0 の統計が不正確である理由

序文Oracle であれ MySQL であれ、新バージョンで導入された新機能は、一方では製品の機能性...

CSSは固定比率のブロックレベルコンテナを簡単に実装できる

H5 レイアウトを設計する場合、通常はバナーに遭遇することになります。例えば、2:1 で表示したい場...

MySQL 8.0 の非表示インデックスの詳細な説明

言葉MySQL 8.0 は最初のバージョンから 4 年を経てリリースされました。バージョン 8.0 ...

vue3 を使用したジグソーパズルゲームのリファクタリングの例

序文プロジェクト内のパズルゲーム(デジタル華容路とも呼ばれる)を再構築するのに 2 日かかりました。...

カルーセル効果を実現するための純粋なjs

この記事では、カルーセルマップの効果を実現するためのjsの具体的なコードを参考までに共有します。具体...