Bagaimana cara mengaktifkan beberapa core di lingkungan virtual saya?

20

Saya telah menginstal Ubuntu di lingkungan virtual menggunakan Oracle VM VirtualBox Manager dan berfungsi dengan baik.

Namun saya ingin mengaktifkan banyak core - seperti terlihat pada gambar di bawah mesin Windows saya memiliki 2 core:

masukkan deskripsi gambar di sini

Sekarang ketika saya menjalankan lscpudi Ubuntu saya mendapatkan info berikut mengungkapkan bahwa hanya 1 inti yang digunakan:

masukkan deskripsi gambar di sini

Saya sudah mencoba mengubah pengaturan kotak virtual untuk mengaktifkan banyak prosesor tetapi tidak memungkinkan saya untuk melakukannya seperti yang ditunjukkan pada gambar di bawah ini:

Gambar

Bagaimana cara mengaktifkan beberapa core (prosesor) di lingkungan virtual saya?

Hasse Andersen
sumber

Jawaban:

17

Untuk mengaktifkan lebih dari 1 CPU di VM Anda, pengaturan berikut diperlukan sebagai tambahan:

  • Perangkat keras tamu virtual 64-bit di tab Pengaturan umum (untuk tamu 64-bit)

    masukkan deskripsi gambar di sini

  • aktifkan I / O APIC di tab pengaturan Motherboard

    masukkan deskripsi gambar di sini

  • aktifkan virtualisasi perangkat keras (VT-x / AMD-V) di tab Akselerasi

    masukkan deskripsi gambar di sini

Perhatikan bahwa jika Anda menjalankan VM Anda pada semua core yang tersedia, Anda mungkin mengalami kinerja host yang lebih baik ketika menetapkan batas eksekusi ke CPU.

Jika Anda belum mengaktifkan fitur CPU hot-plug dari virtualbox perubahan jumlah core hanya dapat dilakukan pada mesin yang dimatikan .

Peningkatan kinerja di tamu hanya diharapkan untuk perangkat lunak yang menggunakan beberapa core. Hanya kemudian memberikan semua core dengan topi eksekusi masuk akal.

Takkat
sumber
jadi ini tidak mungkin pada Ubuntu 32 bit?
1
@cipricus terima kasih atas pemberitahuannya, 64-bit hanya diperlukan untuk tamu 64-bit, tentu saja.
Takkat
@Takkat Saya menggunakan Ubuntu 32 bit sebagai OS tamu. Bagaimana saya bisa mengaktifkan banyak CPU?
smwikipedia
15

Jika VM Anda sedang berjalan (atau "Tersimpan"), Anda tidak dapat mengubah nilai itu. Matikan VM Anda terlebih dahulu.

0x80
sumber
Padahal itu akan sangat keren jika kita bisa menukar prosesor saat runtime. Itu akan memberi CPU pembatasan dimensi baru.
Tomáš Zato - Kembalikan Monica
2
Virtualbox mendukung CPU hot-plugging
brunoqc
1

Saya sedang mengerjakan program multithreaded yang dijalankan secara berurutan pada mesin virtual. Saya memiliki masalah yang sama seperti Anda. Saya memperbaikinya dengan:

  1. Hentikan mesin virtual atau keluar.
  2. Luncurkan VMWare -> Pilih mesin -> Klik Sistem -> Klik Prosesor -> Ubah prosesor angka.
  3. Mulai Mesin Virtual.

Sebelumnya std :: thread :: hardware_concurrency () dari utas standar mengembalikan 1, tetapi, setelah perubahan itu mengembalikan jumlah CPU pada pengaturan Mesin Virtual.

Sekarang, saya berhasil menjalankan program multithreaded saya di VM.

Prashant Nidgunde
sumber