• Digitaaliset tarvikkeet
  • Palvelin
  • Digitaalinen elämä
  • Tietosuojakäytäntö
  • Ota meihin yhteyttä
  1. Home
  2. Article
  3. VirtualBox-suorituskykyongelmat moniytimisen suorittimen säätämisessä...

VirtualBox-suorituskykyongelmat moniytimisen suorittimen säätämisessä...

Rsdaa 06/01/2022 1901

VirtualBox-suorituskykyongelmien ratkaisu moniytimisille suorittimille

Tässä artikkelissa kerrotaan yksityiskohtaisesti, kuinka voit parantaa huomattavasti VirtualBoxin suorituskykyä uusimman sukupolven Multi Core -suorittimissa säätämällä VirtualBoxia ja järjestelmäasetuksia oikean toiminnan varmistamiseksi ja yhteensopivuusongelmien ratkaisemiseksi.

VirtualBoxin hidas suorituskyky hypersäikeisissä moniytimisissä Intel Haswellissa, IvyBridgessä, SandyBridgessä

Heikko suorituskykyongelma

Kehitysympäristön käyttäminen VirtualBox Debianissa Magenton palvelemiseksi NGiNX:n kanssa paljasti valtavan hitaan suorituskyvyn, kun VirtualBox määritettiin käyttämään useampaa kuin yhtä ydintä, kuten kuka tahansa harrastaja, jolla on uusimman sukupolven moniytiminen CPU, aikoi asettaa sen.

Testipenkkikoneen kokoonpano

Testikone oli varustettu i7-4500U-prosessorilla, jossa on 2 fyysistä ydintä, joista jokaisessa on 2 säiettä (pseudoydin), yhteensä 4 suoritussäiettä.

Isäntäkäyttöjärjestelmä – Windows 7

Vieraskäyttöjärjestelmä – Debian 7/NGiNX/Magento/+

Testipenkin tulokset

Yksinkertaisen phpinfo()-sivun pyytäminen vastaa ja latautuu lähes välittömästi, mutta Magento-taustasivun pyytäminen kesti vähintään 5 sekuntia ja joskus kesti, kunnes maksimi suoritusaika 30 sekuntia ylitti. Suorituskyky ja johdonmukaisuus olivat niin huonot, että niitä ei voitu käyttää.

VirtualBox-suorituskykyongelmien "ydintä" asti

Kuten alaotsikko sanoo, ongelman ydin on fyysisen suorittimen ytimien allokointi VirtualBoxille. Intel HyperThreadingin mahdollistamia pseudoytimiä/säikeitä ei mainosteta oikeiksi prosessoriytimiksi, ja tämä hämmentää VirtualBoxia suorittimen ytimien allokoinnissa.

Esimerkiksi Intel Core i7-4500U:ssa on 2 fyysistä ydintä ja yhteensä 4 säiettä, mikä tarkoittaa, että jokainen fyysinen ydin voi ajaa kahta säiettä HyperThreading-tekniikan avulla. Ongelmana on, että lanka on kuin ylimääräinen ytimen käsi, mutta sillä ei ole samaa fyysistä resurssia kuin todellisella ytimellä.

Pahempaa on, että VirtualBox jättää kaksi ensimmäistä ydintä isäntäkäyttöjärjestelmälle, jotka Windows 7/8:ssa ovat todellisia CPU-ytimiä, ja varaa seuraavat ytimet virtuaalikoneen, jotka, arvatkaa mitä, ovat virtuaalisia säikeitä.

HyperThreadingin tarjoamat virtuaaliset säikeet ovat erittäin kevyitä toteutuksessa, eivätkä ne kopioi todellisia prosessoriresursseja (välimuisti, ALU jne.), joten suorituskyvyn heikkenemisen syy ei ole ihme.

Testaa tätä itse skenaarioSuorita VirtualBox Windows 7/8 -käyttöjärjestelmässä "2 ydintä / 4 säiettä" -suorittimella ja varaa 2 ydintä virtuaalikoneelle kohdassa Asetukset/Järjestelmä/Prosessori. Käynnistä Guest OS -virtuaalikone jollakin jatkuvasti käynnissä olevalla tehtävällä. jotain vaativaa nähdäksesi parempien asetusten vaikutuksen myöhemmin. Siirry isäntäkäyttöjärjestelmän Windows Tehtävienhallintaan/Prosesseihin ja etsi VirtualBox.exe-prosessi, joka näyttää olevan virtuaalikone (löydät niitä kaksi, yksi Managerille ja yksi koneelle), napsauta hiiren kakkospainikkeella ja valitse Set Affinity.. Poista käytöstä 3. ja 4. ytimet, niin näet, että vieraskone lukittuu. Poista ytimet käytöstä yksitellen ja tarkista, miten se vaikuttaa toimintoihin/suorituskykyyn NYT Sammuta vieraskone ja siirry kohtaan Asetukset /Järjestelmä/Prosessori ja varaa vain yksi ydin virtuaalikoneen.Tarkista huomattavasti parantunut suorituskyky Toista vaiheet 3–6 ja tarkista suorituskyky

VirtualBox CPU Core Performance Tuning

Ratkaisu ja vinkkejä VirtualBoxin suorituskyvyn parantamiseen

Pääkorjaus

Poista Hyper-Threading käytöstä koneen BIOSissa, jos se on sallittu.Vihje 1: Joissakin kannettavissa tietokoneissa, kuten ASUS-tuotemerkillä, on mukautettuja BIOS-versioita, jotka rajoittavat käyttäjää pääsy tähän asetukseen (löytyy yleensä Lisäasetukset-valikosta) – Vain BIOS voi poistaa HyperThreadingin käytöstä, koska se on laitteistoominaisuus) VirtualBox – mene kohtaan Asetukset/Järjestelmä/Prosessori ja aseta sama määrä ytimiä isännälle ja vieraalle, kuten nyt näet vain todelliset ytimet

Korkea ratkaisu, jos HyperThreading-asetus ei ole käytettävissä

VirtualBox – siirry kohtaan Asetukset/Järjestelmä/Prosessori ja varaa vieraskoneelle vain yksi ydin. Toivottavasti VirtualBox valitsee seuraavan Windows-isäntäkäyttöjärjestelmän tarjoaman ytimen, josta tulee todellinen ydin.

Kierrätystapa 2

Tarkista/määritä prosessorin affiniteetti joka kerta virtuaalikoneen VirtualBox.exe-prosessille varmistaaksesi se toimii fyysisellä ytimellä

Vinkkejä koko järjestelmän suorituskyvyn maksimoimiseksi

Muut VirtualBox-hienosäätöasetukset koneelle, jotka toimivat minulle:

Järjestelmä/emolevy/piirisarja: ICH9Järjestelmä/prosessori/suorituskanta: 100 % järjestelmä/kiihtyvyys: Ota VT-x/AMD-v käyttöön, ota käyttöön sisäkkäinen sivutallennus/ohjain: SATA/Solid State Drive tarkistettu

Älä unohda maksimoida myös laitteistosi suorituskykyä, jos se on kannettava tietokone:

Valitse High Performance -profiili Virta-asetuksista. Mukauta korkean suorituskyvyn profiilia Virranhallinta-asetuksissa ja määritä prosessorin vähimmäistilaksi 100 % Testipenkkitulokset mainittujen VirtualBox-suorituskykyongelmien ratkaisemisen jälkeen

Suorituskyky on johdonmukaista ja ennustettavaa, sillä välimuistiin tallentamattomia Magento-taustaohjelmia on noin 4–5. sekuntia.

Tarkempi selitys

vCPU:t on sidottu suoraan fyysisiin ytimiin, mutta ei erikseen yhteen ytimeen. Jos luot virtuaalikoneen, jossa on yksi vCPU, varaat yhden fyysisen ytimen kyseiselle VM:lle aina, kun sen on käsiteltävä jotain. Esimerkissämme pitäen tämä tarkoittaa, että voit teoriassa luoda 8 yksittäistä vCPU-virtuaalikonetta, eikä virtuaalikoneiden välillä koskaan ole resurssikiistaa. Kun alat vaeltaa usean vCPU:n virtuaalikoneisiin, alat törmätä ongelmiin. VM:t, joissa on useita vCPU:ita, edellyttävät, että kaikki varatut ytimet ovat vapaita ennen kuin käsittely voidaan aloittaa. Tämä tarkoittaa, että jos sinulla on 2 vCPU-konetta, käytettävissä on oltava 2 fyysistä ydintä ja 4 vCPU vaatii 4 fyysistä ydintä jne.

Ydinten lisääminen voisi hidastaa virtuaalikonetta. Syynä on se, että virtualboxin suorittimen ajoittimen on ajoitettava pääsy virtuaalikoneen ytimeen ja allokoitava kaikki virtuaalikoneelle osoitetut ytimet samanaikaisesti.

Sallitaan siis esimerkiksi käyttää 4 ydintä (ei käsitellä fyysistä vs. loogista ydinongelmaa). Oletetaan, että sinulla on 4 ydintä. Ensinnäkin käytät Ubuntua ja Virtualboxia, jotka tietysti käyttävät erilaisia ​​prosesseja. Jos linux-käyttöjärjestelmän ja virtualboxin välillä, sanotaan, että 2 ydintä on aina käytössä ja kolmas käytetään satunnaisesti. Nyt sinulla on virtuaalikone (winxp win7:llä ei ole väliä) ja sille on määritetty 2 ydintä. Virtuaalikoneen on odotettava, kunnes 2 ydintä on saatavilla, ennen kuin se voi käsitellä mitään, ja tarkoitan MITÄÄN. Ohjelman käynnistäminen, näppäimistön/hiiren syöttöön vastaaminen, mitä tahansa. Joten tässä asennuksessa varsinainen järjestelmäsi (Ubuntu ja VirtualBox) käyttää yli 2 ydintä VM:n on odotettava, odotettava ja odotettava. Tätä odotusaikaa kutsutaan "CPU Ready" -ajaksi. Paljon tietoa verkossa suorittimen valmiusajoista.

… paras käytäntö on tehdä virtuaalikoneesta mahdollisimman kevyt. Aloita 1 prosessorilla/ydin ja lisää vain tarvittaessa. Jos VM-käynnistysaikasi on nopeampi yhdellä ytimellä, järjestelmälläsi ei ole käytettävissä olevia resursseja ajoittaa enemmän ajoissa, koska kaikkien määritettyjen ytimien on oltava käytettävissä samanaikaisesti. Joskus voit päästä eroon muiden resurssien, kuten RAM:n, liiallisesta provisiosta virtuaalikoneelle, etkä kärsi tällaisesta suorituskyvystä, mutta et vCPU:ista.

Lähteet:

CPU-valmius on:

Aika, jonka virtuaalikone odottaa jonossa toimintavalmiissa tilassa, ennen kuin se voidaan ajoittaa suorittimeen.

Tämä tarkoittaa, että virtuaalikone on valmis käsittelemään jotain, mutta sen on odotettava, koska sen tarvitsemat suoritinresurssit eivät ole käytettävissä fyysisessä isännässä.

Lähde: http://virtualblocks.wordpress.com/2010/06/22/cpu-ready-over-built-vm-or-over-utilized-host/

Lisätestaus

Tein seuraavan uuden testin uudella koneella selvittääkseni, johtuvatko ongelmat suorittimen valmiusajoista:

Testausjärjestelmä

Intel i7-4710MQ (4 ydintä, yhteensä 8 säiettä) Windows 7 -isäntäjärjestelmäVirtualBOX 4.3.10Debian7 ja NGINX

4 suoritinta.

Testitulokset näyttävät latausajan Magento-sivu:

Ensimmäinen päivitysToinen päivitysKolmas päivitys, kun avataan ja suljetaan toistuvasti aloitusvalikko isäntäkäyttöjärjestelmässä (Windows)

Voidaan helposti nähdä, että isäntäkäyttöjärjestelmän pitäminen ylimääräisenä tehtävänä, aivan yhtä helppoa kuin aloitusvalikon avaaminen ja sulkeminen monta kertaa, Vieraskäyttöjärjestelmän palvellessa sivua aiheutti yli 1 sekunnin ylimääräisen odotusajan. Tämä vahvistaa, että ongelma liittyy suorittimen valmiusaikoihin.

1 suoritin varattu

VM:lle varattu yksi ydin osoittaa huomattavasti paremman sivun lataussuorituskyvyn, vakaa päivitysten välillä, eikä pieni isäntäprosessorikuormitus vaikuta (kuten aloitusvalikon avaaminen).

I/O APIC:n ja piirisarjan asetusten välillä ei myöskään ollut vaikutusta suorituskykyyn.

VirtualBoxin I/O APIC ja piirisarjaasetukset

I/O APIC

VirtualBox-dokumentaatiosta:

Ota I/O APIC käyttöön

Advanced Programmable Interrupt Controllers (APIC) on uudempi x86-laitteistoominaisuus, joka on korvannut vanhat ohjelmoitavat keskeytysohjaimet (PIC) viime vuosina. I/O APIC:n avulla käyttöjärjestelmät voivat käyttää yli 16 keskeytyspyyntöä (IRQ) ja välttää siten IRQ:n jakamisen luotettavuuden parantamiseksi.

Huomaa: I/O APIC on otettava käyttöön 64-bittisissä vieraskäyttöjärjestelmissä, erityisesti Windows Vistassa. se vaaditaan myös, jos haluat käyttää useampaa kuin yhtä virtuaalisuoritinta virtuaalikoneessa.

I/O APIC:iden ohjelmistotuki on kuitenkin ollut epäluotettava joissakin muissa käyttöjärjestelmissä kuin Windowsissa. Lisäksi I/O APIC:n käyttö lisää hieman virtualisoinnin yleiskustannuksia ja siten hidastaa hieman vieraskäyttöjärjestelmää.

Varoitus: Kaikki Windows-käyttöjärjestelmät Windows 2000:sta alkaen asentavat eri ytimiä sen mukaan, onko I/O APIC saatavilla. Kuten ACPI:n kohdalla, I/O APIC:tä ei siksi saa sammuttaa Windows-vieraskäyttöjärjestelmän asennuksen jälkeen. Sen käynnistämisellä asennuksen jälkeen ei kuitenkaan ole vaikutusta.

Lisäksi voit poistaa käytöstä ACPI (Advanced Configuration and Power Interface), jonka VirtualBox esittää vieraskäyttöjärjestelmälle oletuksena. ACPI on nykyinen alan standardi, jonka avulla käyttöjärjestelmät voivat tunnistaa laitteistot, määrittää emolevyt ja muut laitteet sekä hallita virtaa. Koska kaikki nykyaikaiset tietokoneet sisältävät tämän ominaisuuden ja Windows ja Linux ovat tukeneet sitä jo vuosia, se on oletusarvoisesti käytössä myös VirtualBoxissa. Se voidaan kytkeä pois päältä komentoriviltä; Katso kohta "VBoxManage modifyvm".


PREV: Kuinka korjaat palvelimen määritetyllä isäntänimellä, jota ei voitu...

NEXT: Mikä on palvelimen ylläpitosuunnitelma ja miksi se on tärkeä ...

Popular Articles

Hot Articles

Navigation Lists

Back to Top