
Pseudogress 0.1.0은 한 서버에서 수천 개의 가상 PostgreSQL 데이터베이스와 연결을 제공해 클라이언트 부하 테스트를 돕는 도구다. 실제 PostgreSQL의 응답을 기록해 재생하거나, 설정한 지연 시간과 오류를 적용할 수 있다.
가상 데이터베이스는 클라이언트가 접속하는 이름으로 구분한다. 이름 패턴에 맞는 클래스마다 응답 기록, 사용자, 지연 시간, 오류를 설정할 수 있다. 기록 모드에서는 연결을 실제 PostgreSQL로 전달하고 응답을 저장하며, 재생 모드에서는 저장된 응답을 설정에 따라 돌려준다.
첫 릴리스는 멀티테넌트 PostgREST 부하 테스트를 위해 만들어졌다. 버전은 0.1.0이며, 설정 형식과 기록 형식은 1.0 이전에 바뀔 수 있다. 기록 파일과 함께 생성되는 시간 정보 파일은 한 쌍으로 관리해야 한다.
소스에서 빌드하고 실행하는 방법은 다음과 같다.
nix-build # or nix-shell --run 'cargo build --release'
result/bin/pseudogress record pseudogress.toml # SIGINT or SIGTERM writes the recordings
result/bin/pseudogress replay pseudogress.toml
실행하면 수신 주소를 표준 오류에 출력한다. 설정에서 포트를 0으로 지정하면 사용 가능한 포트를 고른다. 릴리스별 실행 파일은 릴리스 페이지에서 받을 수 있다. Linux x86_64·aarch64는 glibc 2.28 이상이 필요하며, musl 기반 배포판은 지원하지 않는다. macOS는 11 이상에서 Apple silicon과 Intel을 지원한다.
관리 API에는 인증이 없다. 접근할 수 있는 사람은 메트릭을 읽고 지연 시간과 오류를 바꾸거나 연결을 종료할 수 있으므로, API는 로컬호스트나 사설 네트워크에 바인딩해야 한다. 1밀리초 미만의 지연 시간을 시뮬레이션하려면 잠든 스레드를 수십 마이크로초 수준으로 깨우는 환경이 필요하다. 일부 가상 머신에서는 실제 지연이 더 길어지고 타이머 테스트가 실패할 수 있다.
프로젝트의 저장소에는 설치와 설정 방법이 있으며, 설계 문서는 시뮬레이션 범위와 기록 형식, 관리 API, 측정 성능을 설명한다. 라이선스는 AGPL-3.0-only다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요