약 6MB / s (대역폭 제한)로 rtorrent를 사용하여 라즈베리 파이에 장착 된 SD 카드의 파일을 다운로드하고 있습니다. 사용자 프로세스는 데이터 자체를 플러시하지 않으며 디스크 캐시가 플러시되는 간격은 sysctl 값에 따라 다릅니다.
iostat와 nload를 사용하여 네트워크 대역폭과 디스크 쓰기 프로파일을 볼 수 있습니다.
디스크:
20M/s .....x.....x....xx...
.....x....xx....xx...
....xx....xx....xx...
0M/s ....xx....xx....xx...
회로망:
5M/s ..xxx....x.. x.....x.
.xxxx...xx..xxx...xxx
0M/s xxxxx...xxx.xxx...xxx
분명히 플러시 중에 IO 기록기가 항상 일시 중지됩니다. 3 개의 코어가 영구적으로 유휴 상태 인 4 코어 CPU이며 플러시 중에 100 % iowait라고합니다.
while true; do sync; sleep 1; done
다운로드 하는 동안 디스크 플러시가 매초 6MB로 매끄 럽습니다. 그리고 다운로더 프로세스는 질식되지 않으므로 대역폭은 일정합니다.
나는 다음과 같은 효과를 얻을 수 있습니다.
/proc/sys/vm/dirty_writeback_centisecs:
디스크 캐시 플러시 킥 빈도-단위는 100 초입니다. 기본값 : 500
그리고 /proc/sys/vm/dirty_expire_centisecs:
페이지는 초 100의에 홍조를받을 수하는 방법을 옛날을해야합니다; 기본값 : 3000
이들을 각각 100과 200으로 설정하면 동일한 디스크 플러시 프로파일과 일정한 다운로드 대역폭이 달성됩니다.
라이터 프로세스를 차단하지 않도록이 튜닝을 자동으로 수행하는 방법이 있습니까 (예 : 가능한 한 자주 플러시)? 예를 들어, 다운로드 속도가 1MB / s 인 경우 5 초마다 플러시하면 충분합니다.