Golang 学習 Web アプリケーションのパフォーマンス テストの実践
インターネット時代の発展に伴い、Web アプリケーションの重要性がますます高まっており、本番環境の Web アプリケーションには高いパフォーマンスとパフォーマンスが求められます。ユーザーのニーズを満たす同時実行機能。 Web アプリケーションの高いパフォーマンスと高い同時実行性を確保したい場合は、パフォーマンス テストを実施する必要があります。
この記事では、Go 言語を使用して Web アプリケーションのパフォーマンス テストを実行する方法を紹介し、読者に実践的な経験を提供します。
1. 準備
まず、Go 言語開発環境と、この種のアプリケーション開発によく使用されるフレームワークをインストールする必要があります。 Web アプリケーション開発には、Gin フレームワークを使用することをお勧めします。
Go 言語環境と Jin フレームワークをインストールした後、いくつかのパフォーマンス テスト ツールをインストールする必要があります。一般的に使用されるツールには、ApacheBench (ab)、wrk などが含まれます。
2. パフォーマンス テスト
パフォーマンス テスト ツールを使用する前に、Web アプリケーションを起動する必要があります。以下は、Gin フレームワークを使用して構築された Web アプリケーションのサンプル コードです。
package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/hello", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "Hello world!", }) }) r.Run() // listen and serve on 0.0.0.0:8080 }
この単純な Web アプリケーションは、JSON 形式で「Hello world!」情報を返すための GET メソッドのみを提供します。
次に、ApacheBench ツールを使用してパフォーマンス テストを実施します。 ApacheBench は、Web サーバーのストレス テストを迅速かつ簡単に行うために Apache Software Foundation によって開発されたツールです。コマンド ラインで、次のコマンドを使用してテストできます。
ab -n 1000 -c 100 http://localhost:8080/hello
このうち、-n はリクエストの数を表し、-c は同時実行数を表します。http://localhost:8080/hello はWeb アプリケーションのアドレスの番号。
このコマンドを実行すると、ApacheBench が次の結果を出力することがわかります。
Server Software: Server Hostname: localhost Server Port: 8080 Document Path: /hello Document Length: 26 bytes Concurrency Level: 100 Time taken for tests: 0.431 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 190000 bytes HTML transferred: 26000 bytes Requests per second: 2321.25 [#/sec] (mean) Time per request: 43.128 [ms] (mean) Time per request: 0.431 [ms] (mean, across all concurrent requests) Transfer rate: 431.51 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.2 0 2 Processing: 8 42 11.1 40 71 Waiting: 8 42 10.8 40 71 Total: 8 42 11.1 40 72 Percentage of the requests served within a certain time (ms) 50% 40 66% 49 75% 53 80% 55 90% 60 95% 68 98% 71 99% 72 100% 72 (longest request)
このうち、各インジケーターの意味は次のとおりです。
その中で、最も重要な指標は 1 秒あたりのリクエスト数です。サーバーの処理能力を表し、数値が高いほどサーバーのパフォーマンスが優れています。同時に、Time per request(リクエストごとにかかる時間)やTime per request(リクエストごとにかかる平均時間)も非常に重要な指標であり、1つのリクエストの処理性能、つまりリクエストの応答速度を表します。値が低いほどサーバーは遅くなり、パフォーマンスが向上します。
ApacheBench に加えて、wrk ツールを使用して Web アプリケーションのパフォーマンス テストを実行することもできます。 wrk は、高い同時実行性と高いパフォーマンスという利点を備えた最新の HTTP ベンチマーク テスト ツールです。
繰り返しますが、最初に Web アプリケーションを開始する必要があります。コマンド ラインで、次のコマンドを使用してテストできます。
wrk -t 4 -c 1000 -d 10s http://localhost:8080/hello
このうち、-t はスレッド数を表し、-c は同時実行数を表し、-d はテスト期間を表します。http: //localhost:8080/hello は Web アプリケーションのアドレスです。
このコマンドを実行すると、wrk は次の結果を出力することがわかります。
Running 10s test @ http://localhost:8080/hello 4 threads and 1000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 4.97ms 51.05us 5.57ms 78.15% Req/Sec 50.73k 2.10k 54.41k 79.00% 2034638 requests in 10.00s, 381.47MB read Socket errors: connect 748, read 1969, write 0, timeout 0 Requests/sec: 203513.06 Transfer/sec: 38.14MB
このうち、各インジケーターの意味は次のとおりです。
同様に、Requests/sec (1 秒あたりのリクエスト数) と Latency (処理遅延) が最も重要な指標です。中でもRequests/sec(1秒あたりのリクエスト数)もサーバーのパフォーマンスを測る重要な指標です。
3. まとめ
この記事では、ApacheBenchやwrkを使ったパフォーマンステストの方法や注意点など、WebアプリケーションのパフォーマンステストにGo言語を使用する方法を紹介します。パフォーマンス テストを実施する場合は、テスト環境のハードウェアとソフトウェアの構成、テスト プロセス中のパラメータ設定と結果の解釈に注意を払う必要があります。同時に、実際には、Web アプリケーションのパフォーマンスと信頼性を向上させるために、さまざまなビジネス ニーズやシナリオに基づいてパフォーマンス テストを実施する必要もあります。
以上がGolang 学習 Web アプリケーションのパフォーマンス テストの実践の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。