라이브로 가기 전에 nginx 스택을 설정하고 구성을 최적화하고 있습니다. 기계를 스트레스 테스트하기 위해 ab를 실행 한 결과, 초당 150 번의 요청에서 많은 요청이 발생하고 1 초 이상 걸리는 것을보고 실망했습니다. 이상하게도 기계 자체는 열심히 호흡하지 않았습니다.
나는 마침내 상자를 핑하기로 생각하고 약 100-125 ms의 핑 시간을 보았습니다. (놀랍게도 기계는 전국에 있습니다.) 따라서 네트워크 대기 시간이 내 테스트를 지배하는 것처럼 보입니다. 서버와 동일한 네트워크의 시스템에서 동일한 테스트를 실행하면 (ping 시간 <1ms) 초당 5000 개 이상의 요청이 표시되는데 이는 시스템에서 예상 한 것과 더 일치합니다.
그러나 이것은 나에게 생각을 주었다 : 웹 서버에 대한 초당 “현실적인”요청 측정을 어떻게 결정하고보고합니까? 항상 성능에 대한 주장이 있지만 네트워크 대기 시간을 고려해서는 안됩니까? 물론 서버 옆의 컴퓨터에는 초당 5000 개의 요청을 처리 할 수 있지만 전국의 컴퓨터에는 처리 할 수 없습니다. 연결 속도가 느리면 결국 서버 성능에 영향을 미치게됩니다. 아니면이 모든 것에 대해 생각하고 있습니까?
이것이 네트워크 엔지니어링 101 물건이라면 용서하십시오. 저는 무역 개발자입니다.
업데이트 : 명확성을 위해 편집되었습니다.
답변
전 세계 어딘가에서 액세스 할 때 서버의 성능에 관심이 있다면 전 세계 어딘가에 친구 에게 리눅스 박스에 sproxy + siege 를 설치하도록 요청하십시오 . 다운로드, 구성, 제작 만하면됩니다. 이 도구는 작으며 몇 초 안에 컴파일됩니다.
우선, sproxy
리눅스 박스 에서 시작 하십시오. 기본적으로 로컬 호스트 (127.0.0.1)의 포트 9001에서 실행됩니다. 외부에서 액세스하려면 아웃 바운드 IP 주소를 매개 변수로 전달하십시오.
이제이 ip 및 포트를 HTTP 프록시로 사용하도록 브라우저를 설정하여 sproxy에 연결하십시오. 지금부터하는 모든 작업은 sproxy에 의해 기록되며 나중에 재생할 수 있습니다. 이제 사이트를 둘러보고 고객이 할 일을하고 서버를 사용하는 “고가의”일을하려고합니다.
완료되면 CTRL ^ C를 눌러 프록시를 종료하십시오. 귀하의 행동을에 기록했습니다 $HOME/urls.txt
. 공성 상주 위치로 파일을 이동하십시오. 스트레스 테스트를 시작하려면을 실행하십시오 siege -f urls.txt -d NUM -c NUM
. d
성능 테스트를 수행 할 때 요청 간 지연을 나타내며 1 (초)을 사용하십시오.c
시뮬레이션 된 동시 사용자 수를 나타냅니다. 마음대로 선택하되 시작하십시오. Siege는 초당 트랜잭션 수, 오류율, 평균 요청 소요 시간 등을 보여줍니다. 강력하고 사용하기 쉬운 도구입니다.
매개 변수에 대한 자세한 정보가 필요하면 (많은 것들이 있습니다) 공성 매뉴얼 과 sproxy 매뉴얼을 확인하십시오
보다 현실적인 결과를 얻으려면 많은 사람들이 여러 국가의 서버를 한 번에 테스트하여 통계를 보내도록하십시오.
답변
실제 요청 / 초 측정은 액세스 로그에서 가져와야합니다. IMO는 서버가 모든 요청을 원래 속도와 상관없이 동일한 속도로 처리하므로 요청 대기 시간은 서버로드와 아무 관련이 없습니다.
답변
Soasta Cloudtest 와 같은 서비스 사용을 고려하십시오 . 그것으로 당신은 당신의 테스트에 대한 매우 상세한 보고서를 얻을 수 있으며 다양한 퍼블릭 클라우드 / 가상화 공급자로부터 성능 테스트를 실행할 수 있습니다. 서버를 얼마나 오래 그리고 얼마나 오래 망치고 싶을 지 구성 할 수 있습니다. 그들은 또한 무료 ” 라이트 “버전을 가지고 있으므로 돈을 투입하기 전에 무엇을 할 수 있는지 확인할 수 있습니다.