공부용 블로그

Web Server benchmark 할 때 고려해야할 사항 본문

설계/WebServer

Web Server benchmark 할 때 고려해야할 사항

tomato212 2018. 9. 19. 03:59

1. 벤치마크를 통해서 얻고 싶은 자료는 무엇인가?


=> 나의 경우는 웹서버 선정기준이 클라이언트 요청에 대한 서버의 응답속도이다.


특히 동시접속자가 많은 경우(1000~3000명) 모두 메인 페이지(주로 이미지파일)를 요청할 경우 서버가 어느정도까지 과부하를 견딜 수 있을 것인지


그 중 가장 응답속도 빠른 웹서버는 무엇인지 테스트 해보는 것이다. 





2. 웹서버가 과부하를 견딘다는 의미는 무엇인가?


=> 사용자들이 동시에 같은 페이지를 요청했을때 서버가 해당 페이지를 응답해주고, 속도가 느려지지 않음을 의미한다.


즉, 서버가 다운되거나 속도가 느려지면 과부하를 견디지 못하는 것으로 본다. 




3. 웹서버의 처리속도는 어떻게 정의할 것인가?


* TPS(웹서버가 초당 처리하는 트랜잭션)


* 웹서버가 클라이언트의 요청을 받은 순간부터 해당 요청을 처리하는 순간까지의 시간


=> 클라이언트의 요청시간과 웹서버가 응답을 보내는 시간은 제외한다.


요청과 응답을 보내는 시간은 네트워크 상태에 따라 영향을 받을 수 있으므로 제외한다(오직 웹서버의 처리속도만 측정하기 위해).



4. 생각해보아야 할 점


* 실제 테스트를 했을 때 동접자 1000명과 3000명의 초당 처리량이 같다. 이유는 서버의 대역폭이 한정되어 있기 때문에.



예를들어 사용자 한 명이 요청하는 페이지가 




* 웹서버 옵션 중 캐시기능으로 인해 사용자의 요청이 처리되지 않고 임시저장소에서 바로 전달해 주는 것은 아닌지 확인해봐야함. 


캐시기능이 처리속도에 영향을 미치는지 확인하기 위해서는 똑같은 요청을 캐시기능을 적용시킨 상태, 적용시키지 않은 상태를 보고 비교해본다.





** Thread Context Switching 보다 Process Context Switching이 저장해야할 정보가 더 많기 떄문에 오래걸린다 => 확인필요










'설계 > WebServer' 카테고리의 다른 글

apache mpm 설정  (0) 2018.09.25
Jmeter Listener 사용법  (0) 2018.09.21
nmonchart 사용법  (0) 2018.09.15
vertx, undertow, netty, jetty, tengine, lighttpd, node.js 설치  (0) 2018.09.14
ubuntu 16.04 H2o 설치  (0) 2018.09.07