vCPU là viết tắt của virtual Central Processing Unit (đơn vị xử lý xử lý trung tâm ảo). Nó thường được sử dụng trong các máy ảo và môi trường đám mây. Mỗi vCPU được sử dụng trong máy ảo tương ứng với một lõi CPU vật lý.
Ngày nay, các doanh nghiệp ngày càng ưa chuộng sử dụng máy ảo, không chỉ tiết kiệm không gian, thời gian mà còn cả chi phí quản lý. Chỉ cần một máy vật lý duy nhất, người dùng có thể chạy nhiều máy ảo, trong khi đó vCPU vẫn đảm bảo được hiệu năng.
Vậy vCPU là gì, nó khác gì so với CPU và làm thế nào để tính số vCPU yêu cầu, hãy cùng bài viết tìm hiểu nhé.
vCPU là gì?
Trước khi tìm hiểu về vCPU, bạn cần nắm được một số khái niệm như: Hypervisor, socket, thread (luồng), physical core (lõi vật lý)
Hypervisor
Hypervisor (hay còn gọi là máy ảo) là một phần mềm hoặc phần cứng cho phép chia sẻ tài nguyên máy tính giữa nhiều hệ điều hành và ứng dụng khác nhau. Nó cho phép nhiều máy ảo chạy trên cùng một máy chủ vật lý, mỗi máy ảo có thể chạy một hệ điều hành và ứng dụng riêng biệt.
Hypervisor giúp tối ưu hóa sử dụng tài nguyên máy tính và giảm chi phí vận hành hệ thống. Nó cũng cung cấp tính năng bảo mật bằng cách cô lập các máy ảo khác nhau, giúp ngăn chặn các lỗ hổng bảo mật từ các ứng dụng khác nhau trên cùng một máy chủ.
Socket
Socket là một khe cắm trên bo mạch chủ (mainboard) được thiết kế để chứa CPU (Central Processing Unit).
CPU socket có chức năng kết nối CPU với bo mạch chủ và cung cấp các 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 chủ.
Thread
Luồng (Thread) CPU là một khái niệm trong công nghệ thông tin, thường được sử dụng để chỉ số lượng tác vụ (tasks) mà một bộ vi xử lý (CPU) có thể thực hiện đồng thời.
Core
Lõi (Core) là một phần của vi xử lý (CPU) được thiết kế để thực hiện các phép tính logic và các hoạt động xử lý dữ liệu. Mỗi lõi CPU có thể thực hiện một tác vụ cụ thể và hoạt động độc lập với các nhân khác trên cùng một bộ vi xử lý.
Vậy vCPU là gì?
vCPU (virtual Central Processing Unit) là một đơn vị xử lý trung tâm ảo được cung cấp bởi hypervisor để chạy trên máy ảo. Mỗi máy ảo có thể có một hoặc nhiều vCPU tùy thuộc vào cấu hình của máy ảo và tài nguyên của máy chủ vật lý.
Với vCPU, máy ảo có thể chạy các ứng dụng và hệ điều hành giống như một máy tính vật lý. Một trong những tính năng chính của vCPU đó là cho phép nhiều máy ảo chia sẻ tài nguyên vật lý của máy chủ bao gồm CPU, RAM, bộ nhớ lưu trữ,…
Nguyên lý hoạt động của vCPU
Khi một máy ảo được khởi động, hypervisor sẽ cấp phát một hoặc nhiều vCPU cho máy ảo đó. Mỗi vCPU sẽ được giả lập như một CPU vật lý với các đặc tính như tốc độ xử lý, bộ nhớ đệm và các tính năng khác tương tự như một CPU vật lý.
Khi máy ảo chạy các ứng dụng hoặc hệ điều hành, các lệnh được gửi đến vCPU để xử lý. Hypervisor sẽ phân phối các lệnh này cho các vCPU được cấp phát cho máy ảo tương ứng. Các vCPU sẽ xử lý các lệnh này và trả về kết quả cho hypervisor để được truyền đến máy ảo.
Với việc sử dụng vCPU, một máy chủ vật lý có thể chạy nhiều máy ảo cùng một lúc, giúp tối ưu hóa tài nguyên và tăng hiệu suất của hệ thống.
Sự khác biệt giữa vCPU và CPU
- vCPU là một đơn vị xử lý ảo được cung cấp bởi hypervisor trong khi CPU là một đơn vị xử lý vật lý trên máy tính.
- Đơn vị xử lý trung tâm ảo được sử dụng để chạy các máy ảo trên một máy chủ vật lý trong khi CPU được sử dụng để chạy các ứng dụng và hệ điều hành trên máy tính.
- vCPU có thể được cấu hình để chia sẻ tài nguyên CPU vật lý giữa các máy ảo khác nhau trong khi CPU không thể chia sẻ tài nguyên vật lý giữa các máy tính khác nhau.
- Đơn vị xử lý trung tâm ảo có thể được tạo và xóa linh hoạt trong khi CPU là một phần cứng cố định trên máy tính và không thể thay đổi.
- vCPU có thể được cấu hình để chạy trên nhiều lõi CPU vật lý trong khi CPU chỉ có thể chạy trên một lõi CPU vật lý.
Có bao nhiêu vCPU trong một CPU?
Các bộ vi xử lý ngày nay có thể chứa rất nhiều lõi. Mỗi lõi lại có một nhiệm vụ xử lý logic khác nhau, tất cả đều được sử dụng để tạo nên vCPU.
Một lõi vật lý thường có thể chạy 2 luồng, tương đương với 2 lõi logic. Điều này có được là nhờ công nghệ siêu phân luồng (Hyperthreading), không những giúp nâng cao khả năng tính toán của CPU mà còn cho phép nhiều máy ảo hoạt động đồng thời một lúc hơn.
Số lượng của vCPU trong một máy chủ chủ yếu phụ thuộc vào những yếu tố sau:
- Số lượng CPU vật lý: thường thì chúng ta sẽ thấy mỗi PC sẽ có một CPU. Tuy nhiên các trung tâm dữ liệu có thể sử dụng các máy chủ có 2 bộ vi xử lý.
- Số lượng lõi vật lý: ngày nay chúng ta có thể thấy những bộ vi xử lý được trang bị lên tới 64 lõi và 128 luồng.
- Số lượng luồng: công nghệ siêu phân luồng được sử dụng rộng rãi trên cả các CPU của Intel (hyper-threading) và AMD (multithreading).
Cách tính vCPU trong một CPU
Số lượng vCPU tối đa trong một hệ thống phụ thuộc vào loại CPU và nhà sản xuất trình ảo hóa (hypervisor). Công thức tính vCPU như 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
Để kiểm tra số lõi, số luồng cũng như số CPU vật lý trên máy tính Windows và Linux, các bạn thực hiện theo các bước sau:
Windows
- Nhấn tổ hợp phím Ctrl + Shift + Esc để mở Task Manager. Di chuyển đến tab Performance và chọn CPU.
- Ở góc phải cửa sổ, kiểm tra các thông tin Sockets (số CPU vật lý), Cores (số lõi) và Logical processors (số luồng).
Linux
- Nhấn tổ hợp phím Ctrl+Alt+T để mở cửa sổ Terminal, sau đó chạy dòng lệnh sau:
lscpu
- Kiểm tra các thông tin Socket(s) (số CPU vật lý), Core(s) per socket (số lõi) và Thread(s) per socket (số luồng).
Các câu hỏi thường gặp
Cách tính số lượng vCPU cho một khối lượng công việc cụ thể?
Để làm được điều này, trước tiên bạn cần xác định số lượng lõi có trên CPU vật lý. Sau đó xem xét khối lượng công việc dự kiến cho từng máy ảo.
Khi xem xét khối lượng công việc, hãy lưu ý đến mức sử dụng CPU. Mức sử dụng sẽ luôn ở mức 100% hay có các đợt sử dụng đột ngột tăng cao. Lúc này, bạn có thể xác định được số lượng vCPU sẽ sử dụng cho máy ảo.
Khối lượng công việc càng nhỏ thì càng có thể chạy nhiều máy ảo cùng lúc trên một máy chủ vật lý. Mỗi VM yêu cầu tối thiểu một vCPU và bạn có thể bổ sung thêm vCPU khi khối lượng công việc tăng lên.