동료가 자신 있게 만든 앱을 Tsung으로 습격해 봤어요.
그러자 달력 첨부 첫날 동료가 "Common Lisp로 비즈니스 개선 앱을 만들었다"며 즐거워하는 듯 후회한 나머지 습격을 시도했다.네, Tsung에 있어요.
객체 정보
상세한 내용은 상술한 보도를 보시고 먼저 개요를 정리해 주십시오.
테스트 환경
웹 응용 프로그램은 다음 환경에서 로드 테스트를 수행합니다.Zabbix는 서버의 리소스 사용량을 수집하고 기록하기 위해 사용됩니다.
일단 첫 페이지.
첫 페이지는 동적 내용을 포함하지 않은 제작이다.
총 1만 명의 사용자가 각각 10회씩 방문한다.그럼 잘 잘릴 수 있을까요?
어떻게 됐어요?
초당 4400시에 방송되는 프로그램은 이미 끝났다.응답 시간도 최대 3천초도 안 되는 호조에 달했다.
Zabbix의 부하도 거의 증가하지 않았다.
사용자 목록을 표시하는 페이지를 습격 시도
첫 페이지가 시원하게 찢어졌으면 같은 조건으로 사용자 목록을 표시하는 페이지를 습격한다.
했어...!?
나의 요구는 초당 250개에서 300개로 떨어졌다.반응 시간도 5초~15초 정도 기다려야 한다.
오류도 발생했다.HTTP 오류는 발생하지 않았지만 연결하는 동안 오류가 발생했습니다.
대기 처리 시간이 증가했습니다. 대기 기간에 시간 초과가 발생하는 경우가 증가했습니까?
그러나 Zabbix의 CPU 부하 차트를 보면 큰 부하가 표시되지 않습니다.
데이터베이스의 CPU는 한가해 보이지만 네트워크에는 해당하는 전송량이 있다.
고찰하다
이벤트로 구동된 웹 서버가 실행 중이고 CPU에 부하를 가하는 방법으로 추정하면 이 프로그램은 단식적으로 붉은색일 것이다.
기계적으로 단식홍이 1핵에 분배되고 Disk I/O가 발생하지 않는다고 가정하면 시스템의 부하성에 대해 매우 안심할 수 있다.자원을 다 먹지 못할 것 같다.
다시 말하면 이 프로그램은 자원을 효과적으로 이용할 수 없다.
단지 매우 간단하고 계산하기 쉬워서 한 서버에서 여러 프로그램을 실행하면 문제를 해결할 수 있다.
개선 방안
비록 비용이 좀 많지만 Docker 컨테이너로 여러 응용 프로그램을 구동할 수 있고 비용이 마음에 들면 여러 프로그램을 직접 시작할 수 있다.
만약 모든 요청을 1초 정도 처리해야 한다면 부하 균형기나 역방향 에이전트를 사용하십시오프로그램당 300개의 요청/초만 제한하면 너무 무겁지 않다(요구수가 제한치를 초과하면 요청이 거부되기 때문에 실제 숫자가 더 높다).
데이터베이스의 네트워크가 1Gbps라고 가정하면 데이터로서 여유가 있다.
LB에는 2개의 코어, OS에는 1개의 코어를 사용하고 나머지 13개의 코어는 웹 애플리케이션에 할당할 수 있다.이 조건이라면 초당 3900개의 요청을 처리할 수 있을 것으로 보인다.
현재 응용 프로그램 중 데이터베이스에 연결된 연결은 하나뿐이지만 연결된 응용 프로그램도 5개로 늘어날 수 있다.하지만 데이터베이스 처리 시간이 많지 않은 것 같아서 여가 시간을 활용하면 효과가 있을지 모르겠다.
총결산
나는 이 응용 프로그램의 특징을 조금 보았다.
실제로 동료로부터 소재를 제공받아 동료의 협조를 받아 실험을 진행했다.
하지만 개인적으로 과정 붕괴 등 화려한 일은 일어나지 않아 달갑지 않았다.
Reference
이 문제에 관하여(동료가 자신 있게 만든 앱을 Tsung으로 습격해 봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takehironet/items/e05b379bfde0b0234f67텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)