FOSSBYTES TECH SIMPLIFIED LOGO

Roman Gushchin, thành viên của nhóm kỹ thuật nhân Linux của Facebook, đã phát hiện ra một “lỗ hổng nghiêm trọng” trong cách thức hoạt động của bộ điều khiển bộ nhớ phiến hiện tại trong nhân Linux. Anh ta nói (Thông qua Ngăn xếp mới) mà thiết kế nhân hiện tại gây ra hiệu suất sử dụng slab thấp và lý do đằng sau đó là các trang slab chỉ được sử dụng bởi một cgroup bộ nhớ (Nhóm điều khiển).

Đối với những người chưa biết, cấp phát Slab trong trường hợp nhân Linux đề cập đến hệ thống quản lý bộ nhớ cấp phát bộ nhớ cho các đối tượng nhân khác nhau. Cấp phát phiến là một hệ thống quản lý bộ nhớ hiệu quả, có công việc chính là xây dựng bộ nhớ đệm phiến. Bộ nhớ cache của phiến là danh sách liên kết của các phiến với mỗi phiến đại diện cho một mảng đối tượng. Hơn nữa, cgroup hoặc nhóm điều khiển là một tính năng của hạt nhân Linux có chức năng tổ chức các quy trình thành một cách phân cấp.

Vấn đề là gì?

Theo Gushchin, “Nếu chỉ có một số phân bổ có kích thước nhất định được thực hiện bởi cgroup hoặc nếu một số đối tượng hoạt động (ví dụ: răng giả) còn lại sau khi cgroup bị xóa hoặc cgroup chứa một ứng dụng đơn luồng hầu như không cấp phát bất kỳ đối tượng nhân nào, nhưng có mọi lúc mọi nơi trên một CPU mới: trong tất cả những trường hợp này, hiệu suất sử dụng phiến kết quả là rất thấp. ”

Ông nói thêm rằng nếu tính năng kế toán kmem hoặc tính toán bộ nhớ nhân bị vô hiệu hóa, thì nhân có thể sử dụng không gian trống trên các trang phiến để cấp phát các quy trình.

Gushchin nói rằng bộ điều khiển kmem ban đầu được giới thiệu như một tính năng tùy chọn phải được bật rõ ràng cho từng nhóm bộ nhớ. Giờ đây, tính năng này được bật theo mặc định, điều này làm mất đi mục đích sử dụng phiến.

Bộ điều khiển bộ nhớ mới do Guschin đề xuất

Bộ điều khiển phiến mới do Gushchin đề xuất cải thiện việc sử dụng bộ nhớ bằng cách chia sẻ các trang phiến. Ngoài ra, nhà phát triển cũng cho biết thêm rằng trong hệ thống mới của mình, tính toán được thực hiện theo từng đối tượng thay vì trên từng trang

Anh ấy đã thử nghiệm bộ điều khiển bộ nhớ sàn được đề xuất của mình trên các khối lượng công việc khác nhau và kết quả như sau:

  1. Web-frontend: 650-700Mb, ~ 42% bộ nhớ sàn
  2. Bộ nhớ cache của cơ sở dữ liệu: 750-800Mb, ~ 35% bộ nhớ sàn
  3. Máy chủ dns: 700Mb, ~ 36% bộ nhớ sàn

Bạn có thể tham khảo bộ điều khiển bộ nhớ mới do Gushchin đề xuất tại đây chuỗi lkml.org.

Bộ điều khiển do Gushchin đề xuất hiện đang ở trạng thái “yêu cầu nhận xét” và nếu mọi thứ suôn sẻ, nó sẽ được đưa vào nhân Linux dòng chính vào năm 2020.

Xem thêm: Linus Torvalds để thêm tính năng bảo mật “Lockdown” trong Linux 5.4

This post is also available in: Spanish German Tiếng Việt Italian Indonesian

LEAVE A REPLY

Please enter your comment!
Please enter your name here