cp -a 속도를 높이는 방법(썸 드라이브 내에서 cp -a를 사용하는 것은 매우 느림)

cp -a 속도를 높이는 방법(썸 드라이브 내에서 cp -a를 사용하는 것은 매우 느림)

영구 운영 체제에서 썸 드라이브를 사용할 때 casper-rw운영 체제를 종료한 후 썸 드라이브를 너무 일찍 꺼내면 영구 파티션이 손상되는 일이 발생합니다.

불행하게도 ubuntustudio-20.04.2에서는 화면이 검은색일 때 종료 버튼을 클릭한 후 최대 1분의 시간이 걸렸지만 파티션에 과도한 쓰기 작업이 발생했습니다 casper-rw. 따라서 막대를 너무 일찍 당기면 쉽게 파손될 수 있습니다.

이러한 사고를 복구하기 위해 casper-rwQUELLE 및 ZIEL 변수를 적절하게 설정한 후 백업 파티션을 생성하고 명령을 사용합니다(슈퍼유저가 된 후).

time cp -a "${QUELLE}/upper" "${ZIEL}"

time cp -a "${QUELLE}/work" "${ZIEL}"

time cp -a "${QUELLE}/lost+found" "${ZIEL}"

내 스크립트가 실행되면

  • 매우 낮은 CPU 활동
  • RAM 사용량이 거의 없음
  • htopcp -a상태 D에서 프로세스가 매우 오랜 시간이 걸린다 는 것을 보여줍니다 .

내가 올바르게 이해했다면(수정해 주세요) 이는 USB 스틱의 컨트롤러가 이러한 많은 읽기 및 쓰기 작업을 효과적으로 처리할 수 없기 때문에 컴퓨터가 매우 자주 기다려야 함을 의미합니다(USB3 소켓의 USB3 장치임에도 불구하고!). .

허락할 수 있는 방법이 있나요 cp -a 속도를 높이기 위해 더 큰 버퍼를 사용하고 이상적으로는 전체 파일을 순차적으로 작성합니까?

답변1

upper먼저 디렉터리 및 (존재하는 경우) 파티션을 workSSD 의 일부 디렉터리에 복사하면 복사 속도를 크게 높일 수 있는 것 같습니다 . 이 단계는 2분 조금 넘게 걸립니다. 그런 목적으로 사용할 수 있습니다 .lost+foundcasper-rwcp -a

별도의 파티션에 있는 동일한 스틱에 백업하려는 경우 SSD에서 USB 스틱으로 복사하는 데 cp -a약 31분이 소요됩니다(약 66500개 파일의 4,1 GiB 데이터, USB3 소켓의 USB3 스틱). . rm -rf "${ZIEL}/upper"; rm -rf "${ZIEL}/work"; rm -rf "${ZIEL}/lost+found현재 콘텐츠가 백업 파티션에 복사되기 전에 파티션의 이전 콘텐츠가 지워졌습니다 .

재사용하기 전에 파티션을 이런 식으로 지우면 차이가 있는지, 아니면 순 콘텐츠가 거기에 배치되기 전에 파티션을 포맷하면 속도가 더 빨라지는지 아는 사람이 있습니까? 파손된 경우 casper-rw백업에서 콘텐츠를 복원하기 전에 포맷해야 합니다.

물론 backup.tar.gz. 이렇게 하면 기록할 데이터의 양이 줄어들고 특히 두 번째 단계에서는 그로부터 이익을 얻을 수 있습니다.

답변2

sync대상에 즉시 쓰기를 강제하는 데 사용합니다 .

파일을 만들고 cp대상 파일 시스템에 나타날 때 해당 파일이 실제로 저장 매체에 있는지는 아직 보장되지 않습니다.

그 이유는 데이터가 실제로 대상 저장 장치에 있을 때까지 더 빠르고 사용자 친화적인 다양한 내부 버퍼 사이에서 먼저 가져오기 때문입니다. 대상 장치에 데이터를 쓰는 것은 실제로 백그라운드에서 수행되며 많은 CPU 주기를 소비하지 않으므로 활동 모니터에서 이를 확인하기 어려울 수 있습니다.

sync복사 후에 다음을 사용하여 언제든지 버퍼에서 대상 저장 장치로 즉시 강제로 쓰기를 시도할 수 있습니다 .cp ${QUELLE} ${ZIEL} && sync

또한 rsync변경되었거나 새로운 파일을 대상으로 복사하는 데만 사용하는 것을 고려하십시오.

관련 정보