고성능 요청 처리를 위해 fasthttp를 기반으로 만든 Go 언어의 크로스 플랫폼 HTTP(S) 벤치마킹 및 부하 테스트 CLI 도구입니다.
bojand/ghz
동시성, 요청률 제한, 출력 형식을 설정해 gRPC 서비스를 벤치마킹하고 부하 테스트하는 CLI 도구입니다.
- 스타
- 3,359
- 포크
- 284
- 열린 이슈
- 101
- 마지막 커밋
- 5일 전
어떤 프로젝트인가요?
ghz는 gRPC 서비스의 성능을 측정하는 CLI 도구이자 Go 패키지입니다. 호스트와 정규화된 메서드 이름을 지정하고 .proto 파일이나 컴파일된 protoset을 제공하면, 요청을 전송하면서 지연 시간과 처리량을 기록합니다.
부하는 여러 방식으로 설정할 수 있습니다. 일정한 요청률을 유지하거나, 고정된 수의 동시 작업자를 사용하거나, 시간에 따라 RPS 또는 동시성을 높이는 단계별·선형 스케줄을 적용할 수 있습니다. 요청 수나 실행 시간으로 테스트 범위를 제한할 수 있으며, 메시지 간격과 스트림 수명을 설정하는 옵션으로 스트리밍 호출도 지원합니다. TLS, 클라이언트 인증서, 메타데이터, gzip 압축도 설정할 수 있습니다.
결과는 요약, 보기 좋은 텍스트, JSON, CSV, HTML 또는 InfluxDB 라인 형식으로 출력할 수 있습니다. 테스트 설정은 JSON이나 TOML 구성 파일에 저장할 수도 있습니다.
핵심 기능
- 01일정한 요청률이나 단계별·선형 증가 방식으로 RPS와 동시성 부하를 스케줄링합니다.
- 02proto 파일이나 protoset을 사용해 unary 및 스트리밍 gRPC 호출을 지원합니다.
- 03TLS, 클라이언트 인증서, 사용자 지정 authority, gzip 압축 옵션을 제공합니다.
- 04요약, 보기 좋은 텍스트, JSON, CSV, HTML 또는 InfluxDB 형식으로 출력합니다.
- 05CLI로 실행하거나 Go 패키지로 가져와 사용할 수 있습니다.
활용 사례
- 릴리스 전에 gRPC 마이크로서비스의 부하를 테스트합니다.
- 서비스 지연 시간이 악화되기 시작하는 요청률을 찾습니다.
- CI 파이프라인에서 서비스 버전별 성능을 비교합니다.
- TLS를 사용하거나 압축을 활성화한 상태에서 gRPC 엔드포인트를 벤치마킹합니다.
빠른 시작
- 1
Homebrew로 설치
brew install ghz - 2
또는 Go(1.23 이상)로 설치
go install github.com/bojand/ghz/cmd/ghz@latest - 3
proto 파일과 호스트를 지정해 gRPC 서버에 부하 테스트 실행
사용 전 알아둘 점
- 문서는 저장소가 아닌 외부 사이트 ghz.sh에서 제공됩니다.
포함된 컬렉션
토픽
자주 묻는 질문
- ghz은(는) 무엇인가요?
- 동시성, 요청률 제한, 출력 형식을 설정해 gRPC 서비스를 벤치마킹하고 부하 테스트하는 CLI 도구입니다. ghz는 gRPC 서비스의 성능을 측정하는 CLI 도구이자 Go 패키지입니다. 호스트와 정규화된 메서드 이름을 지정하고 .proto 파일이나 컴파일된 protoset을 제공하면, 요청을 전송하면서 지연 시간과 처리량을 기록합니다.
- ghz은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- ghz은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- ghz은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. ghz의 마지막 커밋은 2026년 11월 1일입니다.
- ghz은(는) 어디에 사용할 수 있나요?
- 릴리스 전에 gRPC 마이크로서비스의 부하를 테스트합니다. 서비스 지연 시간이 악화되기 시작하는 요청률을 찾습니다. CI 파이프라인에서 서비스 버전별 성능을 비교합니다. TLS를 사용하거나 압축을 활성화한 상태에서 gRPC 엔드포인트를 벤치마킹합니다.
- ghz는 어떻게 설치하나요?
- Homebrew로 설치: brew install ghz 또는 Go(1.23 이상)로 설치: go install github.com/bojand/ghz/cmd/ghz@latest proto 파일과 호스트를 지정해 gRPC 서버에 부하 테스트 실행
- ghz은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/bojand/ghz
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
웹 애플리케이션과 기타 서비스의 부하 및 성능을 측정하는 오픈 소스 Java 애플리케이션입니다.
Elasticsearch 클러스터를 구성하고 벤치마크를 실행해 결과를 비교하는 매크로벤치마킹 프레임워크입니다.
일정한 요청 속도로 부하를 보내고 지연 시간 통계를 제공하는 HTTP 부하 테스트 CLI 도구이자 Go 라이브러리입니다.
JSON 입력과 서버 reflection 또는 proto 파일을 통한 스키마 탐색을 지원하는 gRPC 서버 호출용 CLI 도구입니다.
JavaScript로 성능 테스트를 작성하고 Go 바이너리로 실행하는 오픈 소스 부하 테스트 도구입니다.