Facebook đã đề xuất cơ chế quản lý bộ nhớ phiến mới cho nhân Linux

La Mã Gushchin (La Mã Gushchin) Từ Facebook công bố trong danh sách gửi thư của các nhà phát triển nhân Linux một tập hợp các bản vá có triển khai bộ điều khiển cấp phát bộ nhớ mới phiến (bộ điều khiển bộ nhớ phiến). Bộ điều khiển mới đáng chú ý trong việc di chuyển tính toán bản sàn từ cấp trang bộ nhớ sang cấp đối tượng kernel, điều này giúp có thể chia sẻ các trang bản sàn trong các nhóm khác nhau, thay vì phân bổ bộ nhớ đệm bản riêng biệt cho mỗi nhóm.

Cách tiếp cận được đề xuất giúp tăng hiệu quả sử dụng phiến, giảm kích thước bộ nhớ được sử dụng cho phiến từ 30-45% và giảm đáng kể mức tiêu thụ bộ nhớ tổng thể của hạt nhân. Bằng cách giảm số lượng tấm không thể di chuyển cũng có tác dụng tích cực trong việc giảm sự phân mảnh bộ nhớ. Bộ điều khiển bộ nhớ mới đơn giản hóa đáng kể mã để tính toán các bản và không yêu cầu sử dụng các thuật toán phức tạp để tự động tạo và xóa bộ đệm bản cho mỗi nhóm. Tất cả các nhóm bộ nhớ trong quá trình triển khai mới đều sử dụng một tập hợp chung các bộ đệm phiến và thời gian tồn tại của bộ đệm phiến không còn bị ràng buộc với thời gian tồn tại của những bộ đệm được cài đặt thông qua cgroup những hạn chế về việc sử dụng bộ nhớ.

Về mặt lý thuyết, tính năng tính toán tài nguyên chính xác hơn được triển khai trong bộ điều khiển phiến mới sẽ tải CPU nhiều hơn, nhưng trên thực tế, sự khác biệt hóa ra là không đáng kể. Đặc biệt, bộ điều khiển sàn mới đã được sử dụng trong vài tháng trên các máy chủ sản xuất của Facebook xử lý các loại khối lượng công việc khác nhau và chưa xác định được sự hồi quy đáng chú ý nào. Đồng thời, mức tiêu thụ bộ nhớ giảm đáng kể - trên một số máy chủ có thể tiết kiệm tới 1GB bộ nhớ, nhưng chỉ báo này phụ thuộc nhiều vào bản chất của tải, tổng kích thước của RAM, số lượng CPU và các tính năng làm việc với bộ nhớ. Các bài kiểm tra trước đó cho thấy giảm mức tiêu thụ bộ nhớ 650-700 MB (42% bộ nhớ phiến) trên giao diện người dùng web, 750-800 MB (35%) trên máy chủ có bộ đệm DBMS và 700 MB (36%) trên máy chủ DNS.

Nguồn: opennet.ru

Thêm một lời nhận xét