Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

한번도 못할수도 있지만 한번하면 한번만 하고 싶은 로드 테스트 과정 )LoadTest's agony (a load test you might want to do once, but not once)

다음과 같은 수준을 통과했으며~ 로드테스트도 엄청난 비용이 수반되기때문에

꼭 이것이 표준은 아니며 프로덕트의 규모와 성격에따라 전략수준을 다양하게 채택할수 있습니다.

  • RampUp/Down Time을 설정하여 피크타임까지 사용자를 실제 시나리오와 유사하게 늘리고 뺌 - 
    By setting the RampUp / Down Time, users can be increased to the peak time, similar to the actual scenario.
    뺌 
    • RampUP : 피크타임까지 도달하는 시간을 정하고 최고의 트래픽을 유발
    • RampDown : 트래픽이 최소가 되어가는 시간을 설정하고 트래픽이 점진적으로 줄어듬
      • 트래픽이 빠지는구간 측정이 중요한 이유는 우리가 만든 시스템에서 자원반환이라는 중요기능을 확인하고 가용성이 복원되는지를 보는것입니다.
    • 이용어는 제조업에서 생겼던 용어로 온프레미스에서 주로 사용했던 단어이며 오늘날  클라우드 컴퓨팅에서 탄력(Elastic)적이라는 단어를 사용합니다.
  • 목표 TPS만큼 테스트가 안되면 목표 TPS만큼 테스트가 안되면 테스트 통과 실패 - 
  • Failed test if target TPS is not testedTPS가 높아도 목표 사용자수가 안되면 테스트 통과 실패 - 
    Test pass failure if TPS is high but the number of target users is not enough
  • 목표한 API 허용 에러률(1%)보다 높아도 테스트 통과 실패   (스크립트 오류및 테스트 노드장비 문제일수도 있음)
    Test pass failure (possibly a script error and test node equipment problem) even higher than the targeted API tolerance error rate (1%)
  • 로드 테스트를 너무 많이해서 DB FUll이 나서 테스트 통과 실패 - 
    Too many load tests, DB FUll and test fail
  • 로드 테스트를 너무 많이해서 DB FUll이 나서 테스트 통과 실패 - 
  • 알수없는 이유로 여러개의 노드중 1개의 노드가 Crash되어도 테스트 통과 실패 ( 에러율이 1%보다 높아짐)  - 
    If one of the nodes is crashed for unknown reasons, the test fails (the error rate is higher than 1%).
  • 에러율이 낮아도 짧은기간에 에러 집중되면 테스트 통과 실패 - 
    If the error rate is low but errors are concentrated in a short period of time,
  • 테스트를 모두 통과해도, 평균 허용치 CPU(80%)사용율을 특정시간동안 지속되면 테스트 실패 - If the test passes all but the average tolerance CPU (80%) utilization lasts for a certain amount of time, the test fails
  • 코드수정및 스케일 코드수정및 스케일 아웃처리로 모든 로드 테스트를 통과해도, 이미 통과한 QA Sign OFF를 다시 받아야함, 이과정중 Codefix가 발생하면 다시 로드 테스트 수행 -If you pass all load tests with code modification and scale-out processing, you must re-receive the QA Sign OFF that has already passed. If Codefix occurs during this process,
  • 서버가 대용량 처리가 안정화 되어 ,장시간 테스트시 결국 분산 테스트툴보다 더 오래 버팀 (분산 테스트툴을 주기적으로 리셋해야되는 상황발생) -The server has stabilized large-scale processing, and after a long period of testing, it eventually runs longer than the distributed test tool (a situation where the distributed test tool periodically needs to be reset)버팀 (분산 테스트툴을 주기적으로 리셋해야되는 상황발생) -
  • 이모든 장벽을 다통과해도 테스트 시나리오때 누락된 테스트항목으로 문제발생 ( 사용자 플래폼 변경에 따른 레거시 → 신규서비스 전환 테스트 미스) - 레거시 테스트 시나리오까지 작성하기 어려움 -
    Problems with missing test items in test scenarios even if all the barriers are passed through (legacy → new service conversion test due to user platform change) - difficulty in creating legacy test scenarios
    이쯤되면 노하우보다 예지력이 생겨서 HotFix  , 신규서비스(html5) 전환 성공 -At this point, know-how is more predictive than HotFix, new service (html5) conversion success,신규서비스 전환 테스트 미스) - 레거시 테스트 시나리오까지 작성하기 어려움 -



위와 같은 수준의 로드(퍼포먼스,스파크,안정성) 테스트  하게되면  노하우보다 예지력이 생길수도있으며
성능테스트는 측정하지 못하면 개선할수 없다가 기본전제이기때문에 고수준의 모니터링 툴이 사실 전제가 되어야합니다.

글로벌 특정 카테고리기준 Top트래픽에 속했던 프로덕트의 측정과정의 수치를 공개합니다.


Daily LoadTest

스크립트자체 검증과 서버검증을 통과할떄까지 수행

...


Expand

15,000 accounts

Transaction Name 

Total

Count 

Failed

Count 

Error

ratio 

TPS

 Target

MaxLoad

Overall

Avg

Avg
Login15000 1


Get Cash Tables by Filter1270710 1920 96
238.379 
Get Zone Games by Filter317442 1220 0.151 21
58.887 
Get Zone Buyin Info11250 1699 15.10 0.75 
1.799 
Request Zone Buyin9540 831 8.710 0.75 
1.640 
Launch Game84834 5.5 
15.976 
KeepAlive660986 50 
124.479 
getTournamentsByFilter 2452047  0.19113
4.609 
getTournamentsInfo5311 0.094 4
 0.999
getTournamentsState592242 1184 0.199300
 110.067
getTournamentsTables1775050 3398  0.191900
 329.917
getTournamentsLeaderboard1771648  - -900
 329.916
getTournamentsRank4197  - -4
 0.790
getTournamentsBuyinInfo5306 418  7.8774
 0.921
tournamentsBuyin4888 691 14.1364
 0.790
unRegister 226 - - 0.25
 0.043
Overall error rate



Image file

 

Max Clients15,000
Ramp up15min
Time to run70min
Ramp down5min

...