Bộ cân bằng tải CPU mới của MIT

Hệ thống Shenango dự kiến ​​sẽ được sử dụng trong các trung tâm dữ liệu.

Bộ cân bằng tải CPU mới của MIT
/ hình chụp Marco verch CC BY

Theo một trong những nhà cung cấp, trung tâm dữ liệu sử dụng chỉ 20–40% sức mạnh tính toán sẵn có. Ở mức tải cao, chỉ báo này có thể đạt 60%. Sự phân bổ tài nguyên này dẫn đến sự xuất hiện của cái gọi là “máy chủ zombie”. Đây là những cỗ máy hầu như không hoạt động, gây lãng phí năng lượng. Ngày nay 30% máy chủ trên thế giới không có việc làm, tiêu thụ lượng điện trị giá 30 tỷ USD mỗi năm.

MIT quyết định chống lại việc sử dụng tài nguyên máy tính không hiệu quả.

Đội kỹ thuật đã phát triển hệ thống cân bằng tải bộ xử lý có tên Shenango. Mục đích của nó là theo dõi trạng thái của bộ đệm tác vụ và phân phối lại các tiến trình bị kẹt (không thể nhận thời gian CPU) cho các máy rảnh rỗi.

Shenango hoạt động như thế nào

Shenango là một thư viện Linux bằng C với các ràng buộc Rust và C++. Mã dự án và các ứng dụng thử nghiệm được xuất bản trong kho lưu trữ trên GitHub.

Giải pháp dựa trên thuật toán IOKernel, chạy trên lõi chuyên dụng của hệ thống đa bộ xử lý. Nó quản lý các yêu cầu CPU bằng cách sử dụng một khung CHDCND Triều Tiên, cho phép các ứng dụng giao tiếp trực tiếp với các thiết bị mạng.

IOKernel quyết định hạt nhân nào sẽ được ủy thác một nhiệm vụ cụ thể. Thuật toán cũng quyết định cần bao nhiêu lõi. Đối với mỗi quy trình, các lõi chính (được đảm bảo) và các lõi bổ sung (có thể nổ) được xác định - lõi sau sẽ được khởi chạy trong trường hợp số lượng yêu cầu tới CPU tăng mạnh.

Hàng đợi yêu cầu IOKernel được tổ chức như sau vòng đệm. Cứ sau XNUMX micro giây, thuật toán sẽ kiểm tra xem liệu tất cả nhiệm vụ được giao cho lõi đã hoàn thành hay chưa. Để làm điều này, nó so sánh vị trí hiện tại của đầu bộ đệm với vị trí trước đó của đuôi nó. Nếu hóa ra đuôi đã có trong hàng đợi tại thời điểm kiểm tra trước, hệ thống sẽ ghi nhận tình trạng quá tải bộ đệm và phân bổ một lõi bổ sung cho quy trình.

Khi phân phối tải, ưu tiên được dành cho các lõi mà quy trình tương tự đã được thực thi trước đó và một phần vẫn còn trong bộ đệm hoặc cho bất kỳ lõi nhàn rỗi nào.

Bộ cân bằng tải CPU mới của MIT

Shenango cũng áp dụng cách tiếp cận này ăn cắp công việc. Các lõi được phân bổ để chạy một ứng dụng sẽ giám sát số lượng tác vụ của nhau. Nếu một lõi hoàn thành danh sách nhiệm vụ của mình trước các lõi khác, thì nó sẽ “giảm bớt” một phần tải cho các lõi lân cận.

Thuận lợi và bất lợi

Trên theo các kỹ sư từ MIT, Shenango có khả năng xử lý năm triệu yêu cầu mỗi giây và duy trì thời gian phản hồi trung bình là 37 micro giây. Các chuyên gia cho rằng trong một số trường hợp, công nghệ này có thể tăng tỷ lệ sử dụng bộ xử lý trong trung tâm dữ liệu lên 100%. Kết quả là, các nhà khai thác trung tâm dữ liệu sẽ có thể tiết kiệm chi phí mua và bảo trì máy chủ.

Tiềm năng giải pháp ăn mừng và các chuyên gia từ các trường đại học khác. Theo giáo sư một viện nghiên cứu của Hàn Quốc, hệ thống MIT sẽ giúp giảm thiểu tình trạng chậm trễ trong các dịch vụ web. Ví dụ, nó sẽ hữu ích trong các cửa hàng trực tuyến. Vào những ngày bán hàng thậm chí còn có sự chậm trễ thứ hai trong việc tải trang приводит khiến số lượt xem trang web giảm 11%. Phân phối tải nhanh chóng sẽ giúp phục vụ nhiều khách hàng hơn.

Công nghệ vẫn còn nhược điểm - nó không hỗ trợ đa bộ xử lý NUMA-hệ thống trong đó các chip được kết nối với các mô-đun bộ nhớ khác nhau và không “giao tiếp” với nhau. Trong trường hợp này, IOKernel có thể điều chỉnh hoạt động của một nhóm bộ xử lý riêng biệt, nhưng không phải tất cả các chip máy chủ.

Bộ cân bằng tải CPU mới của MIT
/ hình chụp Tim Reckmann CC BY

Công nghệ tương tự

Các hệ thống cân bằng tải bộ xử lý khác bao gồm Arachne. Nó tính toán số lượng lõi mà một ứng dụng sẽ cần khi khởi động và phân phối các tiến trình theo chỉ số này. Theo các tác giả, độ trễ tối đa của một ứng dụng ở Arachne là khoảng 10 nghìn micro giây.

Công nghệ này được triển khai dưới dạng thư viện C++ cho Linux và mã nguồn của nó có sẵn tại GitHub.

Một công cụ cân bằng khác là ZygOS. Giống như Shenango, công nghệ này sử dụng phương pháp đánh cắp công việc để phân phối lại các quy trình. Theo các tác giả của ZygOS, độ trễ trung bình của ứng dụng khi sử dụng công cụ này là khoảng 150 micro giây và tối đa là khoảng 450 micro giây. Mã dự án cũng thuộc phạm vi công cộng.

Những phát hiện

Các trung tâm dữ liệu hiện đại tiếp tục mở rộng, xu hướng ngày càng tăng đặc biệt đáng chú ý trên thị trường trung tâm dữ liệu siêu quy mô: hiện nay trên thế giới 430 trung tâm dữ liệu siêu quy mô, nhưng trong những năm tới số lượng của chúng có thể tăng 30%. Vì lý do này, công nghệ cân bằng tải của bộ xử lý sẽ có nhu cầu lớn. Các hệ thống như Shenango đã có sẵn thực hiện các tập đoàn lớn và số lượng các công cụ như vậy sẽ chỉ tăng lên trong tương lai.

Các bài đăng từ blog đầu tiên về IaaS của công ty:

Nguồn: www.habr.com

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