Comments (1)
클러스터를 어떻게 구성했는지 알려주세요~ (마스터 노드 : n 대, 워커 노드 n대)
- 마스터노드 1대, 워커노드 2대로 구성했습니다.
- 마스터 노드의 경우에는 적어도 3대 까지는 두는게 맞다고 생각하지만, 단순 과제용 이기 때문에 한대만으로 충분하다고 생각해 1대만 두었습니다.
- 워커노드의 경우에는 스트레스 테스트를 해가면서 점차적으로 늘렸는데 2대 까지만으로도 충분하다고 생각하여 2대로 구성했습니다.
스트레스 테스트 결과를 공유해주세요 (기존에 container 한대 운영시 한계점도 같이 공유해주세요)
- 변경된 점이 많아 단순 비교를 하기를 힘듭니다.
- 변경된 점
- 컨테이너 환경에서는 테스트를 local에서 진행 -> 쿠버네티스로 구성한 이후 원격에서 호출 (네트워크 전송 시간 추가)
- 레디스의 경우 앱과 같은 서버에서 띄워 local 간 통신 -> 쿠버네티스로 구성한 이후로는 DB서버에 레디스를 구성했습니다. (네트워크 전송 시간 추가)
- 이러한 점 때문에 동접자수 2000명으로 테스트할 경우 응답이 지나치게 낮아 동접자수 1000명 부터 다시 테스트 했습니다.
- 따라서 이전과 단순 비교는 힘들지만 테스트 결과는 아래와 같습니다.
컨테이너 환경, 로컬 레디스, 동접자 2000
running (1m10.9s), 0000/2000 VUs, 53107 complete and 0 interrupted iterations
default ✓ [======================================] 0000/2000 VUs 1m10s
✓ inquire successfully
checks.........................: 100.00% ✓ 53107 ✗ 0
data_received..................: 149 MB 2.1 MB/s
data_sent......................: 5.5 MB 77 kB/s
http_req_blocked...............: avg=335.93µs min=3.46µs med=5.09µs max=375.3ms p(90)=7.4µs p(95)=31.18µs
http_req_connecting............: avg=310.45µs min=0s med=0s max=375.07ms p(90)=0s p(95)=0s
✓ http_req_duration..............: avg=340.88ms min=1.81ms med=233.79ms max=2.29s p(90)=820.16ms p(95)=978.12ms
{ expected_response:true }...: avg=340.88ms min=1.81ms med=233.79ms max=2.29s p(90)=820.16ms p(95)=978.12ms
http_req_failed................: 0.00% ✓ 0 ✗ 53107
http_req_receiving.............: avg=1.54ms min=19.48µs med=284.86µs max=211.12ms p(90)=2.11ms p(95)=3.58ms
http_req_sending...............: avg=688.33µs min=9.59µs med=13.7µs max=291.56ms p(90)=68.96µs p(95)=177.05µs
http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
http_req_waiting...............: avg=338.66ms min=1.67ms med=232.22ms max=2.29s p(90)=817.78ms p(95)=975.69ms
http_reqs......................: 53107 748.819568/s
iteration_duration.............: avg=1.34s min=1s med=1.23s max=3.29s p(90)=1.82s p(95)=1.98s
iterations.....................: 53107 748.819568/s
vus............................: 95 min=34 max=1999
vus_max........................: 2000 min=2000 max=2000
평균 응답속도 340.88ms
Master 1, Worker 1, Replica 10, 동접자 1000
running (10m00.2s), 0000/1000 VUs, 110127 complete and 9 interrupted iterations
default ✓ [======================================] 0000/1000 VUs 10m0s
✗ inquire successfully
↳ 87% — ✓ 95874 / ✗ 14253
checks.........................: 87.05% ✓ 95874 ✗ 14253
data_received..................: 82 MB 136 kB/s
data_sent......................: 13 MB 21 kB/s
http_req_blocked...............: avg=329.82ms min=0s med=1µs max=59.51s p(90)=1µs p(95)=2µs
http_req_connecting............: avg=47.43ms min=0s med=0s max=23.55s p(90)=76.25ms p(95)=148.94ms
✗ http_req_duration..............: avg=1.08s min=0s med=130.73ms max=56.64s p(90)=1.48s p(95)=4.3s
{ expected_response:true }...: avg=1s min=6.51ms med=202.74ms max=56.64s p(90)=1.62s p(95)=4.27s
http_req_failed................: 12.94% ✓ 14253 ✗ 95874
http_req_receiving.............: avg=410.69µs min=0s med=74µs max=1.57s p(90)=207µs p(95)=678.69µs
http_req_sending...............: avg=79.8ms min=0s med=49µs max=44.3s p(90)=124µs p(95)=168µs
http_req_tls_handshaking.......: avg=235.6ms min=0s med=0s max=59.51s p(90)=0s p(95)=0s
http_req_waiting...............: avg=1s min=0s med=130.36ms max=45.53s p(90)=1.42s p(95)=4.19s
http_reqs......................: 110127 183.492507/s
iteration_duration.............: avg=2.8s min=8.59ms med=1.16s max=1m0s p(90)=3.59s p(95)=12.62s
iterations.....................: 110127 183.492507/s
vus............................: 1 min=1 max=1000
vus_max........................: 1000 min=1000 max=1000
평균 응답속도 1.08s
Master 1, Worker 1, Replica 5, 동접자 1000
running (10m00.8s), 0000/1000 VUs, 269625 complete and 0 interrupted iterations
default ✓ [======================================] 0000/1000 VUs 10m0s
✓ inquire successfully
checks.........................: 100.00% ✓ 269625 ✗ 0
data_received..................: 779 MB 1.3 MB/s
data_sent......................: 24 MB 39 kB/s
http_req_blocked...............: avg=497.53µs min=0s med=1µs max=1.57s p(90)=1µs p(95)=1µs
http_req_connecting............: avg=25.43µs min=0s med=0s max=170.64ms p(90)=0s p(95)=0s
✓ http_req_duration..............: avg=113.57ms min=6.05ms med=35.41ms max=3.55s p(90)=327.42ms p(95)=435.33ms
{ expected_response:true }...: avg=113.57ms min=6.05ms med=35.41ms max=3.55s p(90)=327.42ms p(95)=435.33ms
http_req_failed................: 0.00% ✓ 0 ✗ 269625
http_req_receiving.............: avg=192.19µs min=9µs med=81µs max=756.84ms p(90)=178µs p(95)=343µs
http_req_sending...............: avg=64.88µs min=7µs med=50µs max=5.15ms p(90)=105µs p(95)=139µs
http_req_tls_handshaking.......: avg=470.07µs min=0s med=0s max=1.56s p(90)=0s p(95)=0s
http_req_waiting...............: avg=113.31ms min=5.84ms med=35.17ms max=3.55s p(90)=327.12ms p(95)=435.05ms
http_reqs......................: 269625 448.811363/s
iteration_duration.............: avg=1.11s min=1s med=1.03s max=4.55s p(90)=1.32s p(95)=1.43s
iterations.....................: 269625 448.811363/s
vus............................: 3 min=3 max=1000
vus_max........................: 1000 min=1000 max=1000
평균 응답 속도 113.57ms
Master 1, Worker 2, Replica 10, 동접자 1000
running (10m00.3s), 0000/1000 VUs, 294011 complete and 0 interrupted iterations
default ✓ [======================================] 0000/1000 VUs 10m0s
✓ inquire successfully
checks.........................: 100.00% ✓ 294011 ✗ 0
data_received..................: 849 MB 1.4 MB/s
data_sent......................: 26 MB 43 kB/s
http_req_blocked...............: avg=139.96µs min=0s med=1µs max=3.88s p(90)=1µs p(95)=1µs
http_req_connecting............: avg=28.9µs min=0s med=0s max=442.91ms p(90)=0s p(95)=0s
✓ http_req_duration..............: avg=21.15ms min=5.94ms med=12.16ms max=3.64s p(90)=26.14ms p(95)=39.72ms
{ expected_response:true }...: avg=21.15ms min=5.94ms med=12.16ms max=3.64s p(90)=26.14ms p(95)=39.72ms
http_req_failed................: 0.00% ✓ 0 ✗ 294011
http_req_receiving.............: avg=159.63µs min=10µs med=80µs max=2.21s p(90)=171µs p(95)=301µs
http_req_sending...............: avg=63.79µs min=7µs med=50µs max=9.71ms p(90)=102µs p(95)=135µs
http_req_tls_handshaking.......: avg=109.1µs min=0s med=0s max=3.78s p(90)=0s p(95)=0s
http_req_waiting...............: avg=20.93ms min=3.96ms med=11.94ms max=3.64s p(90)=25.91ms p(95)=39.49ms
http_reqs......................: 294011 489.798549/s
iteration_duration.............: avg=1.02s min=1s med=1.01s max=4.9s p(90)=1.02s p(95)=1.04s
iterations.....................: 294011 489.798549/s
vus............................: 3 min=3 max=1000
vus_max........................: 1000 min=1000 max=1000
평균 응답속도 21.15ms
Master 1, Worker 2, Replica 10, 동접자 1500
running (10m00.4s), 0000/1500 VUs, 414706 complete and 0 interrupted iterations
default ✓ [======================================] 0000/1500 VUs 10m0s
✓ inquire successfully
checks.........................: 100.00% ✓ 414706 ✗ 0
data_received..................: 1.2 GB 2.0 MB/s
data_sent......................: 36 MB 60 kB/s
http_req_blocked...............: avg=339.33µs min=0s med=1µs max=923.03ms p(90)=1µs p(95)=1µs
http_req_connecting............: avg=47.14µs min=0s med=0s max=354.55ms p(90)=0s p(95)=0s
✓ http_req_duration..............: avg=86.19ms min=5.62ms med=29.45ms max=4.65s p(90)=239.08ms p(95)=327.67ms
{ expected_response:true }...: avg=86.19ms min=5.62ms med=29.45ms max=4.65s p(90)=239.08ms p(95)=327.67ms
http_req_failed................: 0.00% ✓ 0 ✗ 414706
http_req_receiving.............: avg=161.64µs min=9µs med=62µs max=1.95s p(90)=125µs p(95)=215µs
http_req_sending...............: avg=48.49µs min=6µs med=40µs max=15.24ms p(90)=76µs p(95)=100µs
http_req_tls_handshaking.......: avg=290.61µs min=0s med=0s max=916.69ms p(90)=0s p(95)=0s
http_req_waiting...............: avg=85.98ms min=5.55ms med=29.25ms max=4.65s p(90)=238.82ms p(95)=327.41ms
http_reqs......................: 414706 690.704449/s
iteration_duration.............: avg=1.08s min=1s med=1.03s max=5.68s p(90)=1.24s p(95)=1.32s
iterations.....................: 414706 690.704449/s
vus............................: 3 min=3 max=1500
vus_max........................: 1500 min=1500 max=1500
평균 응답속도 86.19ms
Master 1, Worker 2, Replica 10, 동접자 2000
running (10m06.5s), 0000/2000 VUs, 484948 complete and 0 interrupted iterations
default ✓ [======================================] 0000/2000 VUs 10m0s
✓ inquire successfully
checks.........................: 100.00% ✓ 484948 ✗ 0
data_received..................: 1.4 GB 2.3 MB/s
data_sent......................: 42 MB 70 kB/s
http_req_blocked...............: avg=995.44µs min=0s med=1µs max=3.56s p(90)=1µs p(95)=1µs
http_req_connecting............: avg=75.33µs min=0s med=0s max=1.04s p(90)=0s p(95)=0s
✓ http_req_duration..............: avg=246.03ms min=6.07ms med=113.41ms max=14.7s p(90)=618.73ms p(95)=771.57ms
{ expected_response:true }...: avg=246.03ms min=6.07ms med=113.41ms max=14.7s p(90)=618.73ms p(95)=771.57ms
http_req_failed................: 0.00% ✓ 0 ✗ 484948
http_req_receiving.............: avg=437.3µs min=9µs med=62µs max=7.74s p(90)=130µs p(95)=244µs
http_req_sending...............: avg=49.29µs min=6µs med=40µs max=13.6ms p(90)=75µs p(95)=99µs
http_req_tls_handshaking.......: avg=918.41µs min=0s med=0s max=3.43s p(90)=0s p(95)=0s
http_req_waiting...............: avg=245.55ms min=4.44ms med=113.17ms max=14.7s p(90)=618.18ms p(95)=770.63ms
http_reqs......................: 484948 799.588046/s
iteration_duration.............: avg=1.23s min=1s med=1.11s max=9.88s p(90)=1.62s p(95)=1.77s
iterations.....................: 484948 799.588046/s
vus............................: 5 min=5 max=2000
vus_max........................: 2000 min=2000 max=2000
평균 응답속도 246.03ms
결과
- 워커 노드 1대에 레플리카 5, 10인 경우에 비하면 워커 노드 2대의 경우 높은 성능을 보여줬음
- 워커 노드 3대 까지 테스트 하는 것은 낭비라 생각하여 여기서 테스트 종료
현재 워커노드에서 몇대의 컨테이너를 운영중인지 공유해주세요
현재는 2대의 워커노드에 총 10개의 컨테이너를 운영중입니다. 참고로 1대의 워커노드에 10개의 컨테이너를 운영했을 경우 자원을 지나치게 나눠 가져(추측) 오히려 1대의 워커노드에 5개의 컨테이너를 구성했을때 보다 성능이 좋지 않았습니다.
from infra-subway.
Related Issues (8)
- 1. 서비스 구성하기 HOT 16
- 8. 클러스터 운영하기 HOT 1
- 2. 서비스 배포하기 HOT 11
- 3. 서비스 운영하기 HOT 9
- 5. 화면 응답 개선하기 HOT 4
- 4. 성능 테스트하기 HOT 10
- 6. 조회 성능 개선하기 HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from infra-subway.