가장 빠른 방법은 많은 파일을 하나로 결합합니다 (tar czf가 너무 느림).


23

현재 tar czf백업 파일을 결합하기 위해 실행 중 입니다. 파일은 특정 디렉토리에 있습니다.

그러나 파일 수가 증가하고 있습니다. 사용하는 tzr czf데 시간이 너무 오래 걸립니다 (20 분 이상 소요).

파일을보다 빠르고 확장 가능한 방식으로 결합해야합니다.

내가 발견 한 genisoimage, readommkisofs. 그러나 나는 어느 것이 가장 빠르며 각각의 한계가 무엇인지 모르겠습니다.


tar파일을 읽는 것이 비용이 많이 드는 작업이므로 상당한 오버 헤드가 발생 한다는 것은 의심의 여지가 있습니다. 파일 저장 방식을 수정하거나 완전히 다른 접근 방식을 사용해야합니다 (파일 시스템 전체를 복사). 파일이 어떻게 구성되어 있는지 모른 채 도움을 줄 수 없습니다.
Gilles 'SO- 악마 그만해'

5
"noatime"옵션을 사용하여 FS를 마운트하면 IO 작업 속도가 향상 될 수 있습니다.
Rufo El Magufo

2
noatime의 경우 +1, 실제로 큰 차이를 만듭니다. 특히 일반 하드 드라이브 및 외부 쓰기를 줄이기위한 용도입니다.
JM Becker

답변:


25

대부분의 시간이 CPU 또는 I / O에서 소비되고 있는지 확인해야합니다. 어느 쪽이든, 그것을 향상시키는 방법이 있습니다 :

A : 압축하지 마십시오

요구 사항 목록에서 "압축"에 대해 언급하지 않았으므로 인수 목록에서 "z"를 삭제하십시오 tar cf. 이것은 약간 속도를 높일 수 있습니다.

"-N"을 사용하여 이전에 이미 백업 한 파일을 건너 뛰는 등 프로세스 속도를 높이는 다른 기술이 있습니다.

B : dd로 전체 파티션 백업

또는 전체 파티션을 백업하는 경우 전체 디스크 이미지의 복사본을 대신 가져 가십시오. 이것은 프로세싱과 많은 디스크 헤드 탐색 시간을 절약 할 것 입니다. tar더 높은 수준에서 작동하는 다른 프로그램은 파일 내용이있는 위치를 찾고 더 많은 헤드 디스크 탐색 을 수행하기 위해 디렉토리 항목과 inode를 읽고 처리해야하는 오버 헤드를 가지므로 디스크와 다른 위치에서 각 파일을 읽습니다.

기본 데이터를 훨씬 빠르게 백업하려면 다음을 사용하십시오.

dd bs=16M if=/dev/sda1 of=/another/filesystem

(이것은 RAID를 사용하지 않는다고 가정하므로 약간 변경 될 수 있습니다)


2
압축하지 마십시오 : 또는 pigz시스템에 둘 이상의 프로세서가있는 경우 사용 하십시오.
Rufo El Magufo

LZ4 / zstd 및 유사하게 빠른 압축 알고리즘은 압축에서 속도는 더 빠르지 만 데이터에 따라 효율성은 떨어지지 만 데이터를 적게 작성하여 (데이터가 압축 가능한 경우) 프로세스 속도를 높일 수 있는지 확인해야합니다. man gzip에 "기본 압축 수준은 -6"이라고 표시되어 있으므로 개선의 여지가 있습니다.
LiveWireBT

8

다른 사람들의 말을 반복하려면 백업중인 파일에 대해 더 알아야합니다. 여기 몇 가지 가정을하겠습니다.

tar 파일에 추가

파일이 디렉토리에만 추가되는 경우 (즉, 파일이 삭제되지 않는 경우) 매번 다시 작성하지 않고 기존 tar 파일에 추가해야합니다. tar명령 에 기존 파일 이름 대신 새 파일 이름을 지정하거나 기존 파일 이름을 삭제하면됩니다.

다른 디스크에 쓰기

쓰려는 동일한 디스크에서 읽으면 성능이 저하 될 수 있습니다. 다른 디스크에 기록하여 I / O로드를 분산 시키십시오. 보관 파일이 원본 파일과 동일한 디스크에 있어야하는 경우 나중에 이동하십시오.

압축하지 마십시오

@Yves가 말한 것을 반복하십시오. 백업 파일이 이미 압축되어 있으면 다시 압축 할 필요가 없습니다. 당신은 CPU 사이클을 낭비하고 있습니다.


4

에서와 같이 lz4 crompression과 함께 tar 사용

tar cvf - myFolder | lz4 > myFolder.tar.lz4

압축과 속도가 아닌 두 세계의 장점을 모두 제공합니다. 데이터에 이진 파일이 포함되어 있어도 압축률은 약 3입니다.

추가 자료 : 압축 알고리즘 비교 lz4로 tar하는 방법


1
StefanQ가 머무는 것은 병목 위치에 따라 압축기를 선택해야한다는 것입니다. 또한 : 다른 물리적 저장 장치 나 원격 컴퓨터에 출력을 저장할 수 있습니다!
레스터 청

2

덤프와 복원에 대해 언급 한 사람이 없다는 것에 놀랐습니다. 파일 시스템에 여유 공간이 있으면 dd 보다 훨씬 빠릅니다 .

문제의 파일 시스템에 따라 다른 도구가 필요할 수 있습니다.

  • ext2 / 3 / 4- 덤프복원 ( RH / Debian의 패키지 덤프 )
  • XFS- xfsdumpxfsrestore ( RH / 데비안 패키지 xfsdump )
  • ZFS- zfs sendzfs recv
  • BTRFS- btrfs 전송btrfs 수신

일부 프로그램에는 기본 제공 압축 기능이 없습니다 (덤프 제외). 파이프를 표준 출력으로 사용하고 필요에 따라 pigz를 사용하십시오. ;-)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.