Overprovision CPU và lập kế hoạch tài nguyên
Hiểu về cấp phát CPU, tỷ lệ overcommit và các tác động hiệu năng trong VergeOS, bao gồm tỷ lệ khuyến nghị theo loại khối lượng công việc và các phép tính lập kế hoạch dung lượng.
Tổng quan
Quá cấp phát CPU (còn gọi là overcommit) cho phép bạn phân bổ nhiều lõi CPU ảo hơn cho các workload so với số lõi vật lý hiện có. Hướng dẫn này giải thích cách VergeOS xử lý tài nguyên CPU, tác động của việc quá cấp phát và các phương pháp tốt nhất cho việc lập kế hoạch dung lượng.
Cách VergeOS phân bổ CPU hoạt động
Lõi ảo so với lõi vật lý
Khi bạn gán vCPU cho một máy ảo (VM), bạn đang phân bổ các lõi ảo được lập lịch lên các lõi CPU vật lý. VergeOS không dành riêng các lõi vật lý cho VM — thay vào đó, nó sử dụng chia sẻ theo lát thời gian để chia sẻ tài nguyên vật lý.
Các điểm chính:
Theo mặc định, vCPU không được ghim vào lõi vật lý
Nhiều vCPU từ các VM khác nhau có thể chia sẻ cùng một lõi vật lý
Bộ lập lịch của hypervisor quản lý việc phân bổ thời gian CPU
Cài đặt "Số lõi tối đa trên mỗi máy"
Cài đặt của cụm này kiểm soát số lõi CPU tối đa có thể được phân bổ cho một workload duy nhất (VM, node tenant hoặc dịch vụ NAS).
Vị trí: Hạ tầng > Cụm > [Tên cụm] > Chỉnh sửa
Các ràng buộc quan trọng
Giá trị này nên không bao giờ vượt quá tổng số lõi vật lý trên node nhỏ nhất của bạn
Trong hầu hết các trường hợp, hãy giữ nó trong phạm vi một socket CPU duy nhất để đạt hiệu năng NUMA tối ưu
Các VM vượt quá giới hạn này sau khi thay đổi không thể di chuyển cho đến khi số lõi được giảm xuống
Tỷ lệ quá cam kết CPU
Tỷ lệ overcommit là gì?
Tỷ lệ giữa tổng số vCPU đã phân bổ và tổng số lõi vật lý:
Ví dụ: Một cụm 2 node với 32 lõi mỗi node (tổng 64) chạy các VM với tổng 96 vCPU sẽ có tỷ lệ overcommit 1,5:1.
Tỷ lệ khuyến nghị theo loại workload
Workload nhẹ/văn phòng
4:1 đến 6:1
VM desktop, máy chủ tệp
Mục đích chung hỗn hợp
2:1 đến 4:1
Mô hình doanh nghiệp điển hình
Máy chủ cơ sở dữ liệu/ứng dụng
1:1 đến 2:1
Nhạy cảm với hiệu năng
Điện toán hiệu năng cao
1:1 hoặc thấp hơn
Workload bị giới hạn bởi CPU
Bắt đầu thận trọng
Bắt đầu với tỷ lệ thấp hơn và tăng dần dựa trên việc giám sát. Dễ bổ sung dung lượng hơn là khắc phục hiệu năng kém.
Tác động đến hiệu năng
Khi overcommit hoạt động tốt
Workload theo đợt: Các VM thỉnh thoảng có đột biến CPU nhưng phần lớn thời gian nhàn rỗi
Thời điểm khác nhau: Các workload đạt đỉnh vào những thời điểm khác nhau
Ứng dụng phụ thuộc I/O: Các VM chờ đĩa hoặc mạng nhiều hơn CPU
Khi overcommit gây ra vấn đề
Workload bị giới hạn bởi CPU: Ứng dụng liên tục sử dụng 100% CPU
Ứng dụng nhạy cảm với độ trễ: Hệ thống thời gian thực, VoIP, giao dịch
Nhu cầu đồng thời: Tất cả VM đều cần CPU cùng lúc
Dấu hiệu của việc overcommit quá mức
Thời gian sẵn sàng CPU cao: Các VM chờ CPU vật lý sẵn có
Hiệu năng không nhất quán: Ứng dụng lúc thì hoạt động tốt, lúc thì kém
Hệ điều hành khách hiển thị CPU cao: Nhưng hypervisor cho thấy mức sử dụng thấp hơn
Lập kế hoạch dung lượng
Tính toán dung lượng CPU khả dụng
Đối với cụm có dự phòng N+1:
Ví dụ: Cụm 4 node, mỗi node 32 lõi, tỷ lệ mục tiêu 2:1
Khả dụng: (4-1) × 32 = 96 lõi
vCPU có thể sử dụng: 96 × 2 = 192 vCPU
Các lưu ý về di chuyển
Khi một node bị lỗi hoặc chuyển sang bảo trì:
Tất cả VM phải vừa với các node còn lại
Mỗi VM phải nằm trong cài đặt "Số lõi tối đa trên mỗi máy"
Các VM có nhiều vCPU có thể bị kẹt nếu không có node đơn lẻ nào có thể chứa chúng
Sẵn sàng cho di chuyển
Nếu một VM có 64 vCPU nhưng các node của bạn chỉ có 32 lõi, VM đó không thể di chuyển trong các sự kiện bảo trì hoặc lỗi. Hãy giữ số lõi của VM trong phạm vi dung lượng của một node duy nhất.
Các phương pháp hay nhất
Hướng dẫn chung
Giám sát trước khi phân bổ: Hiểu các mẫu sử dụng CPU thực tế trước khi bổ sung dung lượng
Định cỡ VM hợp lý: Bắt đầu với ít vCPU hơn và tăng theo nhu cầu
Dành sẵn phần dự phòng: Giữ 20-30% dung lượng sẵn có cho các đột biến và failover
Sử dụng giới hạn CPU một cách thận trọng: Chúng ngăn VM sử dụng tài nguyên nhàn rỗi sẵn có
Thiết kế cụm
Kích thước node nhất quán: Giúp việc lập kế hoạch dung lượng đơn giản hơn
Lập kế hoạch cho N+1: Luôn giả định sẽ có một node không khả dụng
Ghi lại các giả định: Ghi lại mục tiêu overcommit và lý do của bạn
Cấu hình VM
Khớp vCPU với workload: Nhiều vCPU hơn không phải lúc nào cũng có nghĩa là hiệu năng tốt hơn
Cân nhắc NUMA: Đối với các VM lớn, hãy giữ vCPU trong ranh giới của node NUMA
Kiểm tra hiệu năng: Đo kiểm với workload thực tế
Giám sát sức khỏe CPU
Các chỉ số chính cần theo dõi
Mức sử dụng CPU của cụm
Trung bình < 70%
Thêm node hoặc giảm số VM
Mức sử dụng CPU của node
Duy trì < 80%
Kiểm tra phân bố VM
CPU của từng VM
Khác nhau theo workload
Điều chỉnh kích thước lại hoặc điều tra
Sử dụng Bảng điều khiển VergeOS
Điều hướng tới Cơ sở hạ tầng > Các cụm
Xem biểu đồ mức sử dụng CPU
Nhấp vào từng node để xem các chỉ số theo node
Kiểm tra thống kê CPU của VM trong bảng điều khiển của từng VM
Để biết thêm chi tiết về giám sát cụm, xem Tổng quan về cụm.
Câu hỏi thường gặp
Tôi có thể gán nhiều vCPU hơn số lõi vật lý cho một VM đơn lẻ không?
Có, nhưng hiếm khi mang lại lợi ích. Một VM có nhiều vCPU hơn số lõi vật lý trên một node có thể gặp độ trễ lập lịch khi hypervisor chờ đủ số lõi khả dụng cùng lúc.
VergeOS có hỗ trợ ghim CPU không?
VergeOS không hỗ trợ ghim CPU (affinity). Bên trong hệ thống, VergeOS sử dụng Linux Completely Fair Scheduler (CFS) để lập lịch CPU. Mỗi vCPU được ánh xạ thành một tiến trình/luồng Linux, và tất cả các luồng vCPU cùng chia sẻ chung một hàng đợi chạy CFS. Bộ lập lịch dùng logic công bằng toàn cục để quyết định tiến trình nào được dùng CPU và theo thứ tự nào.
Thiết kế này đảm bảo sử dụng tài nguyên tối ưu và duy trì khả năng di chuyển VM cho live migration và failover. Khi bạn cấp phát vượt mức tài nguyên CPU, bạn đang chia sẻ nhóm lõi vật lý đó với các VM và tenant khác.
Điều này ảnh hưởng thế nào đến cấp phép phần mềm?
Một số phần mềm (Oracle, SQL Server) được cấp phép theo lõi vật lý hoặc socket. Cách lập lịch động của VergeOS có nghĩa là bạn không thể "phân vùng cứng" tài nguyên CPU. Hãy tham khảo chính sách cấp phép ảo hóa của nhà cung cấp phần mềm — nhiều bên cung cấp mô hình cấp phép theo vCPU hoặc theo VM phù hợp hơn với hypervisor hiện đại.
Còn NUMA thì sao?
Đối với các VM có nhiều vCPU, VergeOS cố gắng giữ phân bổ bộ nhớ và CPU trong cùng một node NUMA khi có thể. Để đạt hiệu năng NUMA tốt nhất, hãy giữ số vCPU của VM ở mức bằng hoặc thấp hơn số lõi của một socket duy nhất.
Chủ đề liên quan
Tổng quan về cụm - Hiểu kiến trúc cụm
Tùy chọn cấu hình cụm - Giải thích tất cả cài đặt của cụm
Các phương pháp hay nhất cho VM - Khuyến nghị cấu hình VM
Tạo máy ảo - Hướng dẫn tạo VM
Di chuyển trực tiếp - Di chuyển VM giữa các node
Cập nhật lần cuối
Nội dung này có hữu ích không?