2010-03-19 35 views
12

Tôi hiện có khoảng 650.000 mục trong memcached (bộ nhớ 430MB được sử dụng) và số lượng vẫn tăng. Nó dự kiến ​​sẽ vượt quá 1.000.000 mặt hàng trước khi đi bằng phẳng. Tỷ lệ hit/miss hiện tại là 25: 1 nên hiệu quả là khá tốt. Tôi chỉ muốn hỏi là một triệu mục trong memcached trên máy chủ duy nhất quá nhiều? Nếu không, bao nhiêu là quá nhiều?Có bao nhiêu khóa quá nhiều trong memcached?

+1

Bạn có thể thêm một máy chủ khác và cài đặt memcache lên đó và phân phối nó. Đó là vẻ đẹp của nó, sau đó bạn sẽ không phải lo lắng về điều này. – DarthVader

+1

Xem? Nếu memcached là đủ tốt cho các trang trại máy chủ như deathstar, nó đủ tốt bạn. – Xeoncross

Trả lời

5

Bạn có thể chia tỷ lệ lên thành một máy chủ 64 bit đơn lẻ với 48GB và đặt tối đa 80.000.000 mục trong đó. Hoặc bạn có thể mở rộng quy mô ra và mua nhiều máy chủ 4GB và đặt tối đa 2.400.000 mục trên mỗi máy chủ. Memcached hoạt động rất tốt khi bạn phân phối nó trên nhiều máy chủ.

+0

@Jim, cảm ơn câu trả lời của bạn, vì vậy 2.400.000 là số lượng tối đa các mục memcached có thể lưu trữ trong một hộp 4GB? – jack

+0

Xin lỗi, đó là ước tính sơ bộ dựa trên các mục 650 nghìn hiện tại của bạn trong 430MB. Nhưng 1m mặt hàng cũng dưới mức tối đa cho một máy như vậy. Bạn sẽ cần phải xem xét những gì xảy ra khi khối lượng * của truy cập bộ nhớ cache tăng lên (hiện CPU hoặc mạng trở thành một nút cổ chai?) Và cũng có gì sẽ xảy ra nếu máy memcached đi xuống. Ngay cả khi một máy duy nhất có thể xử lý bộ nhớ cache và tải, bạn có thể cần hai hoặc nhiều hơn để hỗ trợ chuyển đổi dự phòng cho ứng dụng của bạn. –

2

"Quá nhiều" là hiệu quả tuy nhiên nhiều bạn có khi bạn hết bộ nhớ rảnh rỗi để dành cho memcached.

Dữ liệu được lưu trữ trong bảng băm khổng lồ, thực hiện tra cứu rất gần với O (1). Khi một bảng băm phát triển, các va chạm về mặt lý thuyết tăng, nhưng các triển khai chất lượng tốt (và thích hợp cho memcached) của khái niệm bảng băm thường bao gồm các phương tiện phong phú để giúp giải quyết vấn đề này với sự chậm lại rất ít.

+0

Không phải là bảng băm O (log (n))? – user1130176

+0

@ user1130176 Không phải trong trường hợp trung bình, không. Hành vi O (log (n)) từ một bảng băm giả định sẽ gợi ý việc triển khai bị hỏng hoặc bị áp dụng sai. Bạn có thể nghĩ đến một số cấu trúc khác cũng thường được sử dụng để triển khai mảng kết hợp - ví dụ: một số hình thức của cây. –

+0

Cách duy nhất để có được thời gian liên tục sẽ là một số xác định, một đến một chức năng từ chìa khóa để chỉ số truy cập ngẫu nhiên, phải, là những gì memcached không? Làm cách nào bạn có thể duyệt qua 100 triệu bản ghi trong thời gian O (1)? Tôi rất muốn tìm hiểu cách thực hiện điều này. – user1130176

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