vCPU (Virtual Central Processing Unit) – đơn vị xử lý trung tâm ảo, thường được áp dụng trong máy ảo và cơ sở hạ tầng đám mây. Mỗi vCPU trong máy ảo tương ứng với một core của CPU vật lý.
Hiện nay, việc sử dụng máy ảo đang ngày càng được các doanh nghiệp ưa chuộng vì khả năng tiết kiệm không gian, thời gian và chi phí quản lý. Một máy chủ vật lý có thể hỗ trợ chạy đồng thời nhiều máy ảo, và nhờ vCPU, hiệu suất vẫn được bảo đảm.
Để hiểu rõ hơn về vCPU, cách nó khác biệt so với CPU truyền thống, và cách xác định số lượng vCPU cần thiết, bài viết sau sẽ làm sáng tỏ các vấn đề này.
vCPU là gì?
Trước khi đi sâu vào khái niệm vCPU, quan trọng là bạn phải hiểu một số thuật ngữ cơ bản như: Hypervisor, socket, thread (luồng) và physical core (lõi vật lý).
Hypervisor
Hypervisor, đôi khi được gọi là vị quản lý máy ảo, là một phần mềm hoặc phần cứng giúp phân phối tài nguyên của máy tính cho nhiều hệ điều hành và ứng dụng khác biệt. Nó cho phép các máy ảo hoạt động song song trên một máy chủ vật lý, với mỗi máy ảo đều có hệ điều hành và ứng dụng riêng lẻ.
Hypervisor cải thiện hiệu quả sử dụng tài nguyên và giảm thiểu chi phí hoạt động bằng cách cô lập các máy ảo, tăng cường bảo mật và hạn chế rủi ro liên quan đến các lỗ hổng bảo mật từ nhiều ứng dụng chạy trên cùng một máy chủ.
Socket
Socket là một khe cắm trên bo mạch chủ, được tạo ra đặc biệt cho việc lắp đặt CPU (Central Processing Unit).
Nhiệm vụ của socket CPU là thiết lập kết nối giữa CPU và bo mạch chủ, đồng thời truyền tải tín hiệu điện và dữ liệu giữa CPU và các thành phần khác trên bo mạch.
Thread
Thread CPU là thuật ngữ trong lĩnh vực công nghệ thông tin, thường ám chỉ khả năng xử lý nhiều tác vụ cùng lúc của một CPU (bộ vi xử lý).
Core
Core trong CPU là một đơn vị tính toán của bộ vi xử lý, chuyên trách thực hiện các phép toán logic và xử lý dữ liệu. Mỗi core có khả năng xử lý độc lập một tác vụ riêng biệt và hoạt động độc lập với các core khác trong cùng một CPU.
Vậy vCPU là gì?
vCPU hay đơn vị xử lý trung tâm ảo, được hypervisor cung cấp để hoạt động trên máy ảo. Mỗi máy ảo có thể được cấu hình với một hoặc nhiều vCPU, tuỳ thuộc vào thiết lập của máy ảo và nguồn lực có sẵn trên máy chủ vật lý.
Nhờ có vCPU, máy ảo có khả năng chạy ứng dụng và hệ điều hành một cách tương tự như máy tính thực. Chức năng chính của vCPU bao gồm khả năng cho phép nhiều máy ảo cùng sử dụng nguồn tài nguyên vật lý từ máy chủ, bao gồm CPU, RAM và bộ nhớ.
Nguyên lý hoạt động của vCPU
Khi một máy ảo được bật lên, hypervisor sẽ phân bổ một hoặc nhiều vCPU cho máy đó. Mỗi vCPU được mô phỏng như là một CPU thật, có các thuộc tính như tốc độ xử lý, bộ nhớ đệm và tính năng giống như CPU vật lý.
Trong quá trình máy ảo thực thi các ứng dụng hoặc hệ điều hành, mọi lệnh sẽ được gửi tới vCPU để được xử lý. Hypervisor chịu trách nhiệm phân chia những lệnh này đến các vCPU đã được gán cho từng máy ảo. vCPU sau đó xử lý các lệnh và gửi kết quả trở lại cho hypervisor, để từ đó được chuyển tới máy ảo.
Nhờ vào việc triển khai vCPU, một máy chủ vật lý có thể hỗ trợ vận hành nhiều máy ảo đồng thời, giúp tối ưu hóa nguồn lực và nâng cao hiệu quả hoạt động của toàn bộ hệ thống.
Sự khác biệt giữa vCPU và CPU
vCPU hay đơn vị xử lý trung tâm ảo, do hypervisor cung cấp, phục vụ cho việc vận hành các máy ảo trên một máy chủ vật lý, trong khi CPU, là đơn vị xử lý vật lý, dùng để thực thi ứng dụng và hệ điều hành trực tiếp trên máy tính.
vCPU cho phép phân chia và sử dụng chung tài nguyên của CPU vật lý giữa nhiều máy ảo, trong khi CPU không có khả năng chia sẻ tài nguyên với các máy tính khác.
Đơn vị xử lý ảo có thể được tạo ra hoặc xoá một cách linh hoạt theo nhu cầu, khác biệt với CPU, một thành phần cứng cố định không thể thay đổi sau khi được lắp đặt vào máy tính.
vCPU còn có khả năng cấu hình để hoạt động trên nhiều lõi CPU vật lý, cung cấp sự linh hoạt và khả năng mở rộng, trái ngược với giới hạn của CPU, chỉ hoạt động trên một lõi vật lý duy nhất.
Số lượng vCPU có trong một CPU?
Hiện nay, bộ vi xử lý đa lõi có khả năng chứa nhiều lõi, mỗi lõi đảm nhiệm các tác vụ xử lý logic riêng biệt, cùng nhau hợp lực tạo ra vCPU.
Mỗi lõi vật lý thường có khả năng xử lý đồng thời 2 luồng, tạo ra hai lõi logic. Nhờ vào công nghệ siêu phân luồng (Hyperthreading), không chỉ tăng cường hiệu suất tính toán cho CPU mà còn cho phép việc vận hành đồng thời nhiều máy ảo tăng lên.
Số vCPU trên một máy chủ được quyết định bởi một số yếu tố như sau:
- Số lượng CPU vật lý: Trong môi trường dân dụng, một PC thường có một CPU, nhưng các máy chủ dùng trong trung tâm dữ liệu có thể trang bị tới 2 CPU.
- Số lượng lõi vật lý: Bộ vi xử lý hiện đại có thể có đến 64 lõi và 128 luồng xử lý.
- Số luồng xử lý: Công nghệ siêu phân luồng được ứng dụng rộng rãi, bao gồm hyper-threading từ Intel và multithreading từ AMD.
Cách tính vCPU trong một CPU
Số vCPU tối đa mà một hệ thống có thể hỗ trợ tùy thuộc vào loại CPU được sử dụng và nhà cung cấp dịch vụ ảo hóa (hypervisor). Để tính số lượng vCPU, ta sử dụng công thức sau:
Số vCPU = (Số lõi x Số luồng) x Số CPU
Ví dụ, nếu một CPU có 64 lõi và 128 luồng thì số lượng vCPU tối đa sẽ là:
(64 lõi x 128 luồng) x 1 CPU = 8192 vCPU
Để xác định số lõi, số luồng và số CPU vật lý trên máy tính chạy Windows hoặc Linux, bạn có thể thực hiện theo các bước dưới đây:
Windows
Sử dụng phím tắt Ctrl + Shift + Esc để khởi động Task Manager. Chuyển qua tab “Performance” và lựa chọn “CPU“.
Trong góc phải của cửa sổ, bạn có thể xem thông tin về “Sockets” (số CPU vật lý), “Cores” (số lõi), và “Logical processors” (số luồng).
Linux
Dùng phím tắt Ctrl+Alt+T để mở Terminal, rồi nhập lệnh sau
lscpu
Để xem thông tin về “Socket(s)” (số CPU vật lý), “Core(s) per socket” (số lõi), và “Thread(s) per socket” (số luồng).
Cách tính số lượng vCPU cho một khối lượng công việc cụ thể?
Đầu tiên, cần xác định tổng số lõi của CPU vật lý bạn có. Tiếp theo, đánh giá khối lượng công việc dự kiến trên mỗi máy ảo.
Trong quá trình đánh giá, chú ý đến tần suất và mức độ sử dụng CPU. Điều này bao gồm việc xác định liệu CPU có bị sử dụng tối đa 100% liên tục hoặc chỉ tăng vọt đột ngột trong những thời điểm nhất định. Dựa vào đó, bạn có thể quyết định số lượng vCPU cần thiết cho từng máy ảo.
Với công việc ít đòi hỏi hơn, bạn sẽ có thể chạy nhiều máy ảo hơn trên cùng một máy chủ vật lý. Mỗi máy ảo nên có ít nhất một vCPU, và số lượng vCPU có thể được tăng thêm tùy thuộc vào nhu cầu công việc.