Một câu hỏi rất nhiều người gặp nhưng ít ai giải thích đúng bản chất:
“Tôi đã xoá hết file trong
/var/lib/php/sessions, nhưng chạyllvẫn rất chậm. VPS dùng lâu có phải thế nào cũng chậm không?”
Bài viết này tổng hợp đầy đủ – đúng bản chất – đúng hướng xử lý production, dựa trên case thực tế với PHP 7.4 + Nginx + ext4.
ll /var/lib/php/sessions → chậm bất thườngrm -rf toàn bộ file sessionstat /var/lib/php/sessions Thấy:
Size lên tới hàng chục MBBlocks rất lớnLinks: 2 (chỉ còn . và ..)👉 Đây không phải lỗi PHP, không phải VPS yếu.
👉 Việc này là bình thường và đúng thiết kế.
❗ Điểm quan trọng nhất:
ext4 KHÔNG thu hồi lại directory blocks sau khi file bị xoá.
Nghĩa là:
➡️ Khi chạy ll:
ls -l phải stat() từng entryVới ext4:
rm, unlink, fsck, tune2fs đều không giúpdrop_caches chỉ tác động cache RAM, không giảm size directory👉 Cách duy nhất để thư mục trở lại nhỏ gọn:
Xoá và tạo lại thư mục mới
VPS không chậm theo thời gian.
Nó chỉ chậm khi:
📌 Các thư mục nguy hiểm nhất:
/var/lib/php/sessions/tmp/var/cache/*/var/log (không logrotate)Vì:
Cấu hình PHP:
session.save_path = "2;/var/www/sessions"
Ý nghĩa:
2; → PHP tự tạo 256 subfolder (00 → ff)mkdir -p /var/www/sessions chown -R www-data:www-data /var/www/sessions chmod 700 /var/www/sessions
find /var/www/sessions -type f -mtime +2 -delete
✔ Không ảnh hưởng user online
✔ Folder luôn gọn
✔ Không cần recreate thư mục
| Trường hợp | Có nên xoá folder? |
|---|---|
| Folder đã phình hàng chục MB | ✅ 1 lần duy nhất |
| Production đang chạy | ❌ |
| Định kỳ hàng ngày | ❌ |
| Bảo trì hệ thống | ⚠️ có thể |
Nếu traffic cao:
CI3 ví dụ:
$config['sess_driver'] = 'redis'; $config['sess_save_path'] = 'tcp://127.0.0.1:6379?database=2';
Session chậm không phải do PHP, không phải do VPS
👉 mà là do filesystem bị dùng sai cách
Làm đúng → VPS chạy nhiều năm không cần cài lại OS.