Ang pagpapataas ng dalas ng timer ng Linux ay magkakaroon ng mga benepisyo sa pagganap at pag-optimize

Sa isang punto marami sa atin Naglakas-loob kaming makipaglaro sa mga gobernador Sa aming system, ginagawa ito upang makakuha ng ilang pagpapahusay sa pagganap o para sa ilang partikular na layunin, tulad ng workload, mga application, mga laro, atbp.

Ang ganitong uri ng mga pagbabago, Ang mga ito ay karaniwang hindi kasama sa mga pangkalahatang pamamahagi At ito ay maliwanag kung bakit, dahil ito ay isasalin sa isang pagtaas o pagbaba (depende sa kaso) sa mga mapagkukunan ng aming koponan.

Binanggit ko ito, dahil kamakailan lamang a Ang Google engineer ay nagmungkahi ng pagbabago la default na setting del Linux kernel timer, pinapataas ang rate ng pagkagambala nito mula 250 Hz hanggang 1000 Hz.

Itong pagbabago ay magpahiwatig ng mas mataas na dalas sa pagpapalit ng gawain at isang pagbawas sa dami ng oras sa scheduler ng gawain, naat ang kahusayan ay maaaring mapabuti sa ilang partikular na sitwasyon. Sa kasalukuyan, ang 250Hz ay ​​itinuturing na balanse sa pagitan ng pagganap, latency, at paggamit ng kuryente.

Pagganyak para sa panukala

Ang isang ng mga pangunahing argumentong pabor ng pagbabagong ito ay ang Pag-optimize ng performance sa mga device na may 120Hz display, lalong karaniwan sa mga PC at mobile device. Sa kasalukuyang setting na 250Hz, ang hindi kawastuhan ng quantization ng oras ay humigit-kumulang kalahati ng frame time, na nakakaapekto sa kahusayan sa paglalaan ng mapagkukunan.

Bilang karagdagan, ito ay naobserbahan na ang dynamic na boltahe at frequency scaling na mekanismo (DVFS) may posibilidad na gumamit ng mga agresibong diskarte sa pagpili ng dalas upang maiwasan ang pagbagal. Maaari itong magresulta sa hindi kinakailangang pagkonsumo ng kuryente kapag natapos na sa pagproseso ang isang gawain, ngunit patuloy na tumatakbo ang processor sa mas mataas na frequency dahil hindi pa nag-e-expire ang time quantum nito.

Ang pagtaas ng dalas ng pagpapalit ng gawain ay magpapahintulot:

  • Pinahusay na kahusayan sa dynamic frequency management (DVFS).
  • Mas tumpak na paglalaan ng mga oras ng scheduler ng gawain.
  • Tumaas na dalas ng pag-update ng mga istatistika ng pagkarga ng CPU.
  • Nabawasan ang oras ng paghihintay para sa mga nakabinbing gawain.
  • Mga argumento laban sa susog

Para sa bahagi nito, Isa pang inhinyero ng Google ang nagpahayag ng kanyang hindi pagsang-ayon sa pagbabago, arguing na Ang pagpapanatiling dalas ng timer sa 250 Hz ay ​​pinaka-kapaki-pakinabang para sa mga device na may mababang kapangyarihan, gaya ng mga IoT board at mobile device.

Ayon sa kanyang pagtatasa, Ang pagtaas ng dalas sa 1000 Hz ay ​​maaaring magdulot ng pagtaas sa pagkonsumo ng kuryente. Sa mga Android device, halimbawa, ang pagtaas ng hanggang 7% sa pagkonsumo ng processor ay naobserbahan sa ilang partikular na sitwasyon.

Bukod dito, Ang isang mas mataas na dalas ng timer ay nagpapahiwatig ng isang mas madalas na muling pagsasaaktibo ng CPU. Sa 250 Hz, ang mga timer na naka-iskedyul sa t+1 ms, t+2 ms, t+3 ms, at t+4 ms ay pinagsama-sama sa iisang wake-up, habang sa 1000 Hz ay ​​magkakaroon ng apat na indibidwal na wake-up, na maaaring magpapataas ng konsumo ng kuryente.

Mga resulta ng pagsubok sa pagganap

Tungkol sa kaso, ang portal Ang Phoronix ay nagsagawa ng isang serye ng mga pagsubok sa isang PC na may AMD Ryzen 9 9950X CPU upang suriin ang epekto ng pagbabago ng dalas. Ang mga resulta ay halo-halong:

  • MMas mahusay na pagganap sa 1000 Hz sa:
    Call.cpp
    nginx
    Super Tux Kart
    Siliniyum
    Mga oras ng compilation ng kernel
  • Pinakamahusay na pagganap sa 250Hz sa:
    Darktable
    PostgreSQL
    Hindi nasusukat
    Xonotic
    Blender
    SVT-AV1
    RawTherapee

Ukol sa pagkonsumo ng enerhiya, ang mga resulta ay ang mga sumusunod:

  • Setting sa 1000 Hz:
    Average na pagkonsumo: 144,2 W
    Minimum na pagkonsumo: 0,18 W
    Pinakamataas na pagkonsumo: 202,13 W
  • Setting sa 250 Hz:
    Average na pagkonsumo: 144,37 W
    Minimum na pagkonsumo: 0,07 W
    Pinakamataas na pagkonsumo: 202 W

Sa wakas, nararapat na banggitin na ang pagtaas ng kernel timer interrupt rate sa 1000 Hz ay ​​nag-aalok ng mga pakinabang sa ilang partikular na kaso ng paggamit, lalo na sa mga application na nangangailangan ng mas madalas na paglipat ng gawain at sa mga device na may mataas na refresh rate display. Gayunpaman, mayroon din itong mga disadvantage sa mga tuntunin ng pagkonsumo ng kuryente, lalo na sa mga low-power na aparato at mga kapaligiran kung saan ang kahusayan ng enerhiya ay isang priyoridad.

Sa sandaling ito, Ang panukala ay nasa ilalim pa rin ng debate sa loob ng komunidad at ang pag-aampon nito ay depende sa mas malalim na pagsusuri ng mga epekto sa iba't ibang sitwasyon ng paggamit.