현재 tar czf
백업 파일을 결합하기 위해 실행 중 입니다. 파일은 특정 디렉토리에 있습니다.
그러나 파일 수가 증가하고 있습니다. 사용하는 tzr czf
데 시간이 너무 오래 걸립니다 (20 분 이상 소요).
파일을보다 빠르고 확장 가능한 방식으로 결합해야합니다.
내가 발견 한 genisoimage
, readom
및 mkisofs
. 그러나 나는 어느 것이 가장 빠르며 각각의 한계가 무엇인지 모르겠습니다.
현재 tar czf
백업 파일을 결합하기 위해 실행 중 입니다. 파일은 특정 디렉토리에 있습니다.
그러나 파일 수가 증가하고 있습니다. 사용하는 tzr czf
데 시간이 너무 오래 걸립니다 (20 분 이상 소요).
파일을보다 빠르고 확장 가능한 방식으로 결합해야합니다.
내가 발견 한 genisoimage
, readom
및 mkisofs
. 그러나 나는 어느 것이 가장 빠르며 각각의 한계가 무엇인지 모르겠습니다.
답변:
대부분의 시간이 CPU 또는 I / O에서 소비되고 있는지 확인해야합니다. 어느 쪽이든, 그것을 향상시키는 방법이 있습니다 :
A : 압축하지 마십시오
요구 사항 목록에서 "압축"에 대해 언급하지 않았으므로 인수 목록에서 "z"를 삭제하십시오 tar cf
. 이것은 약간 속도를 높일 수 있습니다.
"-N"을 사용하여 이전에 이미 백업 한 파일을 건너 뛰는 등 프로세스 속도를 높이는 다른 기술이 있습니다.
B : dd로 전체 파티션 백업
또는 전체 파티션을 백업하는 경우 전체 디스크 이미지의 복사본을 대신 가져 가십시오. 이것은 프로세싱과 많은 디스크 헤드 탐색 시간을 절약 할 것 입니다. tar
더 높은 수준에서 작동하는 다른 프로그램은 파일 내용이있는 위치를 찾고 더 많은 헤드 디스크 탐색 을 수행하기 위해 디렉토리 항목과 inode를 읽고 처리해야하는 오버 헤드를 가지므로 디스크와 다른 위치에서 각 파일을 읽습니다.
기본 데이터를 훨씬 빠르게 백업하려면 다음을 사용하십시오.
dd bs=16M if=/dev/sda1 of=/another/filesystem
(이것은 RAID를 사용하지 않는다고 가정하므로 약간 변경 될 수 있습니다)
pigz
시스템에 둘 이상의 프로세서가있는 경우 사용 하십시오.
다른 사람들의 말을 반복하려면 백업중인 파일에 대해 더 알아야합니다. 여기 몇 가지 가정을하겠습니다.
파일이 디렉토리에만 추가되는 경우 (즉, 파일이 삭제되지 않는 경우) 매번 다시 작성하지 않고 기존 tar 파일에 추가해야합니다. tar
명령 에 기존 파일 이름 대신 새 파일 이름을 지정하거나 기존 파일 이름을 삭제하면됩니다.
쓰려는 동일한 디스크에서 읽으면 성능이 저하 될 수 있습니다. 다른 디스크에 기록하여 I / O로드를 분산 시키십시오. 보관 파일이 원본 파일과 동일한 디스크에 있어야하는 경우 나중에 이동하십시오.
@Yves가 말한 것을 반복하십시오. 백업 파일이 이미 압축되어 있으면 다시 압축 할 필요가 없습니다. 당신은 CPU 사이클을 낭비하고 있습니다.
에서와 같이 lz4 crompression과 함께 tar 사용
tar cvf - myFolder | lz4 > myFolder.tar.lz4
압축과 속도가 아닌 두 세계의 장점을 모두 제공합니다. 데이터에 이진 파일이 포함되어 있어도 압축률은 약 3입니다.
추가 자료 : 압축 알고리즘 비교 lz4로 tar하는 방법
덤프와 복원에 대해 언급 한 사람이 없다는 것에 놀랐습니다. 파일 시스템에 여유 공간이 있으면 dd 보다 훨씬 빠릅니다 .
문제의 파일 시스템에 따라 다른 도구가 필요할 수 있습니다.
일부 프로그램에는 기본 제공 압축 기능이 없습니다 (덤프 제외). 파이프를 표준 출력으로 사용하고 필요에 따라 pigz를 사용하십시오. ;-)
tar
파일을 읽는 것이 비용이 많이 드는 작업이므로 상당한 오버 헤드가 발생 한다는 것은 의심의 여지가 있습니다. 파일 저장 방식을 수정하거나 완전히 다른 접근 방식을 사용해야합니다 (파일 시스템 전체를 복사). 파일이 어떻게 구성되어 있는지 모른 채 도움을 줄 수 없습니다.