VCPU LÀ GÌ?
I. Các khái niệm liên quan bạn nên biết!
Nội dung
- I. Các khái niệm liên quan bạn nên biết!
- 1. Hypervisor.
- 2. Socket
- 3. Processor.
- 4. Core.
- 5. Thread.
- 6. Logical Processor.
- II. vCPU là gì?
- III. vCPU hoạt động như thế nào?
Trước khi tìm hiểu vCPU là gì? ta tìm hiểu những cái cơ bản sau:
1. Hypervisor.
Là một chương trình phần mềm quản lý một hoặc nhiều máy chủ ảo (VPS). Nó được sử dụng để tạo, khởi động, dừng và restart lại các máy ảo, v.v… Các hypervisor cho phép mỗi VPS hoặc “guest” truy cập vào lớp tài nguyên phần cứng vật lý bên dưới, chẳng hạn như CPU, RAM và lưu trữ. Nó cũng có thể giới hạn số lượng tài nguyên hệ thống mà mỗi máy ảo có thể sử dụng để đảm bảo cho nhiều máy ảo cùng sử dụng đồng thời trên một hệ thống.
2. Socket
Khi bạn nhìn thấy thuật ngữ socket, tôi muốn bạn nghĩ đến phần cứng. Tôi muốn bạn hình dung số lượng socket trong một bo mạch chủ . Socket là một dãy các chân giữ bộ xử lý tại chỗ và kết nối bo mạch chủ với công suất xử lý khả dụng. Số lượng socket được xác định bởi dung lượng của bo mạch chủ.
Có sự khác biệt trong các socket tùy thuộc vào thế hệ CPU được hỗ trợ. VD: Dòng CPU Intel Silver 4110 chạy trên socket 3647.
3. Processor.
Đó là thành phần vật lý chịu trách nhiệm về tất cả các hoạt động xử lý.
Bạn có thể tham khảo thêm bài viết tổng quan về CPU để hiểu rõ hơn .
4. Core.
Lõi vật lý (core) là gì? Bên trong bộ xử lý vật lý của bạn, bạn có thể có nhiều hơn một đơn vị hoạt động, được gọi là Core. Thông thường bên trong thông số sẽ thấy 2, 4 hoặc nhiều bộ vi xử lý lõi (core) (tức là Dual, Quad Core hoặc nhiều hơn). Một lõi vật lý duy nhất có thể tương ứng với một hoặc nhiều lõi logic. Chúng ta sẽ tìm hiểu cốt lõi logic là gì trong đoạn tiếp theo.
5. Thread.
Thread là gì? Còn được gọi là luồng. Một luồng là một đường dẫn thực thi trong một tiến trình. Một quy trình chứa một hoặc nhiều luồng. Sự khác biệt cơ bản là các luồng trong cùng một quy trình chạy trong không gian bộ nhớ dùng chung, trong khi các quy trình chạy trong các không gian bộ nhớ riêng biệt.
Một luồng còn được gọi là một quy trình nhẹ. Khái niệm song song là chia một quá trình thành nhiều luồng. Ví dụ: việc mở nhiều tab trong một trình duyệt đại diện cho các chuỗi khác nhau. Đối với xử lý văn bản, có thể có nhiều luồng, chẳng hạn như một luồng để định dạng văn bản và một luồng khác để xử lý đầu vào.
6. Logical Processor.
Như đã giải thích phía trên, chúng ta có processer và core. Thông thường, một Core có thể xử lý một luồng (tức là hoạt động) tại một thời điểm (khe thời gian của bộ xử lý). Nhưng khi công nghệ Siêu phân luồng được kích hoạt và hỗ trợ, Core có thể xử lý hai luồng cùng một lúc (phức tạp hơn nhưng tôi đang chạm vào vấn đề). Số luồng tối đa đang chạy trong một máy là số bộ xử lý logic. Vì vậy, nếu bạn muốn biết bạn có bao nhiêu bộ xử lý logic, chỉ cần đếm tổng số luồng.
Ví dụ, một lõi có thể xử lý 1 luồng tại một thời điểm.
Vì vậy, nếu tôi có bộ xử lý lõi kép (tức là 2 lõi) thì hệ thống của tôi có thể xử lý
2 core = 2 thread = 2 Logical Processor.
Nhưng nếu siêu phân luồng thì mỗi lõi có thể xử lý các yêu cầu kép tức là 2 luồng cùng một lúc.
2 core = 4 thread (2 luồng mỗi lõi) = 4 Logical Processor
Khái niệm tương tự tiếp tục mở rộng cho các bộ xử lý có nhiều lõi hơn ..
II. vCPU là gì?
- vCPU là tên viết tắt của đơn vị xử lý tập trung ảo. Đối với định nghĩa, vCPU đại diện cho một phần hoặc phần của CPU vật lý, cơ bản được gán cho một máy ảo (VM) cụ thể.
- vCPU là một CPU ảo được tạo và gán cho một máy ảo hoặc phần mềm ảo hóa bởi một trình ảo hóa. Nó đại diện cho việc triển khai phần mềm của CPU vật lý không tồn tại dưới dạng CPU thực, nhưng HĐH coi đó là CPU thực.
- vCPU hay virtual Central Processing Unit được hiểu là bộ xử lý trung tâm ảo, là đơn vị xử lý trung tâm được tìm thấy trong các máy ảo và môi trường đám mây. Khi công nghệ ảo hóa ngày càng phát triển, máy ảo trở thành sự lựa chọn hàng đầu của nhiều doanh nghiệp nhằm tiết kiệm không gian, thời gian và tiền bạc cho việc quản lý.
- Máy ảo cho phép người dùng chạy nhiều hệ điều hành trên một máy vật lý duy nhất. Tuy nhiên, để làm được điều này, vCPU lại là một thành phần không thể thiếu.
Mỗi VM trong môi trường đám mây có ít nhất một vCPU. Điều này có thể thực hiện được bằng cách sử dụng CPU vật lý làm CPU ảo trên máy chủ và lưu trữ nhiều máy ảo trên đó.
Một trong những tính năng chính của vCPU là nó 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, bộ nhớ, bộ lưu trữ, v.v.
Một vCPU hoạt động bằng cách chiếm một số khe thời gian trên tất cả các lõi CPU vật lý có sẵn trên máy chủ. Điều đó có nghĩa là một vCPU không thể hiện sự phân bổ 1:1 cho tài nguyên lõi CPU vật lý. Ngoài ra, do sự phân bổ trên nhiều lõi, một vCPU có khả năng sử dụng tốt hơn so với một lõi CPU vật lý đơn lẻ.
Trình ảo hóa xác định các khe thời gian mà một vCPU chiếm giữ và lõi CPU nào hiện được gán cho vCPU. Việc phân phối tài nguyên như vậy cho phép nhiều máy ảo được lưu trữ trên một số lõi vật lý hạn chế. Có bao nhiêu vCPU trong một CPU?
Các CPU hiện đại được xây dựng trên các bộ vi xử lý mạch tích hợp có chứa một hoặc nhiều lõi.
Chip có nhiều lõi được gọi là bộ xử lý đa lõi và các lõi riêng lẻ có nhiều lõi logic, tất cả đều được sử dụng để tạo vCPU.
Một lõi vật lý thường có thể chạy hai luồng, nghĩa là nó có hai lõi logic.
Đây được gọi là Siêu phân luồng và nó cung cấp nhiều sức mạnh tính toán hơn cũng như cho phép nhiều máy ảo hoạt động đồng thời hơn. Cân nhắc tất cả những điều trên, số lượng vCPU trong một máy chủ chủ yếu phụ thuộc vào những điều sau: Số lượng CPU vật lý trong máy chủ.
Thường có một CPU trên mỗi máy, nhưng các trung tâm dữ liệu hiện đại có thể có các máy chủ bộ xử lý đơn và kép.
- Số lõi CPU.
Lõi CPU là một bộ xử lý được tích hợp trong chip CPU và mỗi lõi có thể thực hiện và xử lý các tác vụ một cách độc lập đồng thời. CPU hiện đại có tới 64 lõi chạy 128 luồng.
- Số luồng CPU.
Một luồng là một tập hợp các hướng dẫn cho phép chia lõi CPU thành nhiều lõi ảo (logic) để tăng hiệu suất. Một lõi CPU thường có hai luồng. AMD sử dụng đa luồng, trong khi Intel sử dụng siêu phân luồng.
Tham khảo phần bên dưới để tính toán số lượng vCPU bạn cần cho một máy ảo và số lượng vCPU tối đa được hệ thống của bạn hỗ trợ.
III. vCPU hoạt động như thế nào?
Trong ảo hóa, khi bạn tạo một máy chủ ảo, bạn chỉ định một bộ xử lý cho nó – bắt buộc cần nó để máy ảo chạy và thực hiện các hoạt động được phân bổ tài nguyên và kiểm soát bởi cái được gọi là hypervisor.
Giống như vRAM, VHD, Virtual network interface, chúng ta cũng gán cho máy ảo một Bộ xử lý ảo (vCPU). Nói một cách dễ hiểu, đó là TimeSlot của bộ xử lý vật lý sẽ được cấp cho máy ảo.
Vì vậy, khi tôi gán Bộ xử lý ảo cho một Máy ảo, giống như tôi thuê thời gian tính toán từ bộ xử lý, một phần của bộ xử lý.
Hypervisor sử dụng một phần tài nguyên tính toán CPU vật lý và phân bổ nó cho vCPU được gán cho một máy ảo cụ thể. Quản trị viên hệ thống có thể sử dụng hypervisor để thiết lập các phân bổ tài nguyên khác nhau trong đó các máy ảo cụ thể được định cấu hình với các khả năng vCPU cụ thể.
Tính năng này cho phép chạy một số máy ảo trên máy, chẳng hạn như chỉ có hai lõi CPU vật lý
Tôi cần bao nhiêu vCPU và cách tính toán?
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.
Số lượng vCPU được tính bằng cách lấy số lượng luồng xử lý trên mỗi lõi và nhân nó với số lượng lõi và ổ cắm CPU được sử dụng. Do đó, công thức tính số lượng vCPU là:
(Chủ đề x Lõi) x CPU vật lý = Số vCPU
Ví dụ về tính toán vCPU & Cores
Cách tốt nhất để học cách tính vCPU và lõi là chứng minh thông qua một ví dụ.
Đầu tiên, chúng ta cần chọn một máy chủ ảo và CPU. Đối với ví dụ này, chúng tôi sẽ chọn Intel Xeon E-2288G bán tạo wotech.vn làm CPU cơ bản. Các số liệu thống kê chính của Intel Xeon E-2288G bao gồm 8 lõi / 16 luồng với xung nhịp cơ bản 3,7 GHz và tốc độ tăng áp 5.0 GHz. Có 16MB bộ nhớ đệm trên bo mạch.
(16 luồng x 8 lõi) x 1 CPU = 128 vCPU
(16 Threads x 8 Cores) x 1 CPU = 128 vCPU
Xác định khối lượng công việc và sử dụng của bạn
Đó không phải là tất cả. Làm thế nào để bạn biết bắt đầu từ đâu? Trước tiên, bạn cần biết khối lượng công việc và hồ sơ ứng dụng của mình. Chúng tôi có thể giúp bạn phân tích điều này. Nhấn vào đây để liên hệ với chúng tôi.
Một số câu hỏi cần xem xét trước khi bạn bắt đầu? Các ứng dụng của bạn có luôn chạy ở mức sử dụng 100% CPU không? Bằng cách biết các yêu cầu của mình, bạn có thể đưa ra quyết định sáng suốt về phần cứng cơ bản.
Về mặt lý thuyết, nếu bạn có các máy ảo nhỏ hầu như không sử dụng bất kỳ thời gian nào của CPU, bạn có thể dễ dàng nhận được 20 – 30 máy ảo từ một máy chủ 8 lõi. Tuy nhiên, nếu bạn có khối lượng công việc lớn hơn như máy chủ cơ sở dữ liệu, bạn sẽ có ít máy ảo hơn từ máy chủ lõi 8 đó. Đó là tất cả về việc sử dụng và phân bổ tài nguyên.
Tiếp theo, chúng ta hãy xem xét một số tùy chọn cấu hình khác nhau. Chúng tôi đang làm điều này chỉ như một ví dụ và việc phân bổ vCPU của bạn cho từng máy ảo sẽ phụ thuộc vào khối lượng công việc cụ thể của bạn.
4 vCPU trên mỗi VM
128 vCPU / 4 vCPU trên mỗi VM = 32 VM
2 vCPU trên mỗi VM
128 vCPU / 2 vCPU trên mỗi VM = 64 VM
1 vCPU trên mỗi VM
128 vCPU / 1 vCPU trên mỗi VM = 128 VM
CPU cạn kiệt và hiệu suất kém
Có một điều chẳng hạn như cạn kiệt CPU có thể gây ra hiệu suất kém cho các máy ảo của bạn. Số lượng lõi ảo được chỉ định cho một máy ảo bị giới hạn.
Ví dụ: Windows Server 2008 R2 giới hạn số lượng vCPU là 4 cho mỗi VM được mở rộng lên 64 trong Windows Server 2012.