Phiên bản mới ổn định việc thực hiện lưu trữ "
Extstore cho phép bạn sử dụng ổ SSD/Flash để mở rộng kích thước bộ đệm. Giống như RAM, bộ lưu trữ Flash không tồn tại vĩnh viễn và được đặt lại khi khởi động lại. Phạm vi của chế độ mới là đảm bảo lưu trữ hiệu quả dữ liệu lớn vào bộ nhớ đệm. Khi sử dụng "extstore", các khóa và siêu dữ liệu, như trước đây, chỉ được lưu trữ trong RAM, nhưng dữ liệu lớn được liên kết với các khóa, kích thước vượt quá ngưỡng đã đặt, được lưu trữ trong bộ nhớ ngoài và chỉ con trỏ vẫn còn trong RAM.
Nếu key được liên kết với dữ liệu nhỏ thì Memcached hoạt động như bình thường, giữ dữ liệu trong bộ nhớ và không truy cập bộ nhớ ngoài. Nếu có nhiều bộ nhớ trống, thì dữ liệu cần thiết nhất cũng có thể được đặt hoàn toàn trong bộ đệm trong RAM (ví dụ: bạn có thể chỉ định rằng chỉ những đối tượng lớn hơn 1024 byte chưa được truy cập trong 3600 giây mới được đặt lại thành Flash ).
Việc triển khai được tối ưu hóa để đảm bảo hiệu suất tối đa và tải CPU tối thiểu, nhưng lại làm giảm hiệu quả lưu trữ (mức độ phân mảnh cao). Để kéo dài tuổi thọ của ổ Flash, dữ liệu sẽ được đệm và chuyển vào bộ lưu trữ một cách tuần tự. Để lưu trạng thái bộ đệm giữa các lần khởi động lại, bạn có thể sử dụng khả năng xuất hiện trong bản phát hành 1.5.18 để kết xuất kết xuất bộ đệm vào một tệp. Ở lần khởi động tiếp theo, bạn có thể khôi phục bộ đệm từ tệp này để loại bỏ mức tải tối đa của bộ xử lý nội dung do bộ đệm trống (bộ đệm ngay lập tức trở nên “ấm”).
Thay đổi quan trọng thứ hai trong Memcached 1.6 là việc làm lại mã giao tiếp mạng, mã này được điều chỉnh để tự động xử lý các yêu cầu hàng loạt trong một lệnh gọi hệ thống. Trước đây, khi gửi nhiều lệnh GET trong một gói TCP, memcached sẽ gửi kết quả bằng các lệnh gọi hệ thống riêng biệt. Trong Memcached 1.6, các phản hồi được tổng hợp và trả về bằng cách gửi một lệnh gọi hệ thống. Kết quả là hiện có trung bình 1.5 phím cho mỗi cuộc gọi hệ thống, trong các thử nghiệm cho thấy mức tải CPU giảm tới 25% và độ trễ giảm vài phần trăm.
Việc thiết kế lại hệ thống con mạng cũng giúp có thể chuyển sang phân bổ bộ đệm động khi cần thiết, thay vì chỉ định bộ đệm tĩnh. Tối ưu hóa này giúp giảm mức tiêu thụ bộ nhớ trong khi chờ lệnh mới thông qua kết nối do máy khách thiết lập từ 4.5 KB xuống 400-500 byte, đồng thời giúp loại bỏ nhiều lệnh gọi tới malloc, realloc và free, dẫn đến phân mảnh bộ nhớ không cần thiết trên hệ thống có số lượng kết nối lớn. Mỗi luồng công nhân hiện xử lý nhóm bộ đệm đọc và ghi riêng cho các kết nối máy khách đang hoạt động. Để điều chỉnh kích thước của các bộ đệm này
các tùy chọn “-o resp_obj_mem_limit=N” và “-o read_buf_mem_limt=N” được cung cấp.
Chi nhánh 1.6 cũng thông báo ngừng sử dụng
Nguồn: opennet.ru