Il consiglio é anche di sperimentare un po con isolcpus=... , irq-affinity e process-tools
isolcpus= isolare una cpu da dedicare poi al player
irq-affinity spostare gli irq di sistema (rete e usb) su core diffrenti
process-tools per prioritį affinity e nice delle applicazioni
Aggiornate le immagini Systemd x86_64
aggiornato l'intero sistema
rimosso il pf-kernel e aggiunto gentoo-sources v. 4.20.6 (con flag experimental, che applica in automatico le stesse patch del pf)
per chi volesse attivare il BFQ scheduler, deve proseguire in questo modo (forse in futoro predispongo un comando).
Io personalmente non lo consiglio, ho visto vari Benchmark in giro e non é superiore al cfq o ad altri, anzi in molte situazioni é molto peggio....
ma comunque:
inserirci dentro questo:codice:nano /etc/udev/rules.d/60-scheduler.rules
codice:# set deadline scheduler for non-rotating disks ACTION=="add|change", KERNEL=="sd[a-z]", TEST!="queue/rotational", ATTR{queue/scheduler}="deadline" ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="bfq" # set cfq scheduler for rotating disks ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"
codice:mount /boot
editare il file di configurazione di grub
e aggiungere al GRUB_CMDLINE_LINUX la chiave scsi_mod.use_blk_mq=1tcodice:nano /etc/default/grub
un esempio:
codice:GRUB_DISTRIBUTOR="GentooPlayer" GRUB_SAVEDEFAULT=true GRUB_DEFAULT=saved GRUB_TIMEOUT=5 GRUB_DISABLE_SUBMENU="y" #GRUB_CMDLINE_LINUX="threadirqs intel_idle.max_cstate=0 isolcpus=3 vsyscall=none elevator=noop" #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs transparent_hugepage=never noapic clocksource=hpet" GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd threadirqs intel_idle.max_cstate=0 vsyscall=none scsi_mod.use_blk_mq=1" GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs transparent_hugepage=never clocksource=hpet " GRUB_BACKGROUND="/boot/grub/gp2.png" GRUB_DISABLE_RECOVERY="true"
dare i comandi
codice:grub-mkconfig -o /boot/grub/grub.cfgcodice:udevadm control --reloadcodice:udevadm trigger
riavviare
Ultima modifica di antonellocaroli : 07-02-2019 a 05:26
Aggiornamenti:
- x86_64: Aggiornato intero sistema, rimosso il pf-kernel e aggiunto il gentoo-sources 4.20.y
- Rpi: Aggiornato intero sistema, aggiunto il kernel 4.20.y (no RT), rimangono il 4.14.y e il 4.14.y RT compatibili con i driver I-Sabre-K2M
- bbb: Aggiornato intero sistema, aggiornato i kernel 4.20.y e 4.19.y RT
- UsbBridge: Aggiornato il sistema, ricompilato kernel con l'ultima patch aggiunta
Su piattaforma x86_64 ho aggiunto all'overlay Qobuz player e Jriver.
si possono installare con
codice:gp-updatecodice:emerge --ask jriver-bincodice:emerge --ask qobuz-desktop-player-bin
Ultima modifica di antonellocaroli : 12-02-2019 a 06:56
@dankan73
hai la casella dei messaggi piena....
Tips su affinity, process-tools, isolcpus e rt prioritį
consigliato.
faccio l'esempio del mio player con 4 core, quindi le cpu in questione sono la 0,1,2,3.
come prima cosa mi edito il file di configurazione di grub
e modifico la riga GRUB_CMDLINE_LINUX_DEFAULT=codice:nano /etc/default/grub
ecco il mio
poicodice:GRUB_DISTRIBUTOR="GentooPlayer" GRUB_SAVEDEFAULT=true GRUB_DEFAULT=saved GRUB_TIMEOUT=5 GRUB_DISABLE_SUBMENU="y" #GRUB_CMDLINE_LINUX="threadirqs intel_idle.max_cstate=0 isolcpus=3 vsyscall=none elevator=noop" #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs transparent_hugepage=never noapic clocksource=hpet" GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd threadirqs intel_idle.max_cstate=0 vsyscall=none" GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs transparent_hugepage=never isolcpus=1,2,3 nohz_full=1,2,3 tsc=reliable mce=ignore_ce nosoftlockup audit=0 idle=poll" #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs transparent_hugepage=never clocksource=hpet" GRUB_BACKGROUND="/boot/grub/gp2.png" GRUB_DISABLE_RECOVERY="true"
codice:mount /bootrebootcodice:grub-mkconfig -o /boot/grub/grub.cfg
Praticamente isolo la cpu1,2 e 3. In modo che al riavvio ho tutti i processi sulla cpu0.
Se si deve compilare qualcosa o aggiornare il sistema conviene tornare alla riga precedente, per questo io ho due righe una commentata. commento uno e scommento l'altra all'occorrenza. Altrimenti il sistema in quel caso ricompila con un core solo.
a questo punto do l'affinitį degli IRQ della usb alla cpu1 e della rete alla cpu2.
Con il comando irq-affinity o dal menu gp-menu>System>CPU and Process-Setting>Move the system IRQ (usb, rete, etc.) to a specific CPU
nel mio caso gli IRQ che mi interessano gia sono settati,il 20 (usb) sulla CPU1, e il 16 e il 19 sulla CPU2.
spostati gli IRQ che ci interassano, aggiungo all'avvio di sistema la modifica gp-menu>System>CPU and Process-Setting>Make irq-affinity changes permanent even at reboot
Dopodiché passo alle applicazioni player che sposto sulla CPU3 con process-tools o da menu gp-menu>System>CPU and Process-Setting>System>CPU and Process-Setting
si apre un file da editare, ecco un esempio:
Squeezelite con nice -10 sulla cpu3 e con prioritį RT Round Robin 85 e lo stesso per networkaudiod.codice:######### Squeezelite-R" ############# aname_save[8]='squeezelite-R2' anice_save[8]=-10 aaffinity_save[8]='3' aschedule_policy_save[8]='SCHED_RR' aschedule_priority_save[8]='85' ######### LMS ####################### aname_save[9]='slimserver.pl' anice_save[9]=0 aaffinity_save[9]='0-3' aschedule_policy_save[9]='SCHED_OTHER' aschedule_priority_save[9]='0' ########## networkaudiod NAD ########## aname_save[10]='networkaudiod' anice_save[10]=-10 aaffinity_save[10]='3' aschedule_policy_save[10]='SCHED_RR' aschedule_priority_save[10]='85' ########## LMS ##########
Per aggiungere all'avvio la modifica, gp-menu>System>CPU and Process-Setting>Make permanent changes
process-tools per funzionare ha bisogno che i player interessati siano messi all'avvio di sistema.
Ecco i risultati
tutto sulla cpu0 e squeezelite sulla 3
Alla fine mi configuro la prioritį degli irq di sistema (usb e rete) con il comando rtirqconf o da menu gp-menu>System>RT System>Opens the RTirq configuration wizard
e lo aggiungo all'avvio con gp-menu>System>RT System>Add RTirq on startup
ps: sono tutti processi che fanno il loro lavoro all'avvio di sistema, 1 volta sola, non sono processi cron che possono causare xrun in alcuni casi...
Ultima modifica di antonellocaroli : 03-03-2019 a 11:34
Ci sono attualmente 3 utenti che stanno visualizzando questa discussione. (0 utenti e 3 ospiti)