Facebook giới thiệu cơ chế TMO, cho phép bạn tiết kiệm 20-32% bộ nhớ trên máy chủ

Các kỹ sư của Facebook (bị cấm ở Liên bang Nga) đã xuất bản một báo cáo về việc triển khai công nghệ TMO (Giảm tải bộ nhớ trong suốt) vào năm ngoái, cho phép tiết kiệm đáng kể RAM trên máy chủ bằng cách chuyển dữ liệu thứ cấp không cần thiết cho công việc sang các ổ đĩa rẻ hơn, chẳng hạn như NVMe SSD -đĩa. Facebook ước tính việc sử dụng TMO có thể tiết kiệm từ 20 đến 32% RAM trên mỗi máy chủ. Giải pháp này được thiết kế để sử dụng trong cơ sở hạ tầng nơi các ứng dụng chạy trong các vùng chứa riêng biệt. Các thành phần phía nhân của TMO đã được đưa vào nhân Linux.

Về phía nhân Linux, công nghệ này được hỗ trợ bởi hệ thống con PSI (Thông tin về áp suất), có sẵn bắt đầu từ bản phát hành 4.20. PSI đã được sử dụng trong nhiều trình xử lý bộ nhớ thấp khác nhau và cho phép bạn phân tích thông tin về thời gian chờ để lấy các tài nguyên khác nhau (CPU, bộ nhớ, I/O). Với PSI, bộ xử lý trong không gian người dùng có thể đánh giá chính xác hơn mức tải hệ thống và kiểu làm chậm, cho phép xác định sớm các điểm bất thường trước khi chúng có tác động đáng kể đến hiệu suất.

Trong không gian người dùng, TMO được cung cấp bởi thành phần Senpai, thông qua cgroup2, tự động điều chỉnh giới hạn bộ nhớ cho vùng chứa ứng dụng dựa trên dữ liệu nhận được từ PSI. Senpai phân tích các dấu hiệu bắt đầu thiếu tài nguyên thông qua PSI, đánh giá mức độ nhạy cảm của ứng dụng trước tình trạng chậm truy cập bộ nhớ và cố gắng xác định kích thước bộ nhớ tối thiểu mà vùng chứa yêu cầu, tại đó dữ liệu cần thiết cho hoạt động vẫn còn trong RAM và các dữ liệu đi kèm. dữ liệu được giải quyết trong bộ nhớ đệm của tệp hoặc hiện không được sử dụng trực tiếp sẽ bị chuyển sang phân vùng trao đổi.

Facebook giới thiệu cơ chế TMO, cho phép bạn tiết kiệm 20-32% bộ nhớ trên máy chủ

Do đó, bản chất của TMO là giữ cho các quy trình tuân theo chế độ ăn kiêng nghiêm ngặt về mức tiêu thụ bộ nhớ, buộc phải hoán đổi các trang bộ nhớ không sử dụng mà việc loại bỏ chúng không ảnh hưởng đáng kể đến hiệu suất (ví dụ: các trang có mã chỉ được sử dụng trong quá trình khởi tạo và sử dụng một lần). dữ liệu trong bộ đệm đĩa). Không giống như việc trục xuất thông tin vào phân vùng trao đổi để đáp ứng với áp lực bộ nhớ, dữ liệu trong TMO bị trục xuất dựa trên dự đoán chủ động.

Một trong những tiêu chí để trục xuất là không có quyền truy cập vào trang bộ nhớ trong 5 phút. Những trang như vậy được gọi là trang bộ nhớ lạnh và trung bình chiếm khoảng 35% bộ nhớ ứng dụng (tùy thuộc vào loại ứng dụng mà có phạm vi từ 19% đến 65%). Quyền ưu tiên tính đến hoạt động liên quan đến các trang bộ nhớ ẩn danh (bộ nhớ do ứng dụng cấp phát) và bộ nhớ được sử dụng để lưu vào bộ nhớ đệm tệp (được cấp phát bởi kernel). Trong một số ứng dụng, mục đích sử dụng chính là bộ nhớ ẩn danh, nhưng ở những ứng dụng khác, bộ đệm tệp cũng rất quan trọng. Để tránh sự mất cân bằng trong việc loại bỏ bộ đệm, TMO sử dụng thuật toán phân trang mới để loại bỏ các trang ẩn danh và các trang được liên kết với bộ đệm tệp theo tỷ lệ.

Việc đẩy các trang không được sử dụng thường xuyên vào bộ nhớ chậm hơn không có tác động đáng kể đến hiệu suất nhưng có thể giảm đáng kể chi phí phần cứng. Dữ liệu được chuyển sang ổ SSD hoặc vùng trao đổi nén trong RAM. Xét về chi phí lưu trữ một byte dữ liệu, sử dụng SSD NVMe rẻ hơn tới 10 lần so với sử dụng tính năng nén trong RAM.

Facebook giới thiệu cơ chế TMO, cho phép bạn tiết kiệm 20-32% bộ nhớ trên máy chủ


Nguồn: opennet.ru

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