Come assegnare core CPU con Taskset in Linux

Cum să atribuiți nucleele procesorului cu setul de activități în Linux
⏱️ 4 min read

L’elaborazione multi-core può avere vantaggi e svantaggi e talvolta è necessario assegnare manualmente i core della CPU ai programmi (nota anche come “affinità CPU”) per ottenere le migliori prestazioni. Sotto Linux, lo strumento principale è tasket. Sembra potenzialmente spaventoso, ma lo suddivideremo in semplici passaggi per semplificare il processo.

Nozioni di base sul set di attività

L’utilizzo di taskset può essere suddiviso in due parti: affinità della CPU con i programmi da avviare e con i programmi già in esecuzione. Il lancio dei programmi è il più facile dei due, quindi inizieremo da lì. Un comando di avvio ha questo aspetto:

Prima di inserire il numero del core della CPU che vuoi assegnare, non dimenticare che uno schema di numerazione Unix inizia tipicamente da 0, quindi il tuo primo core sarà 0, il tuo secondo core 1 e così via. Pertanto, una macchina dual-core avrà core 0 e 1 e una macchina quad-core avrà core 0, 1, 2 e 3.

Diciamo che vuoi eseguire Audacity su un sistema dual-core e vuoi che funzioni sul tuo secondo core. Quel comando sarebbe:

Utilizzo di più core

Su una delle nostre macchine, Chrome a volte perdeva i frame durante lo streaming di video, ma si comportava da solo quando veniva assegnato a due core. Se vuoi provare la stessa cosa su un sistema quad-core e desideri assegnare Chrome ai core tre e quattro, il comando sarebbe:

Non è necessario assegnare l’affinità della CPU ai core sequenziali: puoi scegliere qualsiasi core a caso. Supponiamo che tu abbia una macchina a sei core e desideri utilizzare Chrome sui core due e sei. Dovresti inserire il comando:

È inoltre possibile utilizzare un trattino per distribuire un’applicazione su più core. Ad esempio, molti programmi o funzioni di sistema meno recenti saranno predefiniti sul primo core. E se volessi lasciare il primo core il più libero possibile mentre diffondi un’applicazione di grandi dimensioni su tutti gli altri core?

Supponiamo che tu abbia un sistema a otto core e desideri eseguire Steam dal secondo all’ottavo core. Quel comando sarebbe:

Modifica dell’affinità per un programma già avviato

Taskset non si limita semplicemente al lancio di applicazioni. È inoltre possibile modificare l’affinità della CPU per un programma già in esecuzione. Tuttavia, prima di poter modificare l’affinità di un’applicazione, è necessario prima conoscere il suo ID processo (o PID in breve).

Per scoprire il PID della tua applicazione, potresti provare a utilizzare il monitor di sistema del desktop, ma il modo più rapido è solo quello di utilizzare top. Non sorprende che utilizzi il comando:

I nomi di tutti i comandi in esecuzione si trovano sul lato destro dello schermo. Gli ID di processo corrispondenti si trovano a sinistra.

Annota il tuo PID come lo userai in un attimo. Per questo esempio, useremo VLC, che sta riproducendo un video Matroska ad alta definizione su un vecchio PC con sei core. Stiamo sperimentando diverse affinità di CPU per ottenere le migliori prestazioni da VLC.

Per modificare l’affinità di un processo esistente, la sintassi è simile alla seguente:

Se puoi vedere il nostro screenshot qui sopra, l’ID processo di VLC è 20485. Proveremo a eseguire VLC sul quarto, quinto e sesto core, che nella numerazione Unix sarà 3-5. Quindi, dopo tutto ciò, il comando sarà:

Ma cosa succede se si desidera verificare l’affinità esistente prima di modificarla? Per questo, non inserire alcun numero di base e il set di attività ti dirà come viene assegnata l’affinità. Quindi, se cambiamo l’ultimo comando in:

ci mostra che VLC è distribuito su tutti i core.

Taskset Finding Affinity

Riproviamo con un programma diverso. Diciamo invece di eseguire una grande Matroska con SMPlayer e che SMPlayer sia già stato lanciato. Top dice che il PID è 16058.

Taskset Top Smplayer

Ma prima vogliamo conoscere la sua affinità esistente. Utilizzando il comando con l’estensione -cp switch ma nessun numero di core, possiamo vedere che l’affinità è attualmente distribuita su tutti i core.

Taskset Smplayer Affinity

Ora possiamo provare a diffondere SMPlayer sugli stessi tre core dell’esperimento VLC con il comando:

È facile, no? Se stai cercando di confrontare il tuo PC, dai un’occhiata alla nostra guida su 8 strumenti utili per sottoporre a stress test la tua CPU.

Relazionato:

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar di Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Potrebbero interessarti anche...

Subscribe
Notificami
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x