.Tar.gz: Có mối quan hệ giữa thời gian để nén và giải nén không?


1

Tôi đang nén một bản sao lưu của một mongodb (~ 500GB) vào một kho lưu trữ .tar.gz, làm mất thời gian trên thang điểm của giờ. Tôi đang cố gắng đưa cơ sở dữ liệu đó sao lưu trên các máy khác nhau cho mục đích thử nghiệm và tôi muốn có ước tính về việc này sẽ mất bao lâu cho mỗi máy.

Câu hỏi của tôi là, có cách nào tôi có thể ước tính thời gian cần thiết để giải nén kho lưu trữ, dựa trên thời gian nén không?

Cảm ơn


1
Một số điểm chuẩn . Nhưng sự khác biệt về phần cứng giữa máy nguồn và máy đích có thể khiến kết quả thay đổi rất nhiều ....
xenoid

1
Kết quả thú vị, cảm ơn cho các liên kết. Hầu hết các máy tôi đang xử lý có phần cứng tương tự, vì vậy tôi vẫn có thể có một ý tưởng. Tôi chủ yếu quan tâm đến việc giải nén, vì vậy có vẻ như gzip là lựa chọn tốt nhất đối với tôi, với việc giải nén nhanh hơn khoảng 10 lần so với nén.
radschapur

1
Tôi hy vọng I / O của đĩa sẽ là nút cổ chai trong cả hai quy trình. Viết có xu hướng nhanh hơn đọc, bởi vì bộ đệm có nghĩa là người viết không phải đợi đĩa.
Barmar

Câu trả lời:


0

Tôi không biết tỷ lệ nén tiêu chuẩn để giải nén vì điều này thực sự phụ thuộc vào tài nguyên máy chủ và dữ liệu của bạn. Giả sử tất cả các tài nguyên khác đều bằng nhau, giải nén thường nhanh hơn vì có ít công việc tính toán hơn. Ước tính trường hợp xấu nhất của bạn có thể giống như thời gian nén ban đầu.

Tuy nhiên, để giành chiến thắng dễ dàng, tôi khuyên bạn nên sử dụng pigz, việc triển khai song song gziptận dụng nhiều bộ xử lý & lõi. Trừ khi bạn chỉ có sẵn một lõi, pigznên giảm đáng kể thời gian cho cả nén và giải nén.

Sử dụng mẫu với tar:

tar -c --use-compress-program=pigz -f data.tgz /path/to/data

Để biết thêm ví dụ, hãy xem StackOverflow: Sử dụng đa lõi để nén / giải nén tar + gzip / bzip .


Cảm ơn bạn về thông tin. Tôi đã sử dụng pigz để nén. Thật không may, tôi dự định chỉ nén db một lần để sao chép nó trên nhiều máy chủ khác, vì vậy giải nén là mối quan tâm chính. Pigz dường như không cung cấp nhiều cải tiến ở đó.
radschapur

@radschapur Có lẽ bzip2pbzip2(song song bzip) là một lựa chọn tốt hơn? Các bzipđịnh dạng dường như thuận lợi hơn để giải nén song song mỗi cuộc thảo luận về: github.com/madler/pigz/issues/36 .
Stennie

0

Không có tỷ lệ xác định trên cùng một máy và sử dụng nhiều máy (thuộc các loại khác nhau) chắc chắn có thể có tác động. Nén và giải nén chủ động liên quan đến việc lưu trữ dữ liệu (ví dụ: "ổ cứng" hoặc "SSD"), bộ xử lý và các thành phần khác như bộ nhớ.

Là một khái quát quá mức, giải nén là khá nhanh, và thậm chí có thể nhanh hơn so với việc sao chép lượng dữ liệu không nén. Nén cũng có thể nhanh tương tự, và đối với một cái gì đó như nén RLE thì có thể. Đối với zip và gzip, việc triển khai phổ biến chậm hơn giải nén và bạn thường có thể đạt được hiệu quả nén 5% -15% khác nếu bạn chọn các tùy chọn nén mạnh hơn có thể mất thời gian gấp 2-4 lần.

Sự khác biệt phần lớn là do nén liên quan đến một số thử nghiệm (đôi khi được coi là "đoán") và một số thử nghiệm không có kết quả. Ngược lại, giải nén thường chỉ tuân theo một quy trình được thiết lập sẵn, do đó việc này diễn ra tương đối nhanh hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.