GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Windows10 VM lambat di OpenStack?

Sebelum melanjutkan, harap baca Mengapa VM Windows 10 menunjukkan penggunaan CPU 100% selalu di QEMU-KVM? Masalah yang sama berlaku untuk Windows10 VM di OpenStack yang membuatnya lambat dan selalu menggunakan 100% penggunaan CPU. Artikel ini menunjukkan cara mengonfigurasi OpenStack untuk menjalankan Windows10 VM pada prosesor multicore yang menggunakan semua core per CPU.

Info Pengaturan

Versi KVM: 2.12.0

OS Tamu: Beranda Windows10

CPU HOST: Prosesor AMD Opteron(TM) 6128 dengan

  • Model CPU:x86_64
  • CPU:16
  • Frekuensi CPU:2000 MHz
  • soket CPU:1
  • Inti per soket:4
  • Utas per inti:1
  • NUMA sel:4
  • Ukuran memori:65771872 KiB

Cara mengkonfigurasi OpenStack untuk menjalankan Windows10 VM pada prosesor multicore

CPU server modern seperti di atas menggunakan arsitektur NUMA (Non-Uniform Memory Access). Gambar di bawah ini menunjukkan perbandingan UMA dengan NUMA. Arsitektur NUMA menyediakan memori terpisah untuk setiap prosesor (tidak seperti UMA, di mana semua prosesor mengakses memori bersama melalui bus). Pada saat yang sama, sebuah prosesor dapat mengakses memori milik prosesor lain dengan menggunakan bus bersama. CPU memiliki keunggulan kinerja dalam mengakses memori lokalnya sendiri lebih cepat daripada memori lain pada multiprosesor.

PIC Courtesy:www.nakivo.com

Saat menjalankan VM pada host NUMA seperti yang ditunjukkan pada gambar di bawah, penting bahwa proses yang mengeksekusi vCPU berada di node NUMA yang sama dengan memori yang digunakan oleh proses ini. Ini memastikan semua akses memori bersifat lokal ke node dan dengan demikian tidak menggunakan bandwidth memori lintas-node yang terbatas, menambahkan latensi ke akses memori.

Konfigurasi OpenStack dari topologi NUMA dan fitur penyematan CPU memberikan kontrol tingkat tinggi atas bagaimana instance berjalan pada CPU hypervisor dan topologi CPU virtual yang tersedia untuk instance.

Cara mengonfigurasi ragam dengan penempatan &Topologi NUMA node

Dengan konfigurasi di bawah ini, driver libvirt akan dapat melakukan penempatan CPU/CORES yang cerdas untuk tamu. Ini akan meningkatkan pemanfaatan sumber daya komputasi yang efektif dan mengurangi latensi dengan menghindari akses memori lintas-node oleh tamu. Untuk mendukung spesifikasi topologi, Anda perlu menambahkan spesifikasi tambahan pada flavor. Openstack memungkinkan mendefinisikan topologi CPU dari prosesor di Mesin Virtual menggunakan properti.

$ openstack flavor set FLAVOR-NAME \
    --property hw:cpu_sockets=FLAVOR-SOCKETS \
    --property hw:cpu_cores=FLAVOR-CORES \
    --property hw:cpu_threads=FLAVOR-THREADS \

Di mana:

  • FLAVOR-SOCKETS: (bilangan bulat) Jumlah soket untuk VM tamu. Secara default, ini disetel ke jumlah vCPU yang diminta.
  • FLAVOR-CORES:(bilangan bulat) Jumlah inti per soket untuk VM tamu. Secara default, ini disetel ke 1.
  • FLAVOR-THREADS:(bilangan bulat) Jumlah utas per inti untuk VM tamu. Secara default, ini disetel ke 1.
Tidak pernah Konfigurasi lebih tinggi tidak. dari Cores pada setiap VM

Jangan pernah mengonfigurasi jumlah inti virtual yang lebih tinggi pada setiap VM daripada jumlah inti nyata yang tersedia di komputer host.

Untuk topologi saya, di bawah ini adalah set rasa:

$ openstack flavor set Windows10 \
    --property hw:cpu_sockets=1 \
    --property hw:cpu_cores=4 \
    --property hw:cpu_threads=1 \


Linux
  1. Cara Memeriksa Beban Server di Server Windows

  2. Mengapa MemTotal di /proc/meminfo berubah?

  3. Mengapa rsync saya sangat lambat?

  1. Ssh – Mengapa Firefox Sangat Lambat Dibanding Ssh?

  2. Ambil penggunaan CPU dan penggunaan memori dari satu proses di Linux?

  3. Mengapa mencetak ke stdout sangat lambat? Apakah bisa dipercepat?

  1. Membatasi penggunaan memori proses/CPU di linux

  2. Mengapa menggunakan shm_open?

  3. Mengapa login SSH saya lambat?