성능 부하 테스트 중의 소법
시스템 개발에서 특히 대규모 요청량이 예상되는 응용을 만들 때 실제 요청량의 성능 부하 테스트를 모의하기도 한다.
과거 참가한 성능 부하 테스트에서 목표치에 대해 잘못하고 논의할 수 있기 때문에 이 글을 썼다.
처리량(TPS) 및 병렬
성능 로드 테스트를 논의할 때 처리량(TPS)과 병렬 수를 혼동하는 경우가 많습니다.
여기에 각 단어의 정의를 다시 한 번 쓰시오.
통상 단위 시간은 초를 많이 사용하기 때문에 초당 거래수로도 TPS(Transaction Per Secend)로 표시된다.
물동량의 가치가 크다는 것은 많은 거래를 처리할 수 있다는 것을 의미한다.
이 단위는 교역 수량이다.
병행수가 크다는 것은 어느 시간에 여러 개의 처리를 동시에 할 수 있다는 것을 의미한다.
복잡한 원인은 삼복량과 병행수가 큰 값이 많은 처리를 할 수 있다는 개념이기 때문이다.
실례를 들어 설명하시오.
첫 번째 상황은 1초에 두 개의 요청을 보내고 한 개의 요청은 1초에 끝난다.
이런 상황에서 어느 순간 병행수가 2이고 물동량은 초당 2회 거래이다.
두 번째 경우 2초마다 두 개의 요청을 보내고 요청은 2초에 끝난다.
이 경우 어느 시점이든 병행수가 2이고 처리량은 2초 2회 거래되며 1초로 환산하면 1회 거래가 된다.
그러면 이 두 병행수는 모두 2이지만 흡수량에 차이가 있다.나는 이 차이의 주요 원인이 반응 시간이라는 점이 일목요연하다고 생각한다.
총괄은 아래와 같다.병렬수는 변하지 않지만, 흡수량이 증가하면 응답 시간이 줄어든다.
박스
행수
처리량(TPS)
응답 시간(초)
박스 1
2
2
1
박스 2
2
1
2
나는 똑똑한 사람이 이 수치들이 관계가 있다는 것을 알아차릴 것이라고 생각한다.
작은 법칙
소법칙위키백과에 따라은 줄 서기 이론에서 다음과 같은 공식으로 표시된다.
L = \lambda W
여기서 $L=고객 수 $, $lambda=도착 수 $W=고객이 소비한 시간 $US입니다.이 공식은 줄 서기 이론의 의미로 표시된다.따라서 언뜻 보기에는 상관없는 것 같지만 성능 부하 테스트의 경우 다음과 같은 공식으로 표시할 수 있다.
並行数 = スループット \times 応答時間
방금 상황의 1/상황2에 적용되면 다음과 같다.2_{並行} = 2_{tps} \times 1_{秒}
2_{並行} = 1_{tps} \times 2_{秒}
이 두 가지 예는 너무 간단해서 나는 비교적 복잡한 예를 생각해 보았다.이 예는 네 개의 병행 운행이라는 것을 곧 알게 되었다.따라서 흡수량과 평균 응답 시간의 곱셈은 4이어야 하지만 그것을 검증해 보자.
첫째, 물동량은 제8차 거래, 제2차 거래는 제4차 거래, 제3차 거래는 제2차 거래, 제4차 거래 합계 13차 거래는 8초에 달한다.즉, $\rac{8+4+2+1{8}=15/8=1.885{tps}달러입니다.
평균 응답 시간은 다음과 같습니다.덧그림
\frac{1_{秒} \times 8_{tran} + 2_{秒} \times 4_{tran} + 4_{秒} \times 2_{tran} + 8_{秒} \times 1_{tran} }{15_{tran}} = \frac{32_{秒Tran}}{15_{Tran}}=2.133 秒
이것들을 곱하면 다음과 같다.1.875_{tps} \times 2.133_{秒} \fallingdotseq 4.00_{並行}
이것은 점수로 계산하면 더욱 정확하다.\frac{15}{8}_{tps} \times \frac{32}{15}_{秒} = 4_{並行}
복구 처리량/병렬/응답 시간작은 돌멩이의 법칙을 다시 한 번 살펴보자.
並行数 = スループット \times 応答時間
이 공식만 보면 병행수를 높이려면 흡수량을 늘리거나 응답 시간을 늘려 실현할 수 있다.물동량을 높이면 병행수를 높일 수 있다는 점은 이해하기 쉽지만 같은 물동량을 통해 응답 시간을 높이고 병행수를 높이는 것도 중요하다.
물동량을 중심으로 하는 의식은 다음과 같다.
スループット = \frac{並行数}{応答時間}
처리량을 높이려면 병행수를 늘리거나 응답 시간을 낮출 수 있다.나는 이것들이 모두 직감과 같다고 생각한다.응답 시간을 중심으로 하는 공식은 다음과 같다.
応答時間 = \frac{並行数}{スループット}
응답 시간을 줄이는 것은 병렬 수를 줄이거나 삼키는 양을 늘려서 실현할 수 있다.응답 시간을 병행수나 흡수량과 연결시켜 인상하는 것이 중요하다.총결산
병행수/吞吐량/응답 시간은 애플릿의 법칙에 따라 각각 이해하면 성능 부하 검증에서 더욱 정확하고 깊이 이해할 수 있으니 반드시 사용하십시오.
Reference
이 문제에 관하여(성능 부하 테스트 중의 소법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hiro0107@github/items/6154b412c7ff29c8785f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)