tar
백업용으로 머신을 사용하고 있습니다 . 그러나 이는 많은 I/O를 사용하고 전체 시스템 속도를 저하시킵니다.
그럼 제한할 방법은 없나요?읽다속도 tar
?
알아요 pv
. 하지만 한계가 있을 뿐입니다쓰다속도. 증분 백업을 수행하고 있기 때문에 tar --listed-incremental
이 방법은 첫 번째 전체 백업에만 작동합니다(작은 변경 사항만 있는 경우 후속 증분 백업에서는 많은 읽기 I/O를 소비하게 됩니다).
nice
백업의 전체 우선순위를 낮추기 위해 및 의 조합을 사용해 보았지만 ionice
실제로는 아무것도 바뀌지 않았습니다.
정보: Debian 9 시스템이며 파일은 LVM 볼륨 상단의 ext4 파일 시스템에 있습니다.
답변1
run tar 명령을 사용할 수 있습니다 ionice
. 이와 같이:
ionice -c3 tar --listed-incremental [...]
tar
이렇게 하면 다른 프로세스가 I/O를 기다리고 있지 않을 때만 해당 프로세스가 I/O를 수행 하게 됩니다 .
데비안에서는 이 ionice
유틸리티가 패키지에 있으므로 util-linux
먼저 설치해야 할 수도 있습니다.
일반(CPU) nice
유틸리티와 마찬가지로 프로세스의 I/O 스케줄러 클래스는 해당 하위 프로세스에 상속됩니다. 리소스를 많이 사용하는 작업을 계획할 때 사용자의 I/O 속도가 느려지는 것을 원하지 않습니다. 나는 종종 다음과 같이 쉘을 시작합니다.
nice ionice -c3 bash
그러면 해당 쉘에서 수행하는 모든 작업이 정말 훌륭하게 작동할 것입니다. :)
답변2
cgroup 사용
mkdir -p /sys/fs/cgroup/blkio/g1
echo "8:0 1048576" > /sys/fs/cgroup/blkio/g1/blkio.throttle.read_bps_device
pgrep -f tar > /sys/fs/cgroup/blkio/g1/cgroup.procs