Các kỹ sư của Google trong tháng này đã bắt đầu đăng các bản vá mới cho hệ thống con quản lý bộ nhớ Linux và các thành phần liên quan cho một tính năng có tên là Working Set Reporting.
Chức năng Báo cáo nhóm làm việc được xây dựng từ MGLRU và nhằm mục đích xử lý tốt hơn các máy ảo hoặc vùng chứa được cam kết quá mức. loạt bản vá RFC gần đây tóm tắt mọi thứ như sau:
Nền tảng
==========
Đối với cả máy khách và máy chủ, khối lượng công việc có thể được chứa bằng máy ảo, bộ chứa kubernetes hoặc memcg. Khối lượng công việc khác nhau giữa máy chủ và máy khách.Công việc máy chủ có dung lượng bộ nhớ dễ dự đoán hơn và liên quan đến tính ổn định cũng như hiệu suất. Một kỹ thuật là thu hồi chủ động, thu hồi bộ nhớ trước áp lực bộ nhớ và làm rõ dung lượng bộ nhớ trống thực sự trên máy.
Các ứng dụng khách sẽ bùng nổ và khó đoán hơn vì chúng phản ứng với các tương tác của người dùng. Hệ thống cần phản ứng nhanh với các sự kiện thú vị và nhận thức được việc sử dụng năng lượng.
Máy hoạt động quá tải có thể mở rộng diện tích của vùng chứa thông qua memory.max/high, virtio-balloon, v.v.
Thiết bị khinh khí cầu là cơ chế điển hình để chia sẻ bộ nhớ giữa máy ảo khách và máy chủ. Tính năng này đặc biệt hữu ích trong các tình huống nhiều máy ảo trong đó bộ nhớ được sử dụng quá mức và các thay đổi động đối với kích thước bộ nhớ máy ảo được yêu cầu khi khối lượng công việc thay đổi trên hệ thống. Thiết bị bong bóng hiện có một số tính năng để hỗ trợ chia sẻ hợp lý tài nguyên bộ nhớ giữa khách và chủ nhà (ví dụ: gợi ý trang miễn phí, số liệu thống kê, báo cáo trang miễn phí). Đối với chương trình bộ điều khiển máy chủ được giao nhiệm vụ tối ưu hóa tài nguyên bộ nhớ trong môi trường nhiều máy ảo, chương trình phải sử dụng các công cụ này để trả lời hai câu hỏi cụ thể:1. Khi nào là thời điểm thích hợp để sửa đổi khinh khí cầu?
2. Bao nhiêu bóng nên được thay đổi bởi?Một dự án ban đầu nhằm phát triển khả năng”tự động tạo bóng bay”như vậy đã được thực hiện vào năm 2013. Gần đây, các thiết bị VIRTIO bổ sung đã được tạo ra (virtio-mem, virtio-pmem) cung cấp nhiều công cụ hơn cho một số trường hợp sử dụng, mỗi trường hợp đều có ưu điểm và nhược điểm. Một đề xuất trước đây để mở rộng MGLRU với các giao diện bộ làm việc tập trung vào các trường hợp sử dụng của máy chủ nhưng không hoạt động cho các máy khách.
Đề xuất
==========
Cấu trúc báo cáo Nhóm làm việc hợp nhất hoạt động cho cả máy chủ và máy khách. Nó liên quan đến biểu đồ mỗi nút trên máy chủ, biểu đồ mỗi memcg và phần mở rộng trình điều khiển virtio-balloon.Có hai cách làm việc với báo cáo Working Set: hướng sự kiện và truy vấn. Bộ điều khiển máy chủ có thể nhận thông báo từ việc thu hồi, tạo báo cáo hoặc bộ điều khiển có thể truy vấn trực tiếp biểu đồ.
Bản vá 1 giới thiệu cơ chế báo cáo Working Set và giao diện máy chủ. Xem phần Chi tiết để biết
Bản vá 2 mở rộng trình điều khiển khinh khí cầu với báo cáo Working Set.
RFC ban đầu được xây dựng trên MGLRU và được dự định là Bằng chứng về Khái niệm để thảo luận và sàng lọc. T.J. và tôi mong muốn hỗ trợ LRU hoạt động/không hoạt động và ước tính bộ làm việc từ không gian người dùng. Chúng tôi đang làm việc trên các tập lệnh demo và cũng nhận được một số con số.
Ngoài những thay đổi về quản lý bộ nhớ nhân Linux, còn có Các bản vá QEMU cho VirtIO Balloon để thêm tính năng Báo cáo Nhóm Làm việc.
“Trường hợp sử dụng là máy chủ có bộ nhớ quá tải và 1 hoặc nhiều máy ảo. Mục tiêu là nhận thông tin chính xác và kịp thời về mức sử dụng bộ nhớ tổng thể để thúc đẩy các hoạt động thu hồi thích hợp, vì trong một số trường hợp sử dụng thiết bị khách các trường hợp máy ảo có thể cần một phần đáng kể của bộ nhớ tổng thể trong một khoảng thời gian, nhưng sau đó bước vào một khoảng thời gian yên tĩnh dẫn đến một số lượng lớn các trang nguội trong máy khách.
Thiết bị bong bóng hiện có một số tính năng để hỗ trợ chia sẻ tài nguyên bộ nhớ giữa khách và máy chủ (ví dụ: gợi ý trang miễn phí, số liệu thống kê, báo cáo trang miễn phí). Trường hợp sử dụng của chúng tôi bao gồm cả bộ đệm trang điển hình cũng như”bộ đệm ứng dụng”với bộ nhớ sẽ bị loại bỏ trong thời gian áp lực bộ nhớ trên toàn hệ thống. Trong một số trường hợp, virtio-pmem có thể là một phương pháp để máy chủ kiểm soát bộ đệm khách ý nghĩa bảo mật không mong muốn.”
Và sau đó là cập nhật thông số kỹ thuật VirtIO được đề xuất đã được gửi vào tuần trước để thảo luận.
Hoặc để có cái nhìn tổng quan dễ dàng hơn về chức năng Báo cáo nhóm làm việc này, các kỹ sư của Google có liên quan đã chia sẻ với chúng tôi các trang trình bày từ cuộc thảo luận về LSF/MM/BPF 2023 của họ về tính năng được đề xuất này:
Thông báo cơ chế cho báo cáo Working Set Reporting vẫn đang được phát triển. Chắc chắn sẽ rất thú vị khi xem tất cả kết quả của sáng kiến Báo cáo nhóm làm việc này.