Làm cách nào để kích hoạt nhiều lõi trong môi trường ảo của tôi?


20

Tôi đã cài đặt Ubuntu trong môi trường ảo bằng Oracle VM VirtualBox Manager và nó hoạt động rất tốt.

Tuy nhiên, tôi muốn kích hoạt nhiều lõi - như trong hình bên dưới, máy Windows của tôi có 2 lõi:

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

Bây giờ khi tôi chạy lscpu Ubuntu, tôi nhận được thông tin sau đây cho thấy chỉ có 1 lõi đang được sử dụng:

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

Tôi đã thử thay đổi cài đặt của hộp ảo để kích hoạt nhiều bộ xử lý nhưng nó sẽ không cho phép tôi làm như trong hình bên dưới:

Hình ảnh

Làm cách nào để kích hoạt nhiều lõi (bộ xử lý) trong môi trường ảo của tôi?

Câu trả lời:


17

Để kích hoạt nhiều hơn 1 CPU trong máy ảo của bạn, ngoài ra còn cần có các cài đặt sau:

  • Phần cứng khách ảo 64 bit trong tab Cài đặt chung (dành cho khách 64 bit)

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

  • bật I / O APIC trong tab Cài đặt bo mạch chủ

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

  • cho phép ảo hóa phần cứng (VT-x / AMD-V) trong tab Tăng tốc

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

Lưu ý rằng nếu bạn chạy VM trên tất cả các lõi khả dụng, bạn có thể trải nghiệm hiệu năng máy chủ tốt hơn khi gán giới hạn thực thi cho CPU.

Nếu bạn chưa kích hoạt tính năng CPU cắm nóng của hộp ảo, việc thay đổi số lượng lõi chỉ có thể được thực hiện trên máy đã tắt .

Việc tăng hiệu suất trong máy khách chỉ được dự kiến ​​cho phần mềm sử dụng một số lõi. Chỉ sau đó đưa ra tất cả các lõi với một nắp thực hiện có ý nghĩa.


Vì vậy, điều này là không thể trên Ubuntu 32 bit?

1
@cipricus cảm ơn vì thông báo, tất nhiên chỉ cần 64 bit cho khách 64 bit.
Takkat

@Takkat Tôi đang sử dụng Ubuntu 32 bit làm hệ điều hành khách. Làm thế nào tôi có thể kích hoạt nhiều cpus?
smwikipedia

15

Nếu VM của bạn hiện đang chạy (hoặc "Đã lưu"), bạn không thể thay đổi giá trị đó. Tắt nguồn VM trước.


Mặc dù nó sẽ thực sự tuyệt vời nếu chúng ta có thể trao đổi bộ xử lý trong thời gian chạy. Điều đó sẽ cung cấp cho CPU điều chỉnh một chiều mới.
Tomáš Zato - Tái lập Monica

2
Virtualbox hỗ trợ cắm nóng CPU
brunoqc

1

Tôi đang làm việc trên một chương trình đa luồng được thực hiện theo thứ tự tuần tự trên máy ảo. Tôi đã có vấn đề tương tự như bạn đã có. Tôi đã sửa nó bằng cách:

  1. Dừng máy ảo hoặc thoát.
  2. Khởi chạy VMWare -> Chọn máy -> Nhấp vào Hệ thống -> Nhấp vào Bộ xử lý -> Thay đổi bộ xử lý số.
  3. Khởi động máy ảo.

Trước đó std :: thread :: phần cứng_concurrency () từ luồng tiêu chuẩn đã trả về 1, nhưng, sau khi thay đổi, nó trả về số lượng CPU trên các cài đặt của Máy ảo.

Bây giờ, tôi đã có thể chạy các chương trình đa luồng của mình trên VM thành công.

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.