2012-06-18 40 views
5

Tôi thấy việc trục xuất khi memcached chỉ đầy 40%. Làm thế nào là có thể?Xóa bỏ bộ nhớ khi bộ nhớ cache đầy đủ là 50%

+0

Hmmm bạn đang sử dụng memcached trên hệ thống nào? Có memcached có một thực hiện bộ nhớ ánh xạ trực tiếp? Tôi không hiểu tại sao nó lại ... nhưng ai biết được. – PinkElephantsOnParade

+0

Chúng tôi có một cụm 4 nút đang chạy trên Redhat linux. Không chắc chắn những gì bạn có nghĩa là bằng cách thực hiện bộ nhớ ánh xạ trực tiếp. Nhưng chúng tôi đang sử dụng membase cho memcached như một gói. – apatel

+0

http://stackoverflow.com/questions/6868256/memcached-eviction-prior-to-key-expiry/10456364#10456364 –

Trả lời

11

Kiểm tra kích thước tấm bằng cách chạy thống kê ghi nhớ. Có vẻ như các tấm của bạn không được phân bổ đều và điều đó gây ra sự trục xuất ngay cả khi bộ nhớ cache không đầy.

+2

Đây chính xác là trường hợp chúng tôi có. Một trong những phiến đá trong xô mặc định đã đầy và đang gây ra sự trục xuất. Chúng tôi đã tạo một nhóm mới chỉ dành cho những đối tượng có cùng kích thước và chúng tôi không còn gặp vấn đề này nữa. Cảm ơn tất cả các câu trả lời của bạn. – apatel

0

Lưu trữ dữ liệu theo các bản ghi của các khối bộ nhớ khác nhau. Nếu các khối bộ nhớ khác nhau đã được cấp phát, thì thuật toán ít được sử dụng gần đây nhất chạy trên sàn và loại bỏ dữ liệu ra, ngay cả khi không có dữ liệu trong các bảng bộ nhớ khác.

Do đó, phân phối lớn các kích thước dữ liệu có thể chịu trách nhiệm cho vấn đề này. Bằng cách có nhiều trường hợp chạy memcached và sử dụng nó như là một hệ thống phân tán, vấn đề có thể được giảm.

2

Tôi đã viết một lời giải thích dài cho this question cũng sẽ áp dụng cho điều này.

Các vấn đề liên quan