Sửa lỗi Redis Cache “MISCONF Redis is configured to save RDB snapshots”

Last Updated on 17/11/2024

Khi kiểm tra Redis Cache bằng lệnh systemctl status redis ta nhận được thông báo sau:

error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.

Lỗi này xuất phát từ sự cố khi BGSAVE bị thất bại. Trong quá trình BGSAVE, Redis tạo ra một tiến trình con để ghi dữ liệu xuống ổ đĩa. Nguyên nhân cụ thể khiến BGSAVE gặp lỗi có thể được xác định từ file nhật ký (thường nằm tại `/var/log/redis/redis-server.log` trên các hệ thống Linux). Tuy nhiên, thường thì lỗi BGSAVE xảy ra khi tiến trình `fork` không thể phân bổ đủ bộ nhớ. Điều này có thể xảy ra ngay cả khi hệ thống có đủ RAM, do các xung đột tối ưu hóa từ hệ điều hành gây ra.

Để khắc phục lỗi này:

Sửa đổi /etc/sysctl.conf và thêm:

vm.overcommit_memory=1

Bạn có thể dùng lệnh sau:

echo ‘vm.overcommit_memory = 1’ >> /etc/sysctl.conf

Sau đó khởi động lại sysctl bằng lệnh:

Trên FreeBSD:

sudo /etc/rc.d/sysctl reload

Trên Linux:

sudo sysctl -p /etc/sysctl.conf

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *