Sekalaisia Linux-juttuja

November 29th, 2015

Lähinnä itselleni muistiin, kun näitä taas joskus tarvii. Jos on iloa jollekulle muullekin, niin sen parempi.

ATA Secure Erase

Käytetty SSD on huomattavasti uutta hitaampi, etenkin kirjoituksessa, jos TRIM ei ole ollut käytössä: levy joutuu lukemaan, muokkaamaan ja kirjoittamaan blokin, vaikka alueella olisi vain poistettuja tiedostoja. Onneksi nopeus on myös palautettavissa ennalleen helposti. Jekun nimi on ATA Secure Erase, joka merkitsee kaikki blokit käyttämättömiksi. Lyhyesti ja ytimekkäästi keskeisin litania:

hdparm --user-master u --security-set-pass PasSWorD /dev/sdX
hdparm --user-master u --security-erase PasSWorD /dev/sdX

Jossa X:n tilalle vaihdetaan tietysti se haluttu levy (kohtuullista tarkkuutta ja varovaisuutta noudattaen). Tyhjennyksessä voi kestää pieni tovi.

MacBookin hiiripädi

Hiiripädin asetukset ovat oletuksena aika epämukavat Mint+MacBook-yhdistelmällä: pädiä pitää painaa reippaasti ja liike on hyppivää. Onneksi netistä löytyi tähänkin lääkkeet:

synclient FingerHigh=10
synclient FingerLow=1

Luonnoton skrolli

Jos joku oikeasti haluaa hiiripädinsä skrollaavan kahdella sormella samalla tavoin kuin Applen mielestä on “luonnollinen” suunta, niin tätä voi kokeilla:

synclient VertScrollDelta=-100

Levyliikenteen optimointi

Perinteinen mekaaninen kiintolevy hyötyy siitä, että levypyyntöjä puskuroidaan ja ryhmitellään siten, että lukupään tarvitsee liikkua mahdollisimman vähän. SSD:llä hakuajat eivät ole samanlainen ongelma, joten uudelleenjärjestelystä voi olla jopa haittaa latenssin muodossa. Ohjelmien ja levyn välissä istuu IO scheduler eli elevator, jota voi vaihtaa levykohtaisesti:

echo elevator >/sys/block/sdX/queue/scheduler

Missä X on aseman nimi ja elevator yksi seuraavista (tyypillisimmät, muitakin on olemassa):

  • noop – pyynnöt menevät saapumisjärjestyksessä levylle.
  • deadline – korostaa levypyyntöjen ajallaan suorittamista.
  • cfq – jakaa io-aikaa prosesseille tasaisesti ja optimoi kiintolevyn hakuaikoja.

Paras vaihtoehto löytyy kokeilemalla: netin tietäväiset suosittavat maksiminopeuden saamiseksi noopia SSD:lle, tosin deadline ei tukkeudu suurista siirroista. Mitään konsensusta aiheesta ei tunnu olevan, mutta raskaassa käytössä eroja on havaittu ainakin mittaamalla.

Swapataanko vaiko eikö?

Linux on oletuksena melko hanakka swappaamaan, mikä ei ole suinkaan huono asia: pitkään turhan panttina roikkuneet sivut on hyväkin siivota levylle, jotta aktiivisille ohjelmille ja levyvälimuistille on rammia tarjolla. Isoilla muistimäärillä (esim. tässä pöntössä on 16 gigatavua) moiselle ei ole kuitenkaan paljon tarvetta, minkä lisäksi SSD:llä sijaitsevaa swappia ei viitsisi kiusata jatkuvasti. Tätä varten kernelissä on asetus nimeltään swappiness. Sitä voi säätää joko väliaikaisesti:

echo 10 > /proc/sys/vm/swappiness

tai pysyvämmin lisäämällä tiedostoon /etc/sysctl.conf rivin:

vm.swappiness = 10

Mitä suurempi numero (0..100), sitä hanakammin sivuja siivotaan levylle. Jos olen asian oikein ymmärtänyt, niin lukua voi ajatella prosenttina, jonka ääripäissä ovat swapin ohittaminen kokonaan ja sivun swappaaminen aina kuin mahdollista. Oletuksena arvo on niinkin korkea kuin 60. Itse olen ollut tyytyväinen viitoseen; normitilanteessa swappia ei juuri häiritä (omassa arkikäytössäni riittäisi oikeastaan yhtä hyvin kahdeksan gigaa muistia).

VLC hiljenee kelaillessa

Etenkin hitaalla koneella ja/tai hd-matskulla käy VLC:n ja Pulseaudion kanssa toisinaan niin, että leffassa eteen- tai taaksepäin hyppiessä ääni katoaa hetkellisesti tai pysyvästi. Hieman kummallinen, mutta toimiva ratkaisu on asettaa äänirajapinnaksi ALSA ja sen ulostuloksi Pulseaudio.

Samsung 850 EVO ja TRIM

TRIM on hyvä olla päällä SSD:n kanssa, jos suinkin mahdollista, sillä muuten kirjoitukset hidastuvat pidemmän päälle. Samsungin suositun 850 EVO -sarjan kanssa havaittiin kuitenkin ongelmia TRIM:n toimivuudessa Linuxilla, johtuen käskyjen puskuroinnista, jonka levy virheellisesti mainostaa osaavansa. Vastaavaa sekoilua ilmeni myös vanhempien 840-sarjalaisten uusimmalla firmwarella. Windows ja OS X eivät puskurointia muutenkaan käytä, joten ne välttyivät ongelmilta.

Viasta seurasi melkoinen paniikki, ja EVO:t ehdittiin jo tuomita täysin käyttökelvottomiksi Linuxissa. Tilanne ei kuitenkaan ole oikeasti niin paha, sillä vakiona TRIM (discard) ei ole tiedostojärjestelmillä edes päällä, ja bugikorjauskin tuli kerneliin nopeasti, kun ongelman syy selvisi. Mitään hämminkiä ei pitäisi ilmetä, kunhan asentaa tuoreehkon kernelin ennen TRIM:n päälle kytkemistä. Ja sehän tapahtuu lisäämällä /etc/fstabiin tiedostojärjestelmän parametreihin “discard”. Itselläni esimerkiksi näin:

UUID=6c34a60f-7464-422b-892f-dd335ba1d90c / ext4 errors=remount-ro,discard 0 1

Olen käyttänyt omaa Samsungiani viitisen kuukautta TRIM päällä ilman sekoilua, joten eiköhän tuo puoli ole kunnossa.

edit: Nykyään trimmaus tehdään ajoittain automaattisesti, joten yllä olevan voi unohtaa.

Filed under: linux

Kommentin kirjoitus

You must be logged in to post a comment.

RSS feed for comments on this post.


Kommenttien virta

Aiheet