일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BigQuery
- subdag
- top_k
- session 유지
- gather_nd
- 유튜브 API
- chatGPT
- spark udf
- GenericGBQException
- correlation
- tensorflow text
- 상관관계
- airflow subdag
- GCP
- UDF
- 공분산
- Counterfactual Explanations
- youtube data
- requests
- API
- TensorFlow
- Retry
- flask
- XAI
- grad-cam
- hadoop
- login crawling
- integrated gradient
- Airflow
- API Gateway
- Today
- Total
데이터과학 삼학년
Load balancing을 위한 crontab - 젠킨스 스케쥴러 (h * * * * ) 본문
젠킨스는 빌드 스케쥴을 설정할 때 crontab 문법에 기반하여 스케쥴 가능하다.
젠킨스 내에서 여러개의 잡을 돌린다면
스케쥴을 자동으로 조절해 로드 밸런싱을 할 수 있는 방법이 있다.
주기적으로 스케쥴되는 태스크를 지정하기 위해서는 'H' 심볼을 사용해서 부하를 줄인다.
(랜덤한 값 부여하여 실행)
1. 매시각 정각에 빌드
0 * * * *
> 이렇게 지정하면 1시 정각, 2시 정각, ... 으로 실행
2. 1시간 간격으로 빌드를 하려면 아래와 같이 하면 된다.
H * * * *
> 가령 1시 42분, 2시 42분, ...과 같이 실행 '분'이 랜덤하게 지정되어 실행!
두가지 방법 0 * * * *과 H * * * *의 차이점은 무엇일까?
0 * * * *로 스케쥴을 지정한 Job이 많은 경우, 모든 작업이 정확히 정각에 빌드를 실행하므로 순간적으로 빌드 장비의 리소스 사용이 급격히 늘어난다.
하지만 H * * * *로 지정한 경우에는 1시간 간격으로 실행한다라고만 지정했으므로 젠킨스가 내부적으로 빌드 시간을 결정해서 빌드를 하므로 부하가 골고루 분산되는 효과를 얻을 수 있다.
주기적으로 실행하는 빌드가 있다면 0 * * * * 처럼 시간을 직접 지정한 방식 보다는 H * * * *가 제한된 리소스를 가진 빌드 환경에서 보다 효과적
3. 20분 간격으로 빌드
H/20 * * * *
> 7시3분, 7시23분, 7시43분 뭐 이린 식으로 실행이 될 것이다.
4. 일요일밤 밤 11시에 빌드
00 23 * * 0
5. 매 시간 전반 30분에 10분 간격으로 빌드
H(0-29)/10 * * * *
>범위와 간격을 모두 지정 가능
6. 월요일부터 금요일까지 오전 9시부터 오후 4시까지 2시간 간격으로 빌드
H 9-16/2 * * 1-5
7. 1월부터 11월까지 각 월의 1일과 15일에 하루 한번 빌드
H H 1,15 1-11 *
출처: https://khie74.tistory.com/1169521477
Jenkins 빌드 스케쥴 설정하기
젠킨스는 빌드 스케쥴을 설정할 때 cron syntax를 따른다. 각 라인은 아래와 같이 5개의 필드를 탭키나 공백으로 구분해서 써주면 된다. 분 시 일 월 주 또한 한 필드에서 여러
khie74.tistory.com
'DevOps' 카테고리의 다른 글
[Airflow] Airflow context variable (0) | 2023.01.24 |
---|---|
[GIT] LFS (Large File System) (0) | 2022.12.02 |
젠킨스 타임존 설정 (0) | 2021.03.14 |
젠킨스 파이프라인 관리 (공통화 활용) (0) | 2020.11.09 |
젠킨스 remote ssh pipeline (feat. nested parallel, remote ssh, gcloud compute ssh) (0) | 2020.08.28 |