Workerman은 동시에 얼마나 많은 요청을 처리할 수 있나요?
동시성 개념은 모호합니다. 여기서는 두 가지 측정 가능한 지표 동시 연결 수 와 동시 요청 수 로 설명하겠습니다.
동시 연결 수 는 서버가 현재 시간에 유지하는 TCP 연결의 수를 의미하며, 이러한 연결에 데이터 통신이 있는지 여부는 고려하지 않습니다. 예를 들어, 메시지 전달 서버는 수백만 대의 장치 연결을 유지하고 있을 수 있지만, 연결에는 거의 데이터 통신이 없으므로이 서버의 부하는 거의 0입니다. 충분한 메모리가 있다면 계속해서 연결을 받을 수도 있습니다.
동시 요청 수 는 보통 QPS(초당 서버 처리 요청 수)로 측정되며, 현재 시간에 서버에 몇 개의 TCP 연결이 있는지에는 크게 신경 쓰지 않습니다. 예를 들어, 서버에 클라이언트 연결이 10개만 있고, 각 클라이언트 연결당 초당 1만 개의 요청이 있으면 서버는 최소한 10*1만 = 10만초당 처리량(QPS)을 지원해야 합니다. 10만 초당 처리량이 이 서버의 한계이고, 각 클라이언트가 서버에 초당 1개의 요청을 보내면 이 서버는 10만 개의 클라이언트를 지원할 수 있습니다.
동시 연결 수 는 서버 메모리에 제한되며, 일반적으로 24G 메모리를 가진 Workerman 서버는 대략 120만 동시 연결을 지원할 수 있습니다.
동시 요청 수 는 서버 CPU 처리 능력에 제한되며, 24코어 Workerman 서버는 45만 초당 처리량(QPS)까지 달성할 수 있으며, 실제 값은 비즈니스 복잡성과 코드 품질에 따라 다를 수 있습니다.
주의
고성능 동시성 시나리오에서는 event 확장을 반드시 설치해야하며, 설치 및 구성 섹션을 참조하십시오. 또한 Linux 커널을 최적화해야하며, 특히 프로세스 파일 오픈 수 제한에 대해 추가된 내용은 부록 커널 최적화 섹션을 참조하십시오.
성능 테스트 데이터
데이터 출처: 제3 자 권위있는 성능 테스트 기관 techempower.com 제20 라운드 성능 테스트
https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=db&l=zik073-sf
서버 구성:
총 코어 14, 전체 쓰레드 28, 32GB 메모리, 전용 Cisco 10기가비트 이더넷 스위치
비즈니스 로직:
데이터베이스 쿼리가 포함된 업무, 데이터베이스는 pgsql, php8+jit
QPS는 39만 이상