Cách tối ưu hóa không gian lưu trữ trên Linux

15 phút đọc - 22 tháng 5, 2026

hero section cover
Mục lục
  • Cách tối ưu hóa dung lượng lưu trữ trên Linux
  • Tìm hiểu những gì đang sử dụng dung lượng đĩa của bạn
  • Xóa bộ nhớ đệm gói, nhật ký và các tệp trùng lặp
  • Tối ưu hóa cấp hệ thống tệp
  • Tự động hóa bảo trì lưu trữ
  • Tận dụng từng gigabyte
Chia sẻ

Các kỹ thuật thực tiễn để thu hồi và tối ưu hóa dung lượng đĩa trên máy chủ Linux, từ dọn dẹp bộ nhớ đệm gói phần mềm đến điều chỉnh hệ thống tệp và bảo trì tự động.

Cách tối ưu hóa dung lượng lưu trữ trên Linux

Trong nhiều năm, câu trả lời mặc định cho tình trạng đĩa đầy là rất đơn giản: thêm dung lượng lưu trữ. Dung lượng lưu trữ rất rẻ. Nhưng giờ thì không còn như vậy nữa. Giá flash NAND đã tăng vọt kể từ cuối năm 2025, do nhu cầu về hạ tầng AI tiêu thụ hết năng lực sản xuất toàn cầu. Giá hợp đồng SSD doanh nghiệp đã tăng 85-90% chỉ trong quý 1 năm 2026, giá bán lẻ của các ổ NVMe dành cho người tiêu dùng đã tăng gấp đôi, và năng lực sản xuất NAND mới dự kiến sẽ không đi vào hoạt động cho đến năm 2027.

Kết quả là: mỗi gigabyte trên máy chủ của bạn có giá cao hơn so với một năm trước, và điều đó khiến việc tối ưu hóa những gì bạn đã có trở thành một khoản đầu tư tốt hơn nhiều so với việc mua thêm dung lượng. Bài viết này hướng dẫn cách tìm ra nguyên nhân gây tốn dung lượng đĩa, dọn dẹp và cấu hình hệ thống tệp để sử dụng dung lượng lưu trữ hiệu quả hơn.


 

Tìm hiểu những gì đang sử dụng dung lượng đĩa của bạn

Bắt đầu với df -h để có cái nhìn tổng quan về mọi hệ thống tệp đã gắn, bao gồm tổng dung lượng, dung lượng đã sử dụng và tỷ lệ sử dụng. Bất kỳ phân vùng nào vượt quá 90% đều cần được chú ý. Kiểm tra từng phân vùng cụ thể nếu cần:

df -h /
df -h /boot

Đừng bỏ qua inode. Một hệ thống tệp có thể có dung lượng trống nhưng không có inode khả dụng, điều này gây ra các lỗi tương tự. Kiểm tra bằng df -i.

nếu df hiển thị mức sử dụng 100% nhưng các con số không khớp, có thể bạn có các tệp ma. Đây là các tệp đã bị xóa nhưng vẫn bị giữ mở bởi một quá trình đang chạy. Dung lượng sẽ không được thu hồi cho đến khi quá trình đó giải phóng handle tệp. Tìm chúng bằng:

sudo lsof / | grep deleted

Khi bạn đã biết hệ thống tệp nào đang bị áp lực, hãy đi sâu vào các thư mục bằng du hoặc ncdu. Để kiểm tra nhanh hoặc viết kịch bản, du là công cụ phù hợp:

du -h --max-depth=1 /var

Thêm -x khi quét từ thư mục gốc để duy trì trên một hệ thống tệp duy nhất và bỏ qua các điểm gắn ảo như /proc. Để khám phá tương tác trên máy chủ từ xa, ncdu cung cấp cho bạn một giao diện văn bản có thể điều hướng, nơi bạn có thể sắp xếp theo kích thước và xóa tệp trực tiếp.

Tính năngduncdu
Giao diệnKết quả dòng lệnh tĩnhGiao diện TUI tương tác với điều hướng bằng phím mũi tên
Phù hợp nhất choViết kịch bản và kiểm tra nhanhKhám phá thủ công trên máy chủ từ xa
Sắp xếpYêu cầu kết nối với sortTích hợp sẵn (theo kích thước, tên, v.v.)
Xóa tệpTách rm LệnhTích hợp sẵn (nhấn d)

Xóa bộ nhớ đệm gói, nhật ký và các tệp trùng lặp

Ba lĩnh vực luôn chiếm phần lớn dung lượng có thể thu hồi nhất: bộ nhớ cache gói, tệp nhật ký và các tệp lớn hoặc trùng lặp.

Bộ nhớ cache gói và các phụ thuộc mồ côi

Mỗi lần cài đặt hoặc cập nhật đều để lại các tệp gói được lưu trong bộ nhớ đệm. Theo thời gian, các tệp này sẽ tích tụ lại mà bạn không hay biết. Hãy dọn dẹp chúng dựa trên bản phân phối của bạn:

Tác vụDebian/Ubuntu (APT)Fedora/RHEL (DNF)Arch (Pacman)
Xóa bộ nhớ đệmsudo apt cleansudo dnf clean allsudo paccache -r
Xóa các gói mồ côisudo apt autoremovesudo dnf autoremovepacman -Rs $(pacman -Qdtq)
Xóa các tệp cấu hình còn sót lạisudo apt autoremove --purgeĐược xử lý bởi autoremoveKhông áp dụng

Xem trước các thay đổi trước bằng sudo apt autoremove --dry-run. Các kernel cũ có thể chiếm tới 1,5GB hoặc hơn trên hệ thống Ubuntu. Luôn giữ lại kernel đang chạy và một bản sao lưu trước khi xóa các phiên bản cũ hơn.

Nếu bạn sử dụng Snap hoặc Flatpak, các bản sửa đổi và thời gian chạy này cũng sẽ tích lũy:

sudo snap set system refresh.retain=2
flatpak uninstall --unused

Tệp nhật ký trong /var/log

Tệp nhật ký là nguyên nhân phổ biến nhất gây tốn dung lượng đĩa mà không có cảnh báo. Hãy tìm các tệp nhật ký có kích thước quá lớn trước tiên:

du -xhd1 /var/log | sort -h
find /var/log -type f -size +100M

Đối với nhật ký systemd, hãy sử dụng công cụ vacuum tích hợp sẵn thay vì xóa tệp thủ công:

sudo journalctl --vacuum-size=500M

Để đặt giới hạn vĩnh viễn, hãy chỉnh sửa /etc/systemd/journald.conf:

SystemMaxUse=500M
MaxRetentionSec=14day

Đối với các tệp nhật ký đang hoạt động vẫn được dịch vụ giữ mở, đừng sử dụng rm. Dung lượng sẽ không được giải phóng trong khi quá trình vẫn giữ mô tả tệp. Thay vào đó, hãy cắt ngắn:

sudo truncate -s 0 /var/log/syslog

Các tệp lớn và trùng lặp

Tìm các tệp có dung lượng trên 500MB trên toàn hệ thống:

sudo find / -type f -size +500M -exec ls -lh {} +

Đối với các tệp trùng lặp, rmlint sử dụng so sánh dựa trên hàm băm để phát hiện các tệp trùng lặp, thư mục trống và các liên kết tượng trưng bị hỏng. Hãy xem xét kỹ kết quả trước khi xóa bất kỳ thứ gì, đặc biệt là trên các máy chủ nơi các tệp giống hệt nhau có thể phục vụ các vai trò khác nhau.

Tối ưu hóa cấp hệ thống tệp

Sau khi dọn dẹp các tệp, bạn có thể tận dụng thêm dung lượng sử dụng từ cùng một phần cứng bằng cách điều chỉnh hệ thống tệp của mình.

Giảm dung lượng dự trữ của ext4

Theo mặc định, ext4 dành 5% dung lượng hệ thống tệp cho thư mục gốc. Trên phân vùng dữ liệu 2TB, đó là 100GB không được sử dụng. Trên máy chủ chuyên dụng nơi phân vùng dữ liệu không phải là hệ thống tệp gốc, bạn có thể an toàn giảm con số này:

sudo tune2fs -m 1 /dev/sdXn

Điều này sẽ đặt mức dành riêng là 1%, đủ cho hầu hết các trường hợp sử dụng. Xác minh thay đổi bằng tune2fs -l /dev/sdXn.

Nén trong suốt Btrfs

Btrfs hỗ trợ nén tệp trong suốt, điều mà ext4 và XFS không cung cấp. Gắn với compress=zstd để nén dữ liệu tự động khi ghi. ZSTD cung cấp sự cân bằng tốt giữa tốc độ và tỷ lệ nén. Đối với các tác vụ có hỗn hợp tệp, compress-force=zstd có thể tiết kiệm thêm 10-20% bằng cách nén các tệp mà thuật toán heuristic thường bỏ qua.

Để nén dữ liệu hiện có trên một phân vùng Btrfs:

btrfs filesystem defragment -czstd /path/to/dir

Hãy cẩn thận khi thực hiện việc này trên các khối lượng có ảnh chụp nhanh hoặc liên kết tham chiếu. Việc chống phân mảnh phá vỡ các mối quan hệ Sao chép khi Ghi, điều này thực tế có thể làm tăng mức sử dụng đĩa.

Liên kết tham chiếu cho bản sao tức thì

Cả XFS và Btrfs đều hỗ trợ reflinks, tạo ra các bản sao tệp chia sẻ các khối vật lý cho đến khi một bản sao được sửa đổi. Điều này hữu ích cho việc nhân bản hình ảnh đĩa VM hoặc các lớp container mà không làm tăng gấp đôi mức tiêu thụ dung lượng lưu trữ:

cp --reflink=always source.img clone.img

Cung cấp mỏng LVM

Cung cấp mỏng LVM cho phép bạn phân bổ nhiều không gian logic hơn so với dung lượng vật lý hiện có, chỉ tiêu thụ dung lượng đĩa thực khi dữ liệu được ghi. Điều này rất hữu ích khi chạy nhiều máy ảo hoặc container, mỗi cái cần một khối lượng logic riêng nhưng không phải tất cả đều lấp đầy chúng cùng lúc.

Để ngăn chặn các nhóm thin cạn kiệt, hãy bật tính năng tự động mở rộng trong /etc/lvm/lvm.conf bằng cách thiết lập thin_pool_autoextend_thresholdthin_pool_autoextend_percent.

Tự động hóa bảo trì lưu trữ

Việc dọn dẹp thủ công chỉ hiệu quả một lần. Việc tự động hóa giúp đĩa cứng của bạn luôn hoạt động tốt từ lúc này cho đến lần đăng nhập tiếp theo. Sử dụng systemd bộ hẹn giờ cron khi có thể. Chúng tự động ghi nhật ký đầu ra vào journalctl tự động, và Persistent=true bù đắp các lần chạy bị bỏ lỡ sau khi khởi động lại.

Công cụCông cụTần suất
Xoay vòng nhật kýlogrotateHàng ngày hoặc hàng tuần
Hút bụi nhật kýjournalctl --vacuum-timeHàng tuần
Dọn dẹp bộ nhớ đệm góiapt clean / dnf clean allHàng tháng
Xóa tệp tạm thờisystemd-tmpfilesHàng ngày
Dọn dẹp Dockerdocker system pruneHàng tuần
Giám sát sử dụng đĩaTập lệnh tùy chỉnh + bộ hẹn giờ systemdMỗi 15-30 phút

Docker cần được chú ý đặc biệt. Nhật ký container có thể tăng lên mà không có bất kỳ cảnh báo nào rõ ràng. Hạn chế kích thước nhật ký trên toàn hệ thống bằng cách chỉnh sửa /etc/docker/daemon.json. Đặt max-sizemax-file trong log-opts để ngăn các container riêng lẻ làm đầy đĩa của bạn.

Để giám sát chủ động, hãy thiết lập hệ thống cảnh báo hai cấp: cảnh báo khi sử dụng 80% dung lượng đĩa và cảnh báo nghiêm trọng khi đạt 90%. Ghi lại mức sử dụng đĩa hàng giờ để bạn có thể theo dõi xu hướng tăng trưởng và dự đoán khi nào một phân vùng sẽ đạt đến giới hạn dung lượng:

0 * * * * df --output=source,size,used,pcent >> /var/log/disk_usage.csv

Một biện pháp bảo vệ nữa: gắn /var, /tmp/home trên các phân vùng riêng biệt. Điều này ngăn chặn các tệp nhật ký hoặc dữ liệu người dùng tăng trưởng quá mức làm cạn kiệt hệ thống tệp gốc và gây sập toàn bộ hệ thống.

Tận dụng từng gigabyte

Với giá lưu trữ ngày càng tăng và không có dấu hiệu giảm cho đến khi sản xuất NAND mới đi vào hoạt động vào năm 2027, việc tối ưu hóa những gì bạn có không chỉ là một thói quen tốt. Nó còn giúp tiết kiệm tiền thực sự. Cách tiếp cận rất đơn giản:

  • Kiểm tra việc sử dụng đĩa của bạn bằng df, du, và ncdu trước khi thực hiện bất kỳ thay đổi nào.
  • Xóa bộ nhớ đệm gói phần mềm, xoay vòng nhật ký và loại bỏ các bản sao trùng lặp để thu hồi không gian ngay lập tức.
  • Tối ưu hóa hệ thống tệp của bạn. Giảm các khối dự trữ ext4, bật tính năng nén Btrfs hoặc sử dụng phân bổ mỏng LVM để tận dụng tối đa phần cứng hiện có.
  • Tự động hóa việc bảo trì bằng bộ hẹn giờ systemd để đĩa của bạn luôn sạch sẽ giữa các lần kiểm tra.
  • Theo dõi xu hướng sử dụng và thiết lập cảnh báo ở mức 80% và 90% để phát hiện sự cố sớm.

Nếu bạn cần cơ sở hạ tầng máy chủ chuyên dụng với bộ nhớ NVMe hiệu suất cao, các máy chủ chuyên dụng của FDC được thiết kế dành riêng cho mục đích đó.

Blog

Nổi bật trong tuần

Các bài viết khác
Tại sao việc sở hữu một VPS mạnh mẽ và không giới hạn băng thông lại quan trọng

Tại sao việc sở hữu một VPS mạnh mẽ và không giới hạn băng thông lại quan trọng

Cần hiệu suất ổn định và lưu lượng không giới hạn? Một VPS mạnh mẽ không giới hạn lưu lượng cung cấp tốc độ, khả năng mở rộng và băng thông mà bạn cần, mà không phải lo lắng về giới hạn sử dụng

3 phút đọc - 9 tháng 5, 2025

Cách tối ưu hóa không gian lưu trữ trên Linux

15 phút đọc - 22 tháng 5, 2026

Các bài viết khác
background image

Bạn có thắc mắc hoặc cần giải pháp tùy chỉnh?

icon

Các tùy chọn linh hoạt

icon

Phạm vi toàn cầu

icon

Triển khai ngay lập tức

icon

Các tùy chọn linh hoạt

icon

Phạm vi toàn cầu

icon

Triển khai ngay lập tức