Scientific Linux 빌드 시스템이 있습니다.
$ cat /etc/redhat-release
Scientific Linux release 6.5 (Carbon)
빌드 프로세스의 일부로 많은(수백 개) 대상 파일이 단일 파일에 아카이브되는 아카이브 단계가 있습니다 .a
. 약 1분 정도 소요되는 이 보관 단계 중에는 다른 프로세스가 디스크에 쓸 수 없습니다. 예를 들어, 이 보관 단계 중에 vim 세션에 쓰려고 하는 사용자는 보관이 완료될 때까지 정지됩니다.
ionice를 사용하여 구축하는 사람들에도 불구하고 이런 일이 발생합니다.
ionice -c2 -n7 nice -n19 make -j64 PRETTY=1 <target>
파일에 쓰기 전에 vim 세션(및 tmux 세션 및 셸 세션 등)이 제대로 작동하므로 이는 io 문제인 것 같습니다.
이를 유발할 수 있는 병목 현상은 무엇입니까?
답변1
첫째: ionice -c3
유휴 스케줄링(원하는 것)을 의미하며 -c2
최선의 노력을 다합니다.
둘째 : 사용할 수 있습니다cgroups blkio 컨트롤러일정을 미세 조정하는 데 사용됩니다.
셋째: 물리적 코어보다 더 많은 스레드를 사용하지 마십시오. 따라서 컴퓨터에 64개의 코어가 없으면 코어 수를 낮추십시오. 예를 들어:-j4