한 하드 드라이브에서 다른 하드 드라이브로 대용량 디렉토리를 이동하려고 합니다. 약 6TB의 작은 파일(주로 4kb-100kb)이 있습니다.
약 5일 동안 진행되었으며 완료하는 데 15~30일이 더 걸릴 것으로 예상했습니다. 이는 제가 원하는 것보다 훨씬 길고 6TB 파일을 복사하는 것보다 훨씬 더 깁니다.
돌이켜보면 다음과 같이 읽었어야 했습니다.1,000,000개의 작은 파일 복사 속도 향상하지만 뮤비를 시작하기 전에는 이런 생각을 하지 않았고, 뮤비가 완성되기까지 거의 한 달이 걸릴 거라고는 예상하지 못했습니다.
mv가 디스크 위치별로 정렬되지 않았기 때문에 소스 하드 드라이브가 너무 많은 검색을 수행하고 있는 것 같습니다.
이전에 동일한 소스 및 대상 하드 드라이브로 mv를 사용하여 대용량 2TB 파일을 처리했는데 빠르게 완료되었으므로 하드 드라이브가 문제라고 생각하지 않습니다.
지금까지 시도한 내용은 다음과 같습니다.
- mq-deadline read_expire 및 write_expire 설정을 추가합니다.
- bfq 스케줄러로 전환하세요. 2A. 낮은 대기 시간 옵션을 비활성화합니다. 2B. 역방향 검색 페널티를 추가했습니다.
- /proc/sys/vm/dirty_ratio 늘리기
- /proc/sys/vm/dirty_writeback_centisecs 및 /proc/sys/vm/dirty_expire_centisecs 추가
- /proc/sys/vm/vfs_cache_Pressure 줄이기
이들 중 어느 것도 크게 개선되지 않았습니다. 이론적으로는 더 많은 읽기 및 쓰기가 예약되므로 스케줄러가 섹터 축소 검색을 통해 이를 정렬할 수 있습니다. 나는 또한 표면적으로 논리적으로 보이는 bfq의 역방향 검색 페널티를 좋아합니다.
기존 mv 프로세스의 기간을 줄이는 옵션이 있습니까? 아니면 mv 프로세스를 중지하고 다른 것을 사용할 가치가 있습니까? 아니면 너무 오랫동안 실행했기 때문에 기다려야 하고 mv를 중지하면 알 수 있습니다. I 원본 디렉터리에 모든 파일이 남아 있으므로 복구하기가 어렵습니다.