Parliamo di...

Questa nuova modifica di ChromeOS potrebbe migliorare le prestazioni delle VM sui Chromebook

#10Febbraio  #News  #Chromebookperformance  #Chromebooks  #CPUaffinity 

Contenuto originale di About Chromebooks
Google sta lavorando a una nuova modifica del codice per ChromeOS che potrebbe migliorare le prestazioni delle VM sui Chromebook. ChromeOS utilizza una VM personalizzata, o macchina virtuale, per eseguire Linux sui Chromebook e per le app Android. La modifica consentirebbe l'affinità della CPU, che è un modo per limitare o consentire alla VM di utilizzare determinati processori su un Chromebook multi-core.
Cosa cambia per le prestazioni delle VM sui Chromebook
Ecco la descrizione della modifica del codice:
Quando viene specificato il flag –host-cpu-topology, crosvm creerà maschere di affinità 1:1 tra le CPU host e le vCPU della VM. Estendi questo meccanismo per passare anche gli ID del cluster e le informazioni sulla capacità della CPU al guest.
Ci sono alcune cose da scompattare qui.
Innanzitutto, la modifica del codice è specifica per crosvm, che, se non lo conosci, è il monitor VM personalizzato che Google ha creato appositamente per ChromeOS. È molto leggero rispetto alle tipiche macchine virtuali con cui potresti avere familiarità, come Parallels Desktop, QEMU o VirtualBox.
Ogni volta che apri Linux su un Chromebook, ad esempio, crosvm viene eseguito per creare una VM. All'interno di quella VM, Linux viene eseguito in un contenitore che aiuta ad aggiungere maggiore sicurezza tra Linux e il sistema ChromeOS. Sia la macchina virtuale che il contenitore aggiungono sovraccarico poiché le CPU eseguono un'istanza di computer virtualizzata o basata su software.
Cos'è l'affinità della CPU?
Quindi, qual è l'affinità della CPU e in che modo potrebbe influire sulla VM in esecuzione sui Chromebook? In sostanza, l'affinità della CPU è un modo per ottimizzare e bilanciare i core della CPU tra il normale sistema operativo e uno virtuale.
Dato che i Chromebook utilizzano processori multi-core, l'affinità della CPU può allocare un numero maggiore di core per i due sistemi. Può anche ridurre o limitare i core, se necessario. Tuttavia, non credo che questo sia il motivo principale di questa modifica del codice.
Sto anche semplificando un po 'questo per aiutare nella comprensione. C'è molto da fare a livello di sistema per quanto riguarda l'affinità della CPU e la pianificazione delle attività.
Questo è un vecchio post del forum Linux del 2008 sull'affinità della CPU, ma il principio si applica ancora ai vantaggi:
Una di queste utili utilità linux si chiama taskset che consente di impostare l'affinità cpu di un processo. Questo è solo un modo elegante per dire legare un processo a un insieme specifico di cpu. Perché vorresti farlo? La risposta breve è Bilanciamento del carico. Con la CPU multicore che diventa lo standard de facto, ci sono alcuni usi molto pratici di questo quando si tratta di virtualizzazione. Su una tipica CPU multicore oggi, ogni core ha abbastanza potenza per far funzionare facilmente una macchina fisica in modo da poter vedere l'applicazione pratica di questo; collegare una macchina virtuale a un core della CPU. Questo è applicabile per la maggior parte delle applicazioni. Se la tua applicazione ha bisogno di più cicli di cpu, puoi eseguire lo scale up aggiungendo la tua macchina virtuale a più core.
Parliamo di core!
Pensala in questo modo, utilizzando Framework Chromebook. Ha un processore Intel Core i5 di 12a generazione con 12 core. Tutte le attività in esecuzione sono distribuite tra i core secondo necessità, per bilanciare prestazioni ed efficienza. L'immagine sopra mostra quanto è in uso ogni singolo core della CPU.
Puoi vedere che le varie attività sono distribuite tra i molti core della CPU. In quell'esempio, sto solo usando ChromeOS per la navigazione web.
Ecco cosa succede quando inizio a fare qualcosa in Linux, che è in esecuzione in una VM sul Chromebook:
Puoi vedere che due dei core della CPU fisica stanno gestendo la maggior parte del carico per la VM e Linux in quel momento. Questo sembra uno spreco di risorse quando ci sono molti altri core per bilanciare il carico.
In che modo l'affinità della CPU potrebbe migliorare le prestazioni delle VM sui Chromebook
Con l'affinità della CPU abilitata e configurata su un Chromebook, è possibile regolare i vincoli sul numero di core utilizzati per la VM. Ciò consentirebbe alla VM di godere delle stesse ottimizzazioni di prestazioni ed efficienza di ChromeOS stesso.
Invece della VM che utilizza solo pochi core della CPU, ad esempio, metà di essi potrebbe essere essenzialmente dedicata a ChromeOS. L'altra metà potrebbe essere focalizzata sulle attività della VM. Si noti che anche con l'affinità CPU, un core CPU fisico non può mai essere completamente allocato a una macchina virtuale.
Secondo Parallels, questo approccio potrebbe fornire un aumento delle prestazioni del 20%; almeno per il prodotto VM di quell'azienda:
Se sul tuo server fisico sono installati diversi processori, puoi associare una macchina virtuale o un contenitore a CPU specifiche in modo che solo queste CPU vengano utilizzate per gestire i processi in esecuzione nella macchina virtuale o nel contenitore. La caratteristica di associare determinati processi a determinate CPU è nota come affinità CPU. Stabilire l'affinità della CPU tra macchine virtuali e contenitori e processori fisici può aiutarti ad aumentare le prestazioni del tuo sistema fino al 20%.
Ovviamente, senza ulteriori dettagli specifici su crovm , e dal momento che al momento non posso testare le prestazioni di questo cambiamento imminente, non so quanto possa aumentare l'affinità con la CPU. Tuttavia, è sicuramente qualcosa che testerò una volta apportata la modifica.
E se non ricordo male, Google sta sfruttando i suoi sforzi su crosvm per tutte le attività virtualizzate sui Chromebook. Quindi è possibile, anche probabile, che le app Android possano ottenere prestazioni anche qui.
Informazioni sull'autore Kevin C. Tofel si occupa di tecnologia dal 2004. Utilizza ChromeOS da quando Google ha presentato il CR-48 nel 2010, esaminando dozzine di Chromebook da allora. Ha lavorato per il team Chrome Enterprise di Google dal 2016 al 2017, supportando il lancio del supporto per le app Android. Nel tempo libero usa i Chromebook per imparare l'ingegneria del software presso Kevin C. Tofel si occupa di tecnologia dal 2004. Utilizza ChromeOS da quando Google ha presentato il CR-48 nel 2010, esaminando dozzine di Chromebook da allora. Ha lavorato per il team Chrome Enterprise di Google dal 2016 al 2017, supportando il lancio del supporto per le app Android. Nel tempo libero utilizza i Chromebook per studiare ingegneria del software alla Launch School . Nel 2019, Kevin è entrato a far parte del CS Curriculum Committee presso il college della sua comunità locale.
Condividi questo: Twitter
Facebook
Linkedin
Reddit
Articoli correlati da Informazioni sui Chromebook


RSS - Mastodon