Computer >> Máy Tính >  >> Hệ thống >> Linux

Cách nén lưu trữ bằng cách sử dụng tất cả các lõi CPU với Tar

Cách nén lưu trữ bằng cách sử dụng tất cả các lõi CPU với Tar

Nếu bạn đã từng phải nén khối lượng lớn bằng tar , bạn sẽ biết nó có thể đau đến mức nào. Nó thường diễn ra rất chậm và bạn thấy mình nhấn Ctrl + C để kết thúc nhiệm vụ và chỉ cần quên nó đi. Tuy nhiên, có một số công cụ khác mà tar có thể sử dụng và chúng là một cách tuyệt vời để tận dụng các CPU đa luồng mạnh mẽ ngày nay và tăng tốc lưu trữ tar của bạn. Bài viết này hướng dẫn bạn cách sử dụng tar tất cả các lõi khi nén các tệp lưu trữ trong Linux.

Hiểu và Cài đặt Công cụ

Ba công cụ chính được đề cập ở đây là pigz, pbzip2 và pxz. Có một số khác biệt nhỏ giữa các công cụ, nhưng sự khác biệt nằm giữa gzip, bzip2 và xz. Theo thứ tự tương ứng đó, các mức độ nén tăng lên, có nghĩa là một tệp nén được nén bằng gzip sẽ lớn hơn một tệp nén bằng xz, nhưng gzip đương nhiên sẽ mất ít thời gian hơn so với xz. bzip2 ở đâu đó ở giữa.

Chữ “p” bắt đầu tên của mỗi công cụ có nghĩa là “song song”. Song song hóa là một thứ ngày càng trở nên phù hợp hơn trong những năm qua - thứ gì đó trải dài tất cả các lõi CPU tốt như thế nào. Với các CPU như dòng Epyc và Threadripper của AMD có thể đạt tới 64 lõi và 128 luồng, điều quan trọng là phải hiểu những ứng dụng nào có thể tận dụng điều đó. Các hàm nén này là những ứng cử viên chính.

Để cài đặt các công cụ này, bạn chỉ cần chuyển sang kho của mình.

sudo apt install pigz pbzip2 pxz # Debian/Ubuntu
sudo dnf install pigz pbzip2 pxz # Fedora
sudo pacman -Sy pigz pbzip2 pxz   # Arch Linux
Cách nén lưu trữ bằng cách sử dụng tất cả các lõi CPU với Tar

Bài viết này tập trung vào pxz vì mục đích nhất quán. Bạn có thể xem hướng dẫn này cho pigz.

Nén lưu trữ bằng Tar

Cú pháp của tar khá đơn giản. Để chỉ nén một thư mục, bạn có thể sử dụng lệnh như sau:

tar czf linux-5.10-rc3.tar.gz linux/
tar cjf linux-5.10-rc3.tar.bz2 linux/
tar cJf linux-5.10-rc3.tar.xz linux/

Đầu tiên sẽ sử dụng gzip, thứ hai sẽ sử dụng bzip2 và thứ ba sẽ sử dụng xz. Tên tệp và thư mục sẽ khác nhau tùy thuộc vào việc bạn đang làm, nhưng tôi đã kéo Nhân Linux từ GitHub vào thư mục “/ home” của mình và tôi sẽ sử dụng nó. Vì vậy, tôi sẽ tiếp tục và bắt đầu lệnh đó với time ra lệnh ở phía trước để xem mất bao lâu. Bạn cũng có thể thấy rằng xz được liệt kê là chiếm tỷ lệ phần trăm CPU cao nhất của tôi trên hệ thống này, nhưng nó chỉ ghim một lõi ở mức 100 phần trăm.

Cách nén lưu trữ bằng cách sử dụng tất cả các lõi CPU với Tar Cách nén lưu trữ bằng cách sử dụng tất cả các lõi CPU với Tar

Và, như bạn có thể thấy, phải mất rất nhiều thời gian để những chiếc i7-2600 cũ kỹ của tôi nén Linux 5.10-rc3 (khoảng 28 phút).

Cách nén lưu trữ bằng cách sử dụng tất cả các lõi CPU với Tar

Đây là lúc các công cụ nén song song này có ích. Nếu bạn đang nén một tệp lớn và muốn hoàn thành nó nhanh hơn, thì tôi không thể giới thiệu đủ các công cụ này.

Sử dụng Công cụ nén song song với Tar

Bạn có thể yêu cầu tar sử dụng chương trình nén với --use-compression-program hoặc bạn có thể sử dụng cờ lệnh đơn giản hơn một chút của -I . Ví dụ về cú pháp cho bất kỳ công cụ nào trong số này sẽ như sau:

tar -I pigz -cf linux-5.10-rc3.tar.gz linux/
tar -I pbzip2 -cf linux-5.10-rc3.tar.bz2 linux/
tar -I pxz -cf linux-5.10-rc3.tar.xz linux/

Hãy cùng kiểm tra và xem hệ thống của tôi mất bao lâu để nén Nhân Linux với quyền truy cập vào tất cả tám luồng của CPU của tôi. Bạn có thể thấy htop của tôi đọc hiển thị tất cả các chuỗi được ghim ở mức sử dụng 100 phần trăm vì pxz.

Cách nén lưu trữ bằng cách sử dụng tất cả các lõi CPU với Tar Cách nén lưu trữ bằng cách sử dụng tất cả các lõi CPU với Tar

Bạn có thể thấy rằng mất ít thời gian hơn đáng kể để nén kho lưu trữ đó (khoảng bảy phút!), Và đó là với đa nhiệm. Tôi có một máy ảo đang chạy trong nền và tôi đang duyệt web tại thời điểm này. Bộ lập lịch phần cứng Linux Kernel sẽ cung cấp cho bạn những gì bạn cần cho nội dung cá nhân của mình, vì vậy nếu bạn để quên pxz lệnh để chạy mà không có bất kỳ nội dung nào khác đang chạy trên hệ thống của bạn, bạn có thể hoàn thành nó nhanh hơn.

Cách nén lưu trữ bằng cách sử dụng tất cả các lõi CPU với Tar

Điều chỉnh mức nén với pigz, pbzip2 và pxz

Bạn cũng có thể chuyển các mức nén sang pxz để làm cho tệp nhỏ hơn. Điều này sẽ yêu cầu nhiều RAM, CPU và thời gian hơn, nhưng rất đáng giá nếu bạn thực sự cần tải một tệp nhỏ. Dưới đây là so sánh hai lệnh và kết quả của chúng cạnh nhau.

Cách nén lưu trữ bằng cách sử dụng tất cả các lõi CPU với Tar Cách nén lưu trữ bằng cách sử dụng tất cả các lõi CPU với Tar Cách nén lưu trữ bằng cách sử dụng tất cả các lõi CPU với Tar

Nén không lớn hơn nhiều và thời gian không nhất thiết phải đáng giá, nhưng nếu mỗi megabyte đều được tính, đó vẫn là một lựa chọn tuyệt vời.

Tôi hy vọng bạn thích hướng dẫn này để sử dụng tất cả các lõi để nén tệp lưu trữ bằng tar. Hãy nhớ xem một số nội dung Linux khác của chúng tôi, chẳng hạn như cách xây dựng một PC mới cho Linux, thành thạo Apt và trở thành chuyên gia về Apt cũng như cách cài đặt Arch Linux trên Raspberry Pi.