rsync의 기본 블록 크기는 얼마입니까?

rsync의 기본 블록 크기는 얼마입니까?

rsync의 기본 블록 크기는 얼마입니까?

옵션을 제공하지 않고 rsync를 실행 하면 --block-size블록 크기는 어떻게 사용됩니까?

Linux 플랫폼에서 rsync를 사용하고 있습니다.

답변1

  • --block-size=BLOCKSIZE명령줄에서 지정 하면 해당 블록 크기가 사용됩니다.
  • 파일 크기가 490,000바이트 이하인 경우 블록 크기는 700바이트로 설정됩니다.
  • 파일이 490,000바이트보다 큰 경우 블록 크기는 파일 크기의 제곱근(8의 배수로 반올림)으로 설정되며 최대 블록 크기는 프로토콜 버전에 따라 다릅니다.
    • 프로토콜 버전 <30의 경우 최대 블록 크기는 536,870,912(~536MB)입니다.
    • 프로토콜 버전 >=30의 경우 최대 블록 크기는 131,072(~131KB)이며 이는 더 합리적입니다.
    • 17GB 파일(131KB 제곱)의 경우 최대 블록 크기는 131KB에 도달합니다.

따라서 최신 버전에 따르면 rsync블록 크기 범위는 에 정의된 대로 700바이트에서 131KB 사이입니다.소스 코드 상수.

답변2

rsync매뉴얼 에서 :

-B,--block-size=BLOCKSIZE

이는 rsync의 증분 전송 알고리즘에 사용되는 블록 크기를 고정된 값으로 강제합니다. 일반적으로 업데이트할 각 파일의 크기에 따라 선택됩니다. 자세한 내용은 기술 보고서를 참조하세요.

기술 보고서는 다음에서 확인할 수 있습니다.https://rsync.samba.org/tech_report/오래되어 블록 크기를 선택하는 방법에 대해 자세히 설명하지는 않지만 "500에서 1000 사이의 S 값이 대부분의 목적에 적합합니다"(이것은 실제로 코드에서 사용되는 값이 아니며, 아래 참조).

몇 가지 실용적인 의견소스 코드블록 크기로 사용된 파일 크기의 제곱근을 표시합니다(8의 배수로 반올림됨).

/*
 * set (initialize) the size entries in the per-file sum_struct
 * calculating dynamic block and checksum sizes.
 *
 * This is only called from generate_and_send_sums() but is a separate
 * function to encapsulate the logic.
 *
 * The block size is a rounded square root of file length.
 *
 * The checksum size is determined according to:
 *     blocksum_bits = BLOCKSUM_BIAS + 2*log2(file_len) - log2(block_len)
 * provided by Donovan Baarda which gives a probability of rsync
 * algorithm corrupting data and falling back using the whole md4
 * checksums.
 *
 * This might be made one of several selectable heuristics.
 */
static void sum_sizes_sqroot(struct sum_struct *sum, int64 len)
{

[...]

        else {
            blength = 0;
            do {
                blength |= c;
                if (len < (int64)blength * blength)
                    blength &= ~c;
                c >>= 1;
            } while (c >= 8);   /* round to multiple of 8 */
            blength = MAX(blength, BLOCK_SIZE);
        }

선택한 블록 크기는 사용되는 Unix 유형과 무관합니다.

관련 정보