Phương pháp quản lý bộ nhớ mới của Facebook

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ộ Bản vá nhân 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ơ sở 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 loại nhất định và sử dụng lại bộ nhớ đó vào lần tiếp theo nó được phân bổ cho một đối tượng cùng loại. Kỹ thuật 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


>>> Kết quả xét nghiệm sớm

Nguồn: linux.org.ru

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