弊社では、現在運用しているWebサイト(https://kinsyoxd.com)を提供しているマシンのスケールアップを予定しています。そこで、その前後の性能調査のため現環境のWebサーバーに対し、ストレステストを行い、ここに結果を公表いたします。
何かのご参考にしてください。
また、このストレステストは弊社の管轄のもとで行なったもので、無許可で弊社のサイトに対しストレステストやその他意図して負荷をかけた場合、刑事責任を問われる可能性があるためご注意ください。
現環境について
・通信周り
測定時間 20:00-22:00
通信環境 1Gbps 光通信
回線事業者 auひかり
プロバイダー BIGLOBE
接続方式 IPoE
Ethernet 有線接続 Cat6
・端末情報
IntelNUC NUC7JY
OS Ubuntu 24.04.1
CPU Intel Celeron プロセッサ J4005(4Mキャッシュまで2.70GHz)
メモリ 4GB DDR4 SODIMM/DDR4-2400MHz
ストレージ SATA3.0 6Gbps SSD256GB
Ethernet 1GbE
Webサーバー Apache 2.4.58
ストレステストの実施方法について
ストレステストでは以下の5つの点を計測したいと思います。
・CPU使用率
・メモリ使用率
・ネットワーク送受信の帯域幅
・ディスクI/O
・siegeでの測定結果一覧
コマンドラインで簡単にストレステストを行うことができるsiegeというツールを使います。
現環境における測定結果
これらは通常時の状況です。
ほぼアクセスがないため、システム関係のプロセスにリソースが割かれています。




弊社のサイトへのアクセスはとても少ないため、擬似的にsiegeを使って同時アクセス数が1あるとします。
$ siege -t 1M -v https://kinsyoxd.com

Transactions: 2351 hits
Availability: 100.00 %
Elapsed time: 60.56 secs
Data transferred: 148.25 MB
Response time: 630.72 ms
Transaction rate: 38.82 trans/sec
Throughput: 2.45 MB/sec
Concurrency: 24.49
Successful transactions: 2351
Failed transactions: 0
Longest transaction: 2640.00 ms
Shortest transaction: 180.00 ms
シナリオテスト
次に、それぞれのシナリオに基づいてテストを行います。
・シナリオ1
1分間、同時アクセス数が100あるとき
$ siege -c 100 -t 1M -v https://kinsyoxd.com

Transactions: 3413 hits
Availability: 100.00 %
Elapsed time: 60.65 secs
Data transferred: 230.80 MB
Response time: 1757.87 ms
Transaction rate: 56.27 trans/sec
Throughput: 3.81 MB/sec
Concurrency: 98.92
Successful transactions: 3413
Failed transactions: 0
Longest transaction: 11150.00 ms
Shortest transaction: 210.00 ms
・シナリオ2
1分間、同時アクセス数が500あるとき
$ siege -c 500 -t 1M -v https://kinsyoxd.com

Transactions: 2251 hits
Availability: 100.00 %
Elapsed time: 60.79 secs
Data transferred: 34.04 MB
Response time: 12702.09 ms
Transaction rate: 37.03 trans/sec
Throughput: 0.56 MB/sec
Concurrency: 470.35
Successful transactions: 2251
Failed transactions: 0
Longest transaction: 53140.00 ms
Shortest transaction: 870.00 ms
・シナリオ3
1分間、同時アクセス数が1000あるとき
& siege -c 1000 -t 1M -v https://kinsyoxd.com

Transactions: 544 hits
Availability: 99.45 %
Elapsed time: 60.06 secs
Data transferred: 4.34 MB
Response time: 35111.18 ms
Transaction rate: 9.06 trans/sec
Throughput: 0.07 MB/sec
Concurrency: 318.02
Successful transactions: 545
Failed transactions: 3
Longest transaction: 60000.00 ms
Shortest transaction: 2130.00 ms
終わり
このような結果になりました。
ボトルネックになっているのはCPUとメモリだということがわかりました。
また、レスポンスタイムの結果を見ると2秒以下になっているのはシナリオ1だけです。
つまり、現環境ではユーザーが快適にWebサイトを閲覧できるのは同時に100人前後だといえます。
(Googleの調査によるとレスポンスタイムが3秒以上になるとユーザーの50%はサイトから離れるそうです)
これがどこまで性能が上がっているか楽しみですね。