Hur stor roll spelar kärnor/trådar/arkitektur/hastighet för prestanda i Linux?

Permalänk
Medlem

Hur stor roll spelar kärnor/trådar/arkitektur/hastighet för prestanda i Linux?

Jag i stort kopierade detta från en tråd jag gjorde i windows forumet.

Hejsan.
Jag kom att tänka på att jag har ingen aning om hur Linux idag hanterar/drar nytta av våra processorer.
Vad gör egentligen skillnad för Linux prestanda?
Det är klart att det finns mycket en kan göra med mjukvara. Som att ändra inställningar och ta bort program.
Men om vi utgår från att inget sådant har gjorts och vi jämför olika processorer enbart, hur blir det då?

Finns det en gräns där arkitektur, hastighet och antal kärnor inte längre gör någon märkbar skillnad?
Vi utgår från att datorn har massor med minne och snabb ssd samt att alla drivrutiner och annat lull lull är maxat.

Jag menar enbart själva OS, inte spel osv.

Visa signatur

CPU: I9 10900KF -Kylare: Arctic Freezer 360 - Moderkort: ASRock Velozita Z590 PG.
GPU: RX 9070 XT Reaper @2 st 120mm cf-v12hp hydro dynamic fläktar. 👍
RAM: 32GB DDR4 3466 MHz Ballistix Elite. HÅRDDISK: 4 st SSD, 2 Mekaniska.
MONITOR:1 Xiaomi MI 34"- 3440x1440 144Hz MONITOR:2 Optix MAG274R 27" 1080p 144Hz MONITOR/Tv:3 LG 47lv355n-ZB 47". Nätagg: Corsair Newton R2 1000W. Allt i ett Cooler Master CM Storm Stryker.

Permalänk
Medlem

Om du gör en "ps -fu root" så ser du ca 200 systemprocesser som alla drar nytta av flera kärnor så snart du börjar använda dessa kerneltjänster. Windows har ju också gått åt detta håll vartefter trådantalet i våra processorer har ökat.

Att avinstallera mjukvara i Linux tjänar ingenting till (om du inte har platsbrist på SSD). Bättre då att välja en slimmad fönsterhanterare samt att börja lära sig att bygga om kärnan. Just kärnan, som alltid ligger i minnet, har ju i de stora distributionerna stöd för "all världens hårdvara" vilket knappast behövs i hemma-burken. Det första jag gör när jag installerar en helt fräsch kärna är att rensa ut stödet för 50+ nätverkskort, det räcker gott med de som sitter i burken. Sen kan man ju fundera på om vissa saker som du använder sällan skall vara inbyggda i kärnan, eller laddas som moduler. Jag har egentligen inte sett någon vinst med detta, någon enstaka sekund snabbare boot kanske?

Tips när du bygger kärna: använd din gamla ".config" som referens mot den nya. (sortera båda och diffa dem).

I stort sätt är det minimala vinster, men det känns ju alltid bättre om man inte drar runt med en massa ryggsäckar som inte behövs.

Permalänk
Medlem
Skrivet av mc68000:

Om du gör en "ps -fu root" så ser du ca 200 systemprocesser som alla drar nytta av flera kärnor så snart du börjar använda dessa kerneltjänster. Windows har ju också gått åt detta håll vartefter trådantalet i våra processorer har ökat.

Att avinstallera mjukvara i Linux tjänar ingenting till (om du inte har platsbrist på SSD). Bättre då att välja en slimmad fönsterhanterare samt att börja lära sig att bygga om kärnan. Just kärnan, som alltid ligger i minnet, har ju i de stora distributionerna stöd för "all världens hårdvara" vilket knappast behövs i hemma-burken. Det första jag gör när jag installerar en helt fräsch kärna är att rensa ut stödet för 50+ nätverkskort, det räcker gott med de som sitter i burken. Sen kan man ju fundera på om vissa saker som du använder sällan skall vara inbyggda i kärnan, eller laddas som moduler. Jag har egentligen inte sett någon vinst med detta, någon enstaka sekund snabbare boot kanske?

Tips när du bygger kärna: använd din gamla ".config" som referens mot den nya. (sortera båda och diffa dem).

I stort sätt är det minimala vinster, men det känns ju alltid bättre om man inte drar runt med en massa ryggsäckar som inte behövs.

Vad händer när, i mitt fall Fedora, skickar ut en ny kernel-uppdatering och jag sitter med en custom-variant?

Visa signatur

// men vad vet jag, fråga en expert istället

Permalänk

Jag skulle säga att detta är en lite underlig fråga. Det är nästan ”vad är minsta rekommenderade hårdvarurekommendation för Linux” men ändå inte eftersom du säger att det får gå på en välutrustad maskin.
Svaret är väl som vanligt att det beror på. En minimal Linuxdistribution med textgränssnitt känns rask till många uppgifter på jämförelsevis rätt gammal hårdvara, samtidigt som Wake from sleep tar eoner jämfört med vilken modern Mac som helst även på en sprillans ny laptop. Så du behöver nog komma med lite mer specifika förutsättningar.

Permalänk
Medlem
Skrivet av mrTLU:

Vad händer när, i mitt fall Fedora, skickar ut en ny kernel-uppdatering och jag sitter med en custom-variant?

Då får du kompilera om din custom kernel igen.

Finns väl noll prestandavinst med en egenkompilerad kernel idag.
Kanske kan vara kul att kompilera en egen kernel en gång om man gillar att meka. Man lär sig ju lite. Gjorde det själv i början av 2000 massor med gånger för att se om jag kunde. Tveksamt om det ens då fanns någon vinst med det.

Visa signatur

ASUS ROG STRIX B450-F GAMING - AMD Ryzen 5 3600 3.6 GHz 35MB - Cooler Master - Hyper 212 Black Edition - Corsair 32GB (4x8GB) DDR4 3200Mhz CL16 Vengeance LPX - Kingston A2000 500GB M.2 NVMe - Samsung 990 PRO 1TB M.2 - Fractal Design Define C Svart - 2 X Noctua NF-P14s redux-1200 140mm PWM - Corsair RM650X 650W v2 - ASUS GeForce GTX 1080 Ti 11GB Turbo - Raijintek Morpheus II Heatpipe VGA Cooler - 2 X Noctua NF-P12 120mm PWM - OS Debian 12 Stable

Permalänk
Medlem
Skrivet av mrTLU:

Vad händer när, i mitt fall Fedora, skickar ut en ny kernel-uppdatering och jag sitter med en custom-variant?

Den kärna du är bootad på skall inte påverkas, men allt runtomkring (backup-kärnor) kommer att röra på sig. Jag kör inte Fedora, men du kanske kan spärra kärnuppdateringarna helt i "/etc/dnf/protected.d/" och köra kernel-uppdateringen manuellt framöver? Mycket av hantverket går ju att skripta i bash.

Edit: Fungerar detta för dig?

Citat:

You can add exclude=kernel* in /etc/dnf/dnf.conf and the kernels will no longer be updated during updates

https://www.reddit.com/r/Fedora/comments/10qn278/how_to_preve...

Citat:

This is two different things. 1.) mark a package as “user-installed”: it won’t be removed by dnf 2.) exclude packages from being updated (dnf --excludepkgs=xxx, can also be globally defined in dnf.conf): the package xxx won’t get updated at all. now what you want depends on your situation. I’d recommend #1, that is the solution described in the linked post, because you don’t want to loose a working kernel on one hand but you want newer kernels to come in because you want to be able to test new kernels to see whether the bug has been fixed.

https://discussion.fedoraproject.org/t/dnf-still-wants-to-ins...

Permalänk
Medlem
Skrivet av mc68000:

Den kärna du är bootad på skall inte påverkas, men allt runtomkring (backup-kärnor) kommer att röra på sig. Jag kör inte Fedora, men du kanske kan spärra kärnuppdateringarna helt i "/etc/dnf/protected.d/" och köra kernel-uppdateringen manuellt framöver? Mycket av hantverket går ju att skripta i bash.

Edit: Fungerar detta för dig?
https://www.reddit.com/r/Fedora/comments/10qn278/how_to_preve...

https://discussion.fedoraproject.org/t/dnf-still-wants-to-ins...

Well, jag menade mer om den egen konfiggade kärnan ersätts av en ny från Fedora när de tycker det är dags? Det är väl rätt troligt om man inte spärrar för kernel-uppdateringar, om man tänker efter.

Å andra sidan ska det väl inte spela nån större roll om den egna kärnan bara är, så att säga, strippad från överflöde och inte moddad med tillägg. En ny kommer ju då att att ha de där överflödet aktiverat igen, vilket ju inte är hela världen

Jag ska nog prova nångång. Bara för att.

Visa signatur

// men vad vet jag, fråga en expert istället

Permalänk
Medlem
Skrivet av Eazy:

Då får du kompilera om din custom kernel igen.

Finns väl noll prestandavinst med en egenkompilerad kernel idag.
Kanske kan vara kul att kompilera en egen kernel en gång om man gillar att meka. Man lär sig ju lite. Gjorde det själv i början av 2000 massor med gånger för att se om jag kunde. Tveksamt om det ens då fanns någon vinst med det.

Misstänker lite det. På båda frågeställningarna.

Hur som, jag har ju lyckats kompilera både Yamagi Quake II samt firmware till min Ender 3-skrivare. Fast där var det mer av tvång. Long story.

Körde även OpenELEC (var det väl?), kompileringar på min Raspberry Pi 1 en gång i tiden. Det tog tid... Hade jag varit smartare så hade kanske kompilerandet kunnat göras på en PC istället... Har för mig att anledningen till kompileringen, var att få in Spotify-kod i XBMC...

Visa signatur

// men vad vet jag, fråga en expert istället

Permalänk
Medlem
Skrivet av Eazy:

Då får du kompilera om din custom kernel igen.

Finns väl noll prestandavinst med en egenkompilerad kernel idag.
Kanske kan vara kul att kompilera en egen kernel en gång om man gillar att meka. Man lär sig ju lite. Gjorde det själv i början av 2000 massor med gånger för att se om jag kunde. Tveksamt om det ens då fanns någon vinst med det.

Kanske inte finns någon direkt prestandavinst men det kan ju finnas andra anledningar, t.ex. att bygga in stöd för saker som annars är moduler för att slippa ha ett initramfs eller om man använder out of tree-moduler som man vill bygga in.

Skrivet av mrTLU:

Well, jag menade mer om den egen konfiggade kärnan ersätts av en ny från Fedora när de tycker det är dags? Det är väl rätt troligt om man inte spärrar för kernel-uppdateringar, om man tänker efter.

Å andra sidan ska det väl inte spela nån större roll om den egna kärnan bara är, så att säga, strippad från överflöde och inte moddad med tillägg. En ny kommer ju då att att ha de där överflödet aktiverat igen, vilket ju inte är hela världen

Jag ska nog prova nångång. Bara för att.

Det är väl risk att de kommer uppdatera din bootloader för att använda deras egen kärna som förstahandsval men den lär ju sannolikt inte ta bort den du har kompilerat från din bootpartition så i värsta fall får du väl uppdatera grub eller vad nu Fedora använder för att peka tillbaka på din egen kernel och initramfs (om du använder det) som förstaval.

Ska du göra det på riktigt så förutsätter jag att det finns något sätt i Fedora att peka ut en kernel config som du vill använda och be den kompilera ny kärna från source när den släpps. Du kanske t.ex. får avinstallera deras kernel och bara installera kernel source med någon hook som kör make när den uppdaterar den. Det är hur som helst extremt enkelt att göra i Gentoo där du bara kan slänga in en config på rätt plats så kompileras den i takt med att nya versioner släpps via pakethanteraren.