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 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 deletedKhi 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 /varThê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ăng | du | ncdu |
|---|---|---|
| Giao diện | Kết quả dòng lệnh tĩnh | Giao 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 cho | Viết kịch bản và kiểm tra nhanh | Khám phá thủ công trên máy chủ từ xa |
| Sắp xếp | Yêu cầu kết nối với sort | Tích hợp sẵn (theo kích thước, tên, v.v.) |
| Xóa tệp | Tách rm Lệnh | Tí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ớ đệm | sudo apt clean | sudo dnf clean all | sudo paccache -r |
| Xóa các gói mồ côi | sudo apt autoremove | sudo dnf autoremove | pacman -Rs $(pacman -Qdtq) |
| Xóa các tệp cấu hình còn sót lại | sudo apt autoremove --purge | Được xử lý bởi autoremove | Khô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 --unusedTệ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/syslogCá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/dirHã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.imgCung 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_threshold và thin_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ý | logrotate | Hàng ngày hoặc hàng tuần |
| Hút bụi nhật ký | journalctl --vacuum-time | Hàng tuần |
| Dọn dẹp bộ nhớ đệm gói | apt clean / dnf clean all | Hàng tháng |
| Xóa tệp tạm thời | systemd-tmpfiles | Hàng ngày |
| Dọn dẹp Docker | docker system prune | Hàng tuần |
| Giám sát sử dụng đĩa | Tập lệnh tùy chỉnh + bộ hẹn giờ systemd | Mỗ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-size và max-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.csvMột biện pháp bảo vệ nữa: gắn /var, /tmpvà /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àncdutrướ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 đó.
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

Bạn có thắc mắc hoặc cần giải pháp tùy chỉnh?
Các tùy chọn linh hoạt
Phạm vi toàn cầu
Triển khai ngay lập tức
Các tùy chọn linh hoạt
Phạm vi toàn cầu
Triển khai ngay lập tức