Giới hạn bộ xử lý Hyper-V


14

Gần đây chúng tôi đã mua một máy chủ đang chạy kim loại trần Hyper-V 2008 R2. Máy chủ có hai bộ xử lý Intel Xeon lõi tứ với khả năng siêu phân luồng, vì vậy nếu tôi hiểu chính xác thì điều này mang lại cho chúng tôi 16 lõi. Trong Hyper-V, chúng tôi đã tạo ra một máy ảo chạy Windows Server 2008 R2 với 4 bộ xử lý ảo. Màn hình cài đặt bộ xử lý cho tôi biết rằng phần này chiếm 25% tổng công suất xử lý của hệ thống. Điều này có nghĩa là 75% còn lại không thể được khai thác bởi hệ điều hành ảo? Chúng tôi sẽ chạy một số máy ảo khác, nhưng máy này dành cho SQL Server và chúng tôi muốn ném càng nhiều mã lực vào nó càng tốt.


5
Bạn muốn cực kỳ cẩn thận trong việc phân bổ vCPUs cho máy. Điều đó có nghĩa là máy ảo phải đợi cho đến khi có sẵn 4 bộ xử lý vật lý cùng lúc trước khi có thể thực thi. Xem tại đây
Holocryptic

6
Theo như Hyperthreading, hãy xem đoạn mồi tuyệt vời này: arstechnica.com/old/content/2002/10/hyperthreading.ars
Hyppy

4
Holocryptic, tuyên bố của bạn là đúng với các hệ thống VMWare cũ, nhưng nó chưa bao giờ đúng với Hyper-V. Hyper-V không "lập lịch trình" cho các bộ xử lý ảo.
Jake Oshins

Câu trả lời:


15

Một vCPU chỉ có thể được ánh xạ tới một CPU vật lý duy nhất. Bạn không thể lấy 4 CPU vật lý và tạo một vCPU nhanh hơn gấp 4 lần; Nó không phải là cách nó hoạt động.

Hyper-V bị giới hạn trong việc gán 4 vCPU cho VM (tôi đã kiểm tra lần cuối). Nếu bạn cần sức mạnh CPU đáng kể, hãy thực hiện, không có ý nghĩa gì trong việc thêm chi phí ảo hóa vào thứ gì đó CPU cần nhiều và song song ngay từ đầu.

Ngoài ra, như Holocryptic lưu ý, nếu bạn gán 4 vCPU cho VM, VM đó không thể chạy cho đến khi Hyper-V có được 4 lõi CPU vật lý để chạy chúng. Tùy thuộc vào cấu hình của bạn này có thể là một trở ngại lớn (ví dụ, nếu bạn có một máy 6 lõi với một loạt các 4 vCPU máy ảo, chỉ có ai có thể chạy cùng một lúc, hai lõi khác sẽ luôn luôn đi về cơ bản không sử dụng). Theo Jake Oshins, điều này không đúng với bất kỳ phiên bản nào của Hyper-V. Ông nói rằng Hyper-V không sử dụng lập kế hoạch băng đảng cho CPU; như hầu hết các nhà ảo thuật khác làm. Theo đó, nếu có sẵn một lõi CPU phystical, Hyper-V có thể sử dụng nó để chạy VM đa CPU. (Cũng được đề cập, Hyper-V có thể không sử dụng tất cả các lõi vật lý có sẵn tại thời điểm đó vì phân vùng NUMA)

Lưu ý bên lề: SQL không nhất thiết phải sử dụng tất cả các lõi mà bạn có thể ném vào nó ngay từ đầu. Nó thực sự phụ thuộc vào những gì bạn đang sử dụng nó và mức độ tải song song.


Tôi đồng ý, nhưng chi phí hoạt động trên CPU ảo hầu như không có gì, và hiếm khi phát huy tác dụng.
Nate

4
Chris, ghi chú của Holocryptic đơn giản là sai. Hyper-V không đợi cho đến khi có 4 CPU ảo miễn phí trước khi lên lịch cho bộ xử lý ảo từ máy ảo 4 VP. Hyper-V lên lịch cho một bộ xử lý ảo bất cứ khi nào nó có bộ xử lý vật lý miễn phí để chạy nó, với một vài cảnh báo. Chẳng hạn, nó tìm kiếm các bộ xử lý vật lý trong cùng một nút NUMA vật lý như phần còn lại của VM.
Jake Oshins

3

Đúng, những gì Chris nói. Nếu bạn cần nhiều hơn 4 CPU trong một máy ảo Hyper-V thì hãy tạo hai máy chủ SQL trong ảo và trải rộng cơ sở dữ liệu của bạn hoặc chuyển sang vật lý. Tùy thuộc vào giấy phép máy chủ SQL của bạn, bạn có thể thêm nhiều máy chủ SQL ảo (trên cùng một máy chủ vật lý) mà không phải chịu thêm chi phí cấp phép, nhưng hãy đọc sách trắng cấp phép ảo SQL để biết thêm thông tin.

Tôi cũng đồng ý rằng nếu bạn hết SQL với 4 CPU ảo thì bạn đã sử dụng ứng dụng nghiêm trọng hoặc các lệnh SQL bị viết sai.


1
Re: "... hoặc các lệnh SQL được viết xấu." Điều này gần như được đảm bảo, bất cứ khi nào mã do nhà cung cấp cung cấp đang hoạt động.
Skyhawk

Thật vậy, hầu hết lưu lượng cơ sở dữ liệu là công cụ OLTP từ hệ thống ERP của chúng tôi. Chúng tôi cũng có một hệ thống quy trình làm việc từ cùng một nhà cung cấp. Công cụ tùy chỉnh được viết trong nhà là một tỷ lệ nhỏ.
Scott

Cơ sở dữ liệu cũ của chúng tôi đang chạy tối đa trên 4 lõi logic (hai CPU lõi kép), vì vậy chúng tôi hy vọng sẽ cần nhiều hơn thế.
Scott

0

Giới hạn khoảng 4 lõi CPU:

Trong phần tập tin cấu hình của VM:

[bộ xử lý] [kiểu đếm = số nguyên tinh] 16 [/ đếm]

Bây giờ bạn có CPU 16 lõi.

CẬP NHẬT: Có vẻ như ảnh chụp màn hình

nhập mô tả hình ảnh ở đây


0

làm theo hướng dẫn này

http://surminski.eu/2012/04/17/hyper-v-how-to-add-more-than-4-cores-to-a-virtual-machine/

bạn có thể định vị tệp cấu hình vm xml trong thư mục "Máy ảo" của thư mục VHD của VM, tệp cấu hình sẽ được đặt tên theo id của VM. Dưới đây liên kết là một tài liệu tham khảo.

tham khảo: tập tin cấu hình VM xml

đảm bảo bạn chỉnh sửa tệp cấu hình VM xml bằng notepad / notepad ++ được mở dưới quyền quản trị viên

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.