고성능 요청 처리를 위해 fasthttp를 기반으로 만든 Go 언어의 크로스 플랫폼 HTTP(S) 벤치마킹 및 부하 테스트 CLI 도구입니다.
six-ddc/plow
fasthttp로 요청을 보내고, 실시간 터미널 화면과 웹 차트를 제공하는 Go 기반 HTTP(S) 부하 테스트 CLI입니다.
- 스타
- 4,515
- 포크
- 154
- 열린 이슈
- 20
- 마지막 커밋
- 5일 전
어떤 프로젝트인가요?
Plow는 Go로 작성된 명령줄 HTTP(S) 벤치마킹 도구입니다. 지정한 수의 동시 연결로 요청을 보내고, 테스트가 진행되는 동안 지연 시간 통계와 히스토그램, 백분위수를 기록해 터미널과 실시간 웹 페이지에 표시합니다. 테스트는 지정된 시간 동안, 지정된 요청 수만큼 실행하거나 Ctrl-C로 중단할 때까지 실행할 수 있습니다.
Plow는 Go 표준 net/http 패키지 대신 fasthttp 클라이언트 라이브러리를 사용합니다. 히스토그램과 분위수를 계산하는 스트리밍 알고리즘은 벤치마크 중 메모리와 CPU 오버헤드를 낮게 유지하도록 설계되었습니다. 선택적으로 추적 기능을 사용하면 요청 시간을 DNS, connect, TLS, write, wait, read 단계로 나눠 볼 수 있습니다.
메서드, 헤더, 요청 본문(파일 포함, 선택적으로 스트리밍), 클라이언트 TLS 인증서로 요청을 맞춤 설정할 수 있습니다. 또한 속도 제한, 램프업, SOCKS5 및 HTTP 프록시, Unix 도메인 소켓, JSON 출력도 지원합니다.
핵심 기능
- 01터미널과 웹 UI에서 지연 시간 통계, 히스토그램, 백분위수를 실시간으로 확인할 수 있습니다.
- 02동시성, 요청 수 또는 실행 시간을 지정해 테스트할 수 있습니다.
- 03DNS, connect, TLS, write, TTFB, read 단계별 지연 시간을 추적할 수 있습니다.
- 04메서드, 헤더, 파일 기반 요청 본문, 클라이언트 TLS 인증서를 설정할 수 있습니다.
- 05속도 제한, 램프업, SOCKS5 및 HTTP 프록시 지원, JSON 출력을 제공합니다.
활용 사례
- 릴리스 전에 HTTP API나 웹 서비스를 부하 테스트할 수 있습니다.
- 엔드포인트나 서버 설정에 따른 응답 지연 시간을 비교할 수 있습니다.
- DNS, connect, TTFB 중 어떤 요청 단계가 응답 지연에 가장 크게 영향을 주는지 진단할 수 있습니다.
빠른 시작
- 1
Go로 plow 설치하기
go install github.com/six-ddc/plow@latest - 2
20개 연결로 URL에 부하 테스트 실행하기
plow http://127.0.0.1:8080/ -c 20 -n 10000 -d 10s
사용 전 알아둘 점
- HTTP(S) 부하 테스트만 지원하며, 다른 프로토콜은 지원하지 않습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- plow은(는) 무엇인가요?
- fasthttp로 요청을 보내고, 실시간 터미널 화면과 웹 차트를 제공하는 Go 기반 HTTP(S) 부하 테스트 CLI입니다. Plow는 Go로 작성된 명령줄 HTTP(S) 벤치마킹 도구입니다. 지정한 수의 동시 연결로 요청을 보내고, 테스트가 진행되는 동안 지연 시간 통계와 히스토그램, 백분위수를 기록해 터미널과 실시간 웹 페이지에 표시합니다. 테스트는 지정된 시간 동안, 지정된 요청 수만큼 실행하거나 Ctrl-C로 중단할 때까지 실행할 수 있습니다.
- plow은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- plow은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- plow은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. plow의 마지막 커밋은 2026년 10월 17일입니다.
- plow은(는) 어디에 사용할 수 있나요?
- 릴리스 전에 HTTP API나 웹 서비스를 부하 테스트할 수 있습니다. 엔드포인트나 서버 설정에 따른 응답 지연 시간을 비교할 수 있습니다. DNS, connect, TTFB 중 어떤 요청 단계가 응답 지연에 가장 크게 영향을 주는지 진단할 수 있습니다.
- plow는 어떻게 설치하나요?
- Go로 plow 설치하기: go install github.com/six-ddc/plow@latest 20개 연결로 URL에 부하 테스트 실행하기: plow http://127.0.0.1:8080/ -c 20 -n 10000 -d 10s
- plow은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/six-ddc/plow
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
웹 애플리케이션과 기타 서비스의 부하 및 성능을 측정하는 오픈 소스 Java 애플리케이션입니다.
통계 분석과 워밍업 실행을 지원하고 결과를 CSV, JSON, Markdown, AsciiDoc으로 내보내는 명령어 벤치마크 도구입니다.
여러 JavaScript 런타임에서 동작하는 작고 단순한 무의존성 JavaScript 벤치마킹 라이브러리입니다.
CPU, 메모리, async, SQL, HTTP, I/O 병목을 측정하고 Prometheus와 Grafana로 내보내는 Rust 프로파일러입니다.
벤치마크에서 LLM, VLM, AIGC 모델을 평가하고 추론 성능을 부하 테스트하며 결과를 대시보드에서 확인할 수 있는 맞춤형 프레임워크입니다.