【GCP】DataFlow를 이용하여 DataStore에 데이터를 등록(퍼포먼스 측정)
소개
GCP의 데이터 파이프라인을 구축하는 제품인 Dataflow를 이용해
DataStore에 데이터를 등록했을 때의 퍼포먼스나 오토스케일에 대해 공유합니다.
처음 쪽은, 이하 기사를 전제로 하고 있으므로, 참조를 부탁합니다.
htps : // 이 m/사스케 9097/이고 ms/c3538933060f18b4c199
전제
할 수 있게 되는 것
결과
먼저 결과에서 알려 드리겠습니다.
10만 건을 넘은 근처에서 JOB 실행 시간이 바뀝니다.
2분간은 워커의 기동이나 정지에 소비하고 있는 것 같습니다.
CPU 시간은 깨끗하게 데이터 양에 비례합니다.
처리 건수
JOB 실행 시간
CPU 시간(Read)
CPU 시간(Regist)
Worker 수
1
2분 11초
1초
1초
1
100
2분 12초
1초
1초
1
1,000
2분 12초
1초
3초
1
10,000
2분 49초
1초
33초
1
100,000
6분 33초
3초
5분 28초
1 -> 2
1,000,000
12분 4초
9초
58분 16초
1 -> 11 -> 13
오토스케일의 구조
DataFlow의 자동 스케일 지표는 처리량입니다.
우선, 2, 3분 처리를 움직여 보고 처리량이나 CPU 사용률 등을 바탕으로
Worker 수를 결정하는 것 같습니다.
이하가 1,000,000건 처리시의 오토스케일 로그입니다.
성능 튜닝
성능 튜닝으로 구성 가능한 옵션은 다음과 같습니다.
역시, 가장 간단한 것은 디폴트 Woker수라고 생각합니다.
VM의 CPU는 과금에의 영향이 클 것 같기 때문에 피하고 싶습니다.
이번에는 1,000,000건 처리를 10분 이내에 완료할 수 있도록 튜닝합니다.
명령 실행
포인트는 "--num-workers=6"입니다.
JOB 실행 시 작업자 수를 지정할 수 있습니다.
gcloud dataflow jobs run testText2Datastore --gcs-location gs://dataflow-templates-asia-northeast1/latest/GCS_Text_to_Datastore --region asia-northeast1 --staging-location gs://test-20201003/temp/ --parameters textReadPattern=gs://test-20201003/test1m.json,datastoreWriteProjectId=ace-charter-291406,errorWritePath=gs://test-20201003/error/failure.txt --num-workers=6
실행 결과
9분 35초에 완료되었습니다.
작업자 수는 12로 확장되었습니다.
마지막으로
오토스케일을 이용하면 데이터량이 급증해도 어느 정도 처리 시간을 억제할 수 있다.
할 수 있다는 것을 알았습니다.
10배로 증가해도 처리 시간이 10배가 되지는 않았습니다.
데이터 양에 따라 초기 Worker 수를 변경하는 것이 성능 튜닝의 기본이 될 것이라고 생각합니다.
다음은 Dataflow의 UDF(사용자 정의 함수)를 이용하여 가공 처리를 넣고 싶습니다.
Reference
이 문제에 관하여(【GCP】DataFlow를 이용하여 DataStore에 데이터를 등록(퍼포먼스 측정)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sasuke9097/items/cbb77f62414cde5b5096텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)