데이터과학 삼학년

Load balancing을 위한 crontab - 젠킨스 스케쥴러 (h * * * * ) 본문

DevOps

Load balancing을 위한 crontab - 젠킨스 스케쥴러 (h * * * * )

Dan-k 2021. 4. 7. 20:34
반응형

젠킨스는 빌드 스케쥴을 설정할 때 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

 

728x90
반응형
LIST
Comments