mv해야 하는 대용량 파일이 있는데 Nice -n19를 사용해도 서버 성능에 영향을 미치는 것 같습니다.
한 가지 옵션은 프로세스를 "청크" 단위로 실행하는 것입니다. 즉, 몇 초 동안 명령을 실행한 다음 몇 초 동안 잠자기 상태로 유지한 다음 프로세스를 다시 시작하는 것입니다.
명령줄에서 이를 수행할 수 있는 방법이나 더 나은 대안이 있습니까? 현재 Ctrl Z와 fg를 수동으로 수행합니다.
답변1
mv
I/O 병목 현상은 일반적으로 많은 CPU 주기를 필요로 하지 않으므로(암호화/암호 해독이 포함되지 않는 한) 성능에 영향을 줄 수 있습니다 . nice
작업이 CPU에서 실행되도록 작업 목록에서 작업의 예약 우선순위를 변경합니다.
nice
그러니 시도 하지 마세요 (커널 > 2.6.25의 경우).
ionice -c3 mv <src> <dest>
~에서ionice -h
ionice [options] <command>
-c, --class <class> name or number of scheduling class,
0: none, 1: realtime, 2: best-effort, 3: idle
~에서man ionice
Idle A program running with idle I/O priority will only get disk time
when no other program has asked for disk I/O for a defined grace
period. The impact of an idle I/O process on normal system activity
should be zero.
답변2
그것은 다음과 같습니다:
$command & pid=$!
while kill -STP -$pid && sleep $interval && kill -CONT -$pid && sleep $interval; do :; done
이것을 할 수 있습니다.
작업 제어는 실제로 이 두 신호(SIGSTP 및 SIGCONT)를 전송하므로 이는 기본적으로 수동으로 수행되는 작업 제어입니다.