Jenkins 서버에 약 50 개의 슬레이브가 연결되어 있습니다. Jenkins Build Queue에 대한 문서를 찾을 수 없어 일부 스트레스 테스트를 수행하려고합니다.Jenkins 빌드 큐에 15K 작업 추가
하나의 단계만으로 매개 변수화 된 간단한 작업이 있고, BRANCH 및 COUNT가 작업 매개 변수입니다. 10 초에서 30 초 사이의 임의의 시간 동안 작업 잠함 :
#bash
RESULT="/path/to/results_dir/$BRANCH/$BUILD_ID.txt"
SEC=$(shuf -i10-30 -n1)
sleep $SEC
echo -e "$NODE_NAME\t$BUILD_TAG\t$SEC\t$COUNT" > $RESULT
이 작업을 15K 번 실행하고 싶습니다.
for c in $(seq 1 15000); do curl -X POST http://<server ip>:8080/job/TEST_SIMPLE/buildWithParameters --data-urlencode "token=TEST" --data-urlencode "BRANCH=<branch name>" --data-urlencode "COUNT=${c}"; done
을하지만 시간 이후에만 4K 작업은 제출 된, 그래서 루프를 살해하고 젠킨스는 큐를 구축 제거 : 은 처음에는 명령 줄에서 젠킨스 REST API를 사용했습니다.
두 번째 시도는 system groovy 스크립트를 사용하고 'job.scheduleBuild'API를 호출하여이 'TEST_SIMPLE'작업을 트리거하는 다른 작업을 사용하는 것입니다. 현재 1.5 시간 동안 실행 중이며 15K에서 8K 개의 작업 만 제출했습니다.
노예가 큐
이러한 노력의 목적은 많은 많은 테스트를 포함하는 우리의 테스트 스위트에 대한 아주 오래된 집행자/디스패처를 대체하는 것입니다 (하나를 소요하는 경우에만 작업이 대기열에 추가 된 것으로 보인다 ~ 15K) Jenkins와 POC를하고 있습니다. 이미 Jenkins를 빌드에 사용하고 있으며이 오래된 집행자를 돌리고 있기 때문입니다.
제 궁금한 사항은 입니다. 1. 빌드 대기열의 크기에는 제한이 있습니까? 2. 이렇게 많은 요청을 매우 빠르게 제출할 수있는 방법이 있습니까?
감사합니다. 내가 제대로 귀하의 게시물을 이해한다면