Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- c3 축 없애기
- gcc regex
- selinux port 등록
- python os
- centos pyhon 설치
- snmp test
- subporcess path
- g++ 업데이트
- c3 second
- InfluxDB
- telegraf
- 정규식 활용
- 정규식 컴파일
- grafana dashboard
- regex_search
- 정규식 문자열 출력
- 백준
- CentOS7
- c3 축 가리기
- snmp
- c++ 정규식
- c3 step graph
- gcc 업데이트
- semanage
- 1697
- python popen
- influxdb 설치
- python subprocess
- linux시간으로 변경
- c3 초
Archives
- Today
- Total
리셋 되지 말자
csapi 프로젝트 (5) - docker compose scaling 테스트 본문
https://not-to-be-reset.tistory.com/343 글에 작성한 대로, 모델 다운로드 링크가 만료되고 코드가 동작하지 않아서 다시 포스팅 합니다.
단일 인스턴스 부터 쿠버네티스 클러스터까지 확장해 나가려고 합니다.
개발환경
2023. 7. 22 기준 wsl 윈도우에서 진행
github 주소
https://github.com/kyeongjun-dev/csapi
커밋 : https://github.com/kyeongjun-dev/csapi/tree/d07fe3c082b503f00f2bec3dea2f5c3b02a1349f
scaling (스케일링 테스트)
먼저 docker compose up을 진행한다
docker-compose up --build
이 상태에서 localhost:8000으로 3번 빠르게 접속한다. 그러면 아래와 같이 3개의 Job을 csapi-worker-1 컨테이너에서 received 했다고 표시된다.
csapi-django-1 | 44bc05d9-bb8b-4a33-93df-80c90534f9f1
csapi-worker-1 | [2023-08-05 12:27:49,822: INFO/MainProcess] Task csapi.tasks.api[44bc05d9-bb8b-4a33-93df-80c90534f9f1] received
csapi-django-1 | [05/Aug/2023 12:27:49] "GET / HTTP/1.1" 200 36
csapi-worker-1 | [2023-08-05 12:27:49,823: INFO/MainProcess] Task csapi.tasks.api[bed544ab-020b-4c48-a737-f66065125e61] received
csapi-django-1 | c21179a3-4375-4545-9f9e-cf5375199231
csapi-worker-1 | [2023-08-05 12:27:50,652: INFO/MainProcess] Task csapi.tasks.api[c21179a3-4375-4545-9f9e-cf5375199231] received
csapi-django-1 | [05/Aug/2023 12:27:50] "GET / HTTP/1.1" 200 36
그러면 Job이 순차적으로 계속 실행되며, 아래와 같이 30초가 넘게 걸리는걸 확인할 수 있다.
csapi-worker-1 | [2023-08-05 12:28:00,077: INFO/ForkPoolWorker-1] Task csapi.tasks.api[f641e5aa-f698-4348-b8df-516114182243] succeeded in 11.298834682000006s: 'f641e5aa-f698-4348-b8df-516114182243'
...
csapi-worker-1 | [2023-08-05 12:28:17,844: INFO/ForkPoolWorker-2] Task csapi.tasks.api[02946265-7e27-45ba-bd74-458897fa3384] succeeded in 14.63500473199997s: '02946265-7e27-45ba-bd74-458897fa3384'
...
csapi-worker-1 | [2023-08-05 12:28:28,910: INFO/ForkPoolWorker-3] Task csapi.tasks.api[44bc05d9-bb8b-4a33-93df-80c90534f9f1] succeeded in 10.853035019999993s: '44bc05d9-bb8b-4a33-93df-80c90534f9f1'
이제 새로운 터미널창을 열고, 같은 위치에서 아래 명령어를 사용해 worker 컨테이너의 개수를 3개로 증가시킨다.
$ ls
celery django docker-compose.yml
$ docker-compose up --scale worker=3
그러면 아래와 같이 worker 컨테이너가 3개로 증가한걸 확인할 수 있다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5452ac627bbd csapi-worker "celery -A csapi.tas…" 11 seconds ago Up 9 seconds csapi-worker-2
80ba8326dfcf csapi-worker "celery -A csapi.tas…" 11 seconds ago Up 9 seconds csapi-worker-3
6f65bd8c05a6 rabbitmq:3-management "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 4369/tcp, 5671-5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp csapi-rabbit-1
9c9f9c12b482 csapi-django "python manage.py ru…" 5 minutes ago Up 5 minutes 0.0.0.0:8000->8000/tcp csapi-django-1
093ccc4a4d15 csapi-worker "celery -A csapi.tas…" 5 minutes ago Up 5 minutes csapi-worker-1
이 상태에서 다시 localhost:8000 접속을 빠르게 3번 반복한다. 그러면 작업시간은 소폭 증가했지만, 동시에 3개의 Job이 동시에 처리됨을 확인할 수 있다.
csapi-worker-2 |
csapi-worker-2 |
csapi-worker-2 | [2023-08-05 12:32:46,739: INFO/ForkPoolWorker-2] Task csapi.tasks.api[ff8f9615-992a-4619-b92a-7cdbb9c6887f] succeeded in 17.896325994000108s: 'ff8f9615-992a-4619-b92a-7cdbb9c6887f'
1/1 [==============================] - ETA: 0sRNING/ForkPoolWorker-2]
1/1 [==============================] - 12s 12s/step/ForkPoolWorker-2]
csapi-worker-3 |
csapi-worker-3 |
csapi-worker-3 | [2023-08-05 12:32:48,921: INFO/ForkPoolWorker-2] Task csapi.tasks.api[b37ddb60-5e1a-46eb-b885-0579d82851f8] succeeded in 18.614348629999995s: 'b37ddb60-5e1a-46eb-b885-0579d82851f8'
1/1 [==============================] - ETA: 0sRNING/ForkPoolWorker-8]
1/1 [==============================] - 9s 9s/stepNG/ForkPoolWorker-8]
csapi-worker-1 |
csapi-worker-1 |
csapi-worker-1 | [2023-08-05 12:32:54,078: INFO/ForkPoolWorker-8] Task csapi.tasks.api[3540d408-526d-4bd3-915a-13d4c2ebcfe4] succeeded in 20.657165330999987s: '3540d408-526d-4bd3-915a-13d4c2ebcfe4
확인을 위해서 브라우저에 localhost:15672로 접속 후, docker-compose.yml 파일에 작성한 rabbit 컨테이너의 환경변수인 ID guest, PASSWD guest로 접속하면 아래와 같이 확인이 가능하다.
'프로젝트' 카테고리의 다른 글
csapi 프로젝트 (7) - 이미지 저장 기능 추가 (0) | 2023.09.22 |
---|---|
csapi 프로젝트 (6) - 이미지 업로드 기능 추가 (0) | 2023.09.06 |
csapi 프로젝트 (4) - django 추가 (0) | 2023.07.28 |
csapi 프로젝트 (3) - celery 함수화 (0) | 2023.07.23 |
csapi 프로젝트 (2) - celery 적용 (0) | 2023.07.22 |
Comments