wrk를 사용하여 Go 애플리케이션 테스트 로드 방법: Go 및 wrk 도구를 설치합니다. 예시로 Go HTTP API를 만듭니다. 로드 테스트에 wrk를 사용합니다. wrk -t 100 -c 1000 -d 30s http://localhost:8080/health 해석 결과: 평균 대기 시간, 초당 요청 수, 99% 대기 시간.
Go 애플리케이션에서 로드 테스트하는 방법
소개
로드 테스트는 많은 수의 동시 요청을 처리할 때 애플리케이션의 성능을 평가하는 데 필수적입니다. 이 글에서는 Go 애플리케이션에서 부하 테스트를 수행하는 방법을 심층적으로 살펴보고 실제 사례를 사용하여 설명하겠습니다.
Tools
부하 테스트에는 다음 도구가 필요합니다.
go
: Go 언어(설치됨) go
:Go 语言(已安装)wrk
wrk
: HTTP 부하 테스트 도구실용 사례: 벤치마크 HTTP API
간단한 Go HTTP API를 예로 들어보겠습니다. 애플리케이션 상태에 대한 JSON 응답을 반환하는 "/health" 엔드포인트를 제공합니다.1. HTTP API 생성
package main import ( "fmt" "net/http" ) // healthEndpoint 处理 "/health" 请求。 func healthEndpoint(w http.ResponseWriter, r *http.Request) { // 返回应用程序状态。 fmt.Fprintf(w, `{ "status": "healthy" }`) } func main() { // 注册 "/health" 处理程序。 http.HandleFunc("/health", healthEndpoint) // 监听并服务 HTTP 请求。 http.ListenAndServe(":8080", nil) }2. 로드 테스트에 wrk 사용
wrk -t 100 -c 1000 -d 30s http://localhost:8080/health이 명령은 100개의 동시 스레드를 생성하고 30초 안에 1000개의 요청을 실행합니다.
3. 결과 해석
출력은 다음과 같습니다.Running 30s test @ http://localhost:8080/health 100 threads and 1000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 39.25ms 15.28ms 148ms 67.72% Req/Sec 32.82k 21.70k 80.00k 70.18% Latency Distribution 50% 34.11ms 75% 42.99ms 90% 54.76ms 99% 100.87ms Req/Sec Distribution 50% 28.02k 75% 32.41k 90% 59.89k 99% 75.01k Total: 984141 requests in 30.01s, 116.53MB read Requests/sec: 32795.55 Transfer/sec: 4.01MB이 출력은 다음과 같습니다.
결론
이 튜토리얼에서는 Go 애플리케이션에서 wrk를 사용하여 로드 테스트를 수행하는 방법을 보여줍니다. 부하 테스트는 애플리케이션 성능을 평가하고 잠재적인 병목 현상을 식별하는 데 중요합니다. 🎜위 내용은 테스트 Go 언어 애플리케이션을 로드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!