Một trong những thành viên của nhóm phát triển mạng xã hội Facebook, La Mã Gushchin, được đề xuất trong danh sách gửi thư của nhà phát triển một bộ các bản vá kernel Linuxnhằm mục đích cải thiện việc quản lý bộ nhớ thông qua việc triển khai bộ điều khiển quản lý bộ nhớ mới - phiến (bộ điều khiển bộ nhớ phiến).
phân phối tấm – là một cơ chế quản lý bộ nhớ được thiết kế để phân bổ bộ nhớ hiệu quả hơn và loại bỏ sự phân mảnh đáng kể. Cốt lõi của thuật toán này là lưu trữ bộ nhớ đã được phân bổ chứa một đối tượng thuộc một kiểu nhất định và tái sử dụng bộ nhớ đó vào lần tiếp theo khi một đối tượng cùng kiểu được phân bổ. Phương pháp này lần đầu tiên được giới thiệu trong SunOS bởi Jeff Bonwick và hiện được sử dụng rộng rãi trong nhân của nhiều hệ điều hành Unix, bao gồm FreeBSD và... Linux.
Bộ điều khiển mới dựa trên việc di chuyển tính toán bản phiến từ cấp trang bộ nhớ sang cấp đối tượng kernel, điều này giúp có thể chia sẻ một trang bản trong các nhóm khác nhau, thay vì phân bổ bộ đệm riêng cho từng nhóm.
Dựa trên kết quả thử nghiệm, phương pháp quản lý bộ nhớ được đề xuất cho phép tăng hiệu quả sử dụng tấm RґRѕ 45%và cũng sẽ giảm mức tiêu thụ bộ nhớ tổng thể của nhân hệ điều hành. Ngoài ra, bằng cách giảm số lượng trang được phân bổ cho phiến, toàn bộ tình trạng phân mảnh bộ nhớ sẽ giảm, điều này không thể ảnh hưởng đến hiệu suất của hệ thống.
Bộ điều khiển mới đã được thử nghiệm trên các máy chủ sản xuất của Facebook trong vài tháng và cho đến nay thử nghiệm này có thể được gọi là thành công: không làm giảm hiệu suất và không tăng số lỗi, người ta đã nhận thấy mức tiêu thụ bộ nhớ giảm rõ rệt - trên một số máy chủ. máy chủ lên tới 1GB. Con số này khá chủ quan, ví dụ các thử nghiệm trước đó cho kết quả thấp hơn một chút:
- 650-700 MB trên giao diện web
- 750-800 MB trên máy chủ có bộ đệm cơ sở dữ liệu
- 700 MB trên máy chủ DNS
>>> Trang của tác giả trên GitHub
Nguồn: linux.org.ru
