Bức tường SSD: Tại sao Mac của bạn bị trì trệBạn đang trong một phiên làm việc tập trung cao độ thì chuyện đó xảy ra: hệ thống bắt đầu giật lag, các ứng dụng ngừng phản hồi và thông báo đáng sợ xuất hiện: Your disk is almost full. Trên một chiếc MacBook 256GB hoặc thậm chí 512GB, giới hạn này đến nhanh hơn bạn tưởng.
Đối với các lập trình viên, cách khắc phục không chỉ đơn giản là xóa vài bức ảnh cũ. Thủ phạm thực sự nằm sâu trong các bộ nhớ đệm thư viện (library caches) bị ẩn, các sản phẩm build (build artifacts) bị bỏ quên và các image container khổng lồ. Việc nhấp vào 'Optimize' trong cài đặt hệ thống macOS chỉ mới giải quyết được phần nổi của tảng băng nợ kỹ thuật (technical debt) đang tồn tại trong thư mục ~/Library của bạn.
Xác định những "kẻ ngốn" dung lượng thực sựDanh mục 'System Data' trong giao diện lưu trữ của macOS là một chiếc hộp đen. Nó thường tính toán sai mức sử dụng, khiến bạn phải đoán xem dung lượng bị chiếm dụng ở đâu. Hãy sử dụng Terminal để biết sự thật.
Đầu tiên, hãy kiểm tra tóm tắt tổng thể đĩa của bạn:
df -h /
Để tìm xem thư mục nào đang thực sự ngốn bộ nhớ, hãy chạy lệnh này để xem 10 thư mục lớn nhất trong thư mục home của bạn:
du -sh ~/* 2>/dev/null | sort -rh | head -n 10
Đừng ngạc nhiên nếu ~/Library nằm ở đầu danh sách. Hãy cùng xem xét các công cụ phát triển cụ thể đã biến SSD của bạn thành một "nghĩa địa" của các dự án cũ.
Giải pháp 1: Xóa nợ kỹ thuật của XcodeNếu bạn từng lập trình cho iOS hoặc macOS, Xcode có khả năng là kẻ thù lưu trữ lớn nhất của bạn. Nó tích tụ dữ liệu build và log mà hiếm khi tự dọn dẹp.
Xóa Derived DataThư mục DerivedData lưu trữ các kết quả build trung gian và index. Với các lập trình viên đang hoạt động, thư mục này có thể dễ dàng tăng lên 30GB hoặc hơn. Việc xóa nó là hoàn toàn an toàn; Xcode sẽ chỉ đơn giản là build lại những gì nó cần trong lần tới khi bạn nhấn 'Run'.
rm -rf ~/Library/Developer/Xcode/DerivedData/*
Xóa các Simulator iOS cũMỗi bản cập nhật Xcode thường để lại các runtime simulator cũ hơn. Mỗi cái có thể chiếm từ 5GB đến 10GB dung lượng.
# Liệt kê tất cả runtimes để xem cái gì đã được cài đặt
xcrun simctl list devices
# Xóa tất cả các simulator không khả dụng (lỗi thời)
xcrun simctl delete unavailable
Giải pháp 2: Dọn dẹp các trình quản lý gói (Package Managers)Các công cụ như Homebrew và npm được thiết kế để ưu tiên tốc độ, điều đó có nghĩa là chúng lưu trữ mọi phiên bản của mọi gói bạn từng chạm vào.
Dọn dẹp HomebrewHomebrew giữ lại các phiên bản cũ của formulae và các bản tải xuống chưa hoàn thành. Hãy lấy lại dung lượng bằng lệnh:
brew cleanup -s
Nếu bạn muốn xem chính xác mình sẽ tiết kiệm được bao nhiêu gigabyte trước khi thực hiện, hãy chạy brew cleanup -n trước.
Bộ nhớ đệm Node.js và YarnBộ nhớ đệm toàn cục cho các gói JavaScript tăng lên vô hạn. Nếu bạn không dọn dẹp chúng trong nhiều tháng, bạn có thể đang sở hữu vài gigabyte tệp dư thừa.
# Ép buộc xóa bộ nhớ đệm npm
npm cache clean --force
# Xóa bộ nhớ đệm Yarn
yarn cache clean
Giải pháp 3: Cắt tỉa các Docker ContainerDocker có lẽ là cái tên ngốn dung lượng Mac khủng khiếp nhất. Giữa các image không sử dụng, các container đã dừng và các volume bị treo, việc tìm thấy hơn 50GB dữ liệu "ma" là chuyện bình thường.
# Xóa các image, container và network không còn sử dụng
docker system prune
# Để reset hoàn toàn, xóa TẤT CẢ image và volume không sử dụng
docker system prune -a --volumes
Kiểm tra cài đặt Docker Desktop của bạn. Nếu tệp 'Disk image location' (Docker.raw) đã phình to, bạn có thể cần giảm giới hạn 'Disk image size' trong tab Resources.
Giải pháp 4: Tìm kiếm các tệp lớn thủ côngMột tệp dump cơ sở dữ liệu 2GB bị bỏ quên hoặc một tệp log 1GB có thể ẩn nấp ngay trước mắt bạn. Sử dụng lệnh find để định vị các tệp lớn hơn 500MB:
sudo find / -type f -size +500M -exec ls -lh {} + 2>/dev/null
Mẹo: Hậu tố 2>/dev/null sẽ lọc bỏ các thông báo 'Permission Denied' gây nhiễu từ các thư mục được hệ thống bảo vệ.
Xác minh: Xác nhận kết quảSau khi dọn dẹp, đừng chỉ tin rằng lỗi đã hết. Hãy xác minh kết quả của bạn.
- Chạy lại
df -h /. Mục tiêu là có ít nhất 20GB đến 30GB dung lượng trống.- macOS sử dụng dung lượng trống cho bộ nhớ 'Swap'. Nếu bạn còn ít hơn 10% dung lượng đĩa, Mac của bạn sẽ cảm thấy chậm chạp ngay cả khi cảnh báo biến mất.- Khởi động lại máy. Việc khởi động lại sẽ xóa/private/var/folders, nơi thường chứa dữ liệu hệ thống tạm thời mà các lệnh Terminal không chạm tới được.## Bài học kinh nghiệm- Tin tưởng Terminal: Bảng phân bổ dung lượng trên giao diện chỉ là ước tính;dumới là sự thật.- Lên lịch bảo trì: Chạybrew cleanupmỗi tháng một lần.- Tập trung vào Library: Hầu hết dữ liệu rác của lập trình viên nằm trong~/Library/Cachesvà~/Library/Developer.- Di chuyển Docker: Nếu bạn thường xuyên hết bộ nhớ, hãy chuyển đĩa ảo Docker sang ổ SSD ngoài thông qua cài đặt Docker Desktop.

