Ero sivun ”Linux nopeammaksi” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
Ei muokkausyhteenvetoa
Rivi 2: Rivi 2:


== Käynnistyksen nopeuttaminen ==
== Käynnistyksen nopeuttaminen ==
Seuraa käynnistysviestejä: älä käytä "hiljaista" käynnistystä tai hienoja käynnistyskuvia: [[GRUB]]in valikossa paina käyttöjärjestelmän kohdalla e:tä, valitse rivi, joka alkaa sanalla <tt>kernel</tt> ja poista riviltä sanat <tt>splash</tt> ja <tt>quiet</tt>. Katso viesteistä, missä kohdassa kone pysähtyy pitkiksi ajoiksi ja mieti, voisiko kyseistä vaihetta jotenkin nopeuttaa. Käynnistystä voi analysoida mm. [[bootchart]]-ohjelmalla.


Monesti käynnistyksen yhteydessä käynnistyy sovelluksia, jotka ovat käyttäjälle tarpeettomia, esimerkiksi [[ssh]]-palvelinohjelma saattaa käynnistyä automaattisesti. Automaattisesti käynnistyviä palveluita voi muokata muokkaamalla [[ajotaso]]ja: siirtyessään tietylle ajotasolle Linux suorittaa hakemistossa <tt>/etc/rc.AJOTASO.d</tt> olevat skriptit. Näitä skriptejä muokkaamalla/poistamalla voi hallita automaattisesti käynnistyviä palveluita. Lisäksi tähän tarkoitukseen löytyy erillisiä ohjelmia, kuten [[sysv-rc-conf]].
=== Grub profile ===
Pysäytä Grub käynnistysvalikkoon ja käy lisäämässä käynnistysparametririville sana <tt>profile</tt>. Tällöin Grub profiloi käynnistyksen jotta seuraava käynnistys olisi nopeampi.


Ole kuitenkin varovainen poistaessasi palveluita: monet automaattisesti käynnistyvät palvelut ovat järjestelmän toiminnan kannalta elintärkeitä. Toisaalta esimerkiksi [[bluetooth]]-palvelun voi huoletta poistaa käytöstä, jos bluetooth-yhteyksille ei ole tarvetta.
=== (s/u)readahead ===
Nopeamman käynnistymisen saa, kun käynnistysvaiheessa kiintolevyltä luetaan kaikki tarvitavat tiedot yhteen pötköön. Tätä varten esimerkiksi Ubuntussa on vakiona ureadahead. Ureadaheadin profilointi ajetaan automaattisesti järjestelmässä on käynnistykseen vaikuttava muutos, eikä sen toiminta on valmiiksi melko optimoitua.


Katso tarkempi [[init-skriptit]]-listaus tuunausta varten.
=== Analysoi käynnistystä ===
 
Käynnistystä voi analysoida mm. [[bootchart]]-ohjelmalla. Ubuntussa sen asennus tapahtuu helposti komennolla:
sudo apt-get install bootchart
 
Jokaisesta käynnistyksestä sen jälkeen tulee loki ja kuvatiedosto kansioon <tt>/var/log/bootchart</tt>. Kaaviosta voit analysoida mikä käynnistyksessä kestää.
 
Voit myös seurata käynnistymistä suoraan jos poistat animaatiot käynnistyksessä: [[GRUB]]in valikossa paina e-näppäintä, valitse rivi, joka alkaa sanalla <tt>kernel</tt> ja poista riviltä sanat <tt>splash</tt> ja <tt>quiet</tt>. Katso viesteistä, missä kohdassa kone pysähtyy pitkiksi ajoiksi ja mieti, voisiko kyseistä vaihetta jotenkin nopeuttaa.
 
Monesti käynnistyksen yhteydessä käynnistyy sovelluksia, jotka ovat käyttäjälle tarpeettomia, esimerkiksi [[ssh]]-palvelinohjelma saattaa käynnistyä automaattisesti. Automaattisesti käynnistyviä palveluita voi muokata muokkaamalla [[ajotaso]]ja: siirtyessään tietylle ajotasolle Linux suorittaa hakemistossa <tt>/etc/rc.AJOTASO.d</tt> olevat skriptit. Näitä skriptejä muokkaamalla/poistamalla voi hallita automaattisesti käynnistyviä palveluita. Lisäksi tähän tarkoitukseen löytyy erillisiä ohjelmia, kuten [[sysv-rc-conf]] ja <tt>bum</tt>.
 
Ole kuitenkin varovainen poistaessasi palveluita: monet automaattisesti käynnistyvät palvelut ovat järjestelmän toiminnan kannalta elintärkeitä. Toisaalta esimerkiksi [[bluetooth]]-palvelun voi huoletta poistaa käytöstä, jos bluetooth-yhteyksille ei ole tarvetta. Katso tarkempi [[init-skriptit]]-listaus tuunausta varten.
 
Nykyaikaisissa Linux-jakeluissa vanha sysvinit on korvattu uudemmilla järjestelmillä (esim. [http://en.wikipedia.org/wiki/Upstart Upstart] tai [http://en.wikipedia.org/wiki/Uystemd Systemd]) joissa käynnistysskriptit ajetaan rinnakkain tai niiden ajoa lykätään niin kauan kunnes niitä oikeasti tarvitaan. Näin ollen uudemmissa Linux-jakeluissa käynnistysskriptien poistaminen ei välttämättä nopeuta mitään.
 
Vanhassakin sysvinit:ssä käynnistysskriptejä voi ajaa moniprosessorikoneella jossain määrin rinnakkain muuttamalla tiedostossa <tt>/etc/init.d/rc</tt> kohdan <tt>CONCURRENCY=none</tt> muotoon <tt>CONCURRENCY=shell</tt>.
 
=== Räätälöi Linux-ydin (kernel) ===
 
Nykyaikaisissa Linuxeissa ainoa asia, mitä käyttäjä voi tehdä koneen käynnistymisen lisäoptimoimiseksi kunnolla, on tehdä itselleen räätälöity Linux-ydin eli kernel, jossa on kaikki juuri kyseisessä tietokoneessa tarvittavat moduulit eikä mitään muuta. Näin käynnistyksessä voidaan ohittaa modprobe-vaihe, joka yleensä kestää pari-kolme sekuntia.
 
Lisätietoja aiheesta ja viiden sekunnin Linux-käynnistyminen on esitelty [http://lwn.net/Articles/299483/ LWN.net:n artikkelissa].


== Kirjautuminen ==
== Kirjautuminen ==
Rivi 18: Rivi 40:
* Käytä joko GNOMEa tai KDE:tä ja niiden ohjelmia (siis [[GTK]]- ja [[Qt]]-ohjelmia) - älä aja molempien ohjelmia rinnakkain, jos se ei ole pakollista. Näin säästytään lataamasta samat asiat toteuttavia kilpailevia kirjastoja kahteen kertaan. Jos muistia ei ole paljoa, ei kannata käyttää kumpaakaan työpöytäympäristöä vaan pitäytyä kevyemmissä vaihtoehdoissa ([[Xfce]], [[fluxbox]], [[fvwm]]).
* Käytä joko GNOMEa tai KDE:tä ja niiden ohjelmia (siis [[GTK]]- ja [[Qt]]-ohjelmia) - älä aja molempien ohjelmia rinnakkain, jos se ei ole pakollista. Näin säästytään lataamasta samat asiat toteuttavia kilpailevia kirjastoja kahteen kertaan. Jos muistia ei ole paljoa, ei kannata käyttää kumpaakaan työpöytäympäristöä vaan pitäytyä kevyemmissä vaihtoehdoissa ([[Xfce]], [[fluxbox]], [[fvwm]]).
* Varaa riittävästi sivutustilaa (''swap'')
* Varaa riittävästi sivutustilaa (''swap'')
=== Swappiness ===
Joskus taas tietokoneessa saattaa olla sellainen tilanne, etä nopeaa RAM-muistia olisi vielä vapaana, mutta kone alkaa käyttämään sivustustilaa, joka on kiintolevyllä ja näin ollen hidasta. Linux-ytimen algoritmiä kannattaa silloin muuttaa siten, että se välttää sivutusmuistin käyttöä.
Avaa tiedosto <tt>/etc/sysctl.conf</tt> ja lisää sen loppuun (tai korvaa luku jos se on jo siellä): <tt>vm.swappiness=10</tt>


== Prosessorikuorma ==
== Prosessorikuorma ==
Rivi 28: Rivi 55:


* Käytä tekstitilaa ([[ssh]]) ellei graafisen etäyhteyden käyttöön ole erillistä syytä
* Käytä tekstitilaa ([[ssh]]) ellei graafisen etäyhteyden käyttöön ole erillistä syytä
* Vertaile vaihtoehtoja ([[X]] vs. [[vnc]] & kumpp.), pakkauksen vaikutusta yms.
* Vertaile vaihtoehtoja ([[X]] vs. [[vnc]] vs. NX), pakkauksen vaikutusta yms.


== Aiheesta muualla ==
== Aiheesta muualla ==

Versio 20. syyskuuta 2011 kello 16.28

Linux-järjestelmää voi yrittää nopeuttaa monilla eri tavoilla. Yksinkertaisimpia vaihtoehtoja ovat esimerkiksi visuaalisten tehosteiden (esim. Compiz Fusion) poistaminen käytöstä ja työpöytäympäristön vaihtaminen KDE:stä tai GNOME:sta kevyempään Xfcehen ja muidenkin ohjelmien vaihtaminen kevyempiin vaihtoehtoihin. Toisaalta konetta voi nopeuttaa myös tinkimättä ohjelmien monipuolisuudesta ja visuaalisista tehosteista.

Käynnistyksen nopeuttaminen

Grub profile

Pysäytä Grub käynnistysvalikkoon ja käy lisäämässä käynnistysparametririville sana profile. Tällöin Grub profiloi käynnistyksen jotta seuraava käynnistys olisi nopeampi.

(s/u)readahead

Nopeamman käynnistymisen saa, kun käynnistysvaiheessa kiintolevyltä luetaan kaikki tarvitavat tiedot yhteen pötköön. Tätä varten esimerkiksi Ubuntussa on vakiona ureadahead. Ureadaheadin profilointi ajetaan automaattisesti järjestelmässä on käynnistykseen vaikuttava muutos, eikä sen toiminta on valmiiksi melko optimoitua.

Analysoi käynnistystä

Käynnistystä voi analysoida mm. bootchart-ohjelmalla. Ubuntussa sen asennus tapahtuu helposti komennolla:

sudo apt-get install bootchart

Jokaisesta käynnistyksestä sen jälkeen tulee loki ja kuvatiedosto kansioon /var/log/bootchart. Kaaviosta voit analysoida mikä käynnistyksessä kestää.

Voit myös seurata käynnistymistä suoraan jos poistat animaatiot käynnistyksessä: GRUBin valikossa paina e-näppäintä, valitse rivi, joka alkaa sanalla kernel ja poista riviltä sanat splash ja quiet. Katso viesteistä, missä kohdassa kone pysähtyy pitkiksi ajoiksi ja mieti, voisiko kyseistä vaihetta jotenkin nopeuttaa.

Monesti käynnistyksen yhteydessä käynnistyy sovelluksia, jotka ovat käyttäjälle tarpeettomia, esimerkiksi ssh-palvelinohjelma saattaa käynnistyä automaattisesti. Automaattisesti käynnistyviä palveluita voi muokata muokkaamalla ajotasoja: siirtyessään tietylle ajotasolle Linux suorittaa hakemistossa /etc/rc.AJOTASO.d olevat skriptit. Näitä skriptejä muokkaamalla/poistamalla voi hallita automaattisesti käynnistyviä palveluita. Lisäksi tähän tarkoitukseen löytyy erillisiä ohjelmia, kuten sysv-rc-conf ja bum.

Ole kuitenkin varovainen poistaessasi palveluita: monet automaattisesti käynnistyvät palvelut ovat järjestelmän toiminnan kannalta elintärkeitä. Toisaalta esimerkiksi bluetooth-palvelun voi huoletta poistaa käytöstä, jos bluetooth-yhteyksille ei ole tarvetta. Katso tarkempi init-skriptit-listaus tuunausta varten.

Nykyaikaisissa Linux-jakeluissa vanha sysvinit on korvattu uudemmilla järjestelmillä (esim. Upstart tai Systemd) joissa käynnistysskriptit ajetaan rinnakkain tai niiden ajoa lykätään niin kauan kunnes niitä oikeasti tarvitaan. Näin ollen uudemmissa Linux-jakeluissa käynnistysskriptien poistaminen ei välttämättä nopeuta mitään.

Vanhassakin sysvinit:ssä käynnistysskriptejä voi ajaa moniprosessorikoneella jossain määrin rinnakkain muuttamalla tiedostossa /etc/init.d/rc kohdan CONCURRENCY=none muotoon CONCURRENCY=shell.

Räätälöi Linux-ydin (kernel)

Nykyaikaisissa Linuxeissa ainoa asia, mitä käyttäjä voi tehdä koneen käynnistymisen lisäoptimoimiseksi kunnolla, on tehdä itselleen räätälöity Linux-ydin eli kernel, jossa on kaikki juuri kyseisessä tietokoneessa tarvittavat moduulit eikä mitään muuta. Näin käynnistyksessä voidaan ohittaa modprobe-vaihe, joka yleensä kestää pari-kolme sekuntia.

Lisätietoja aiheesta ja viiden sekunnin Linux-käynnistyminen on esitelty LWN.net:n artikkelissa.

Kirjautuminen

  • Älä käynnistä raskaita ohjelmia automaattisesti kirjautumisen yhteydessä
  • Käytä prelink-toimintoa, jos käytät isoja C++-ohjelmia (KDE, Qt)
  • GNOME ja KDE käynnistyvät hitaasti, fluxbox ja fvwm salamannopeasti.

Fyysisen muistin säästäminen

  • Käytä joko GNOMEa tai KDE:tä ja niiden ohjelmia (siis GTK- ja Qt-ohjelmia) - älä aja molempien ohjelmia rinnakkain, jos se ei ole pakollista. Näin säästytään lataamasta samat asiat toteuttavia kilpailevia kirjastoja kahteen kertaan. Jos muistia ei ole paljoa, ei kannata käyttää kumpaakaan työpöytäympäristöä vaan pitäytyä kevyemmissä vaihtoehdoissa (Xfce, fluxbox, fvwm).
  • Varaa riittävästi sivutustilaa (swap)

Swappiness

Joskus taas tietokoneessa saattaa olla sellainen tilanne, etä nopeaa RAM-muistia olisi vielä vapaana, mutta kone alkaa käyttämään sivustustilaa, joka on kiintolevyllä ja näin ollen hidasta. Linux-ytimen algoritmiä kannattaa silloin muuttaa siten, että se välttää sivutusmuistin käyttöä.

Avaa tiedosto /etc/sysctl.conf ja lisää sen loppuun (tai korvaa luku jos se on jo siellä): vm.swappiness=10

Prosessorikuorma

  • Poista ylimääräinen silmänkarkki
  • Käytä omalle suorittimellesi optimoitua ydintä ja ohjelmia
  • Tarkkaile, mitkä ohjelmat kuluttavat suoritintehoa

Etäyhteydet

Harvemmin tulee ajateltua, että optimointi voi kohdistua myös etäyhteyksiin. Etäyhteyksissä rajoittavana tekijänä ei yleensä ole koneiden suoritusteho vaan käytettävissä oleva siirtokapasiteetti ja vasteajat.

  • Käytä tekstitilaa (ssh) ellei graafisen etäyhteyden käyttöön ole erillistä syytä
  • Vertaile vaihtoehtoja (X vs. vnc vs. NX), pakkauksen vaikutusta yms.

Aiheesta muualla