{"id":4210,"date":"2015-11-29T15:28:06","date_gmt":"2015-11-29T13:28:06","guid":{"rendered":"http:\/\/www.kameli.net\/marq\/?p=4210"},"modified":"2020-11-01T20:29:14","modified_gmt":"2020-11-01T18:29:14","slug":"sekalaisia-linux-juttuja","status":"publish","type":"post","link":"http:\/\/www.kameli.net\/marq\/?p=4210","title":{"rendered":"Sekalaisia Linux-juttuja"},"content":{"rendered":"<p>L\u00e4hinn\u00e4 itselleni muistiin, kun n\u00e4it\u00e4 taas joskus tarvii. Jos on iloa jollekulle muullekin, niin sen parempi.<\/p>\n<h3>ATA Secure Erase<\/h3>\n<p>K\u00e4ytetty SSD on huomattavasti uutta hitaampi, etenkin kirjoituksessa, jos TRIM ei ole ollut k\u00e4yt\u00f6ss\u00e4: levy joutuu lukemaan, muokkaamaan ja kirjoittamaan blokin, vaikka alueella olisi vain poistettuja tiedostoja. Onneksi nopeus on my\u00f6s palautettavissa ennalleen helposti. Jekun nimi on <a href=\"https:\/\/wiki.archlinux.org\/index.php\/SSD_memory_cell_clearing\">ATA Secure Erase<\/a>, joka merkitsee kaikki blokit k\u00e4ytt\u00e4m\u00e4tt\u00f6miksi. Lyhyesti ja ytimekk\u00e4\u00e4sti keskeisin litania:<\/p>\n<pre>hdparm --user-master u --security-set-pass PasSWorD \/dev\/sdX\nhdparm --user-master u --security-erase PasSWorD \/dev\/sdX<\/pre>\n<p>Jossa X:n tilalle vaihdetaan tietysti se haluttu levy (kohtuullista tarkkuutta ja varovaisuutta noudattaen). Tyhjennyksess\u00e4 voi kest\u00e4\u00e4 pieni tovi.<\/p>\n<h3>MacBookin hiirip\u00e4di<\/h3>\n<p>Hiirip\u00e4din asetukset ovat oletuksena aika ep\u00e4mukavat Mint+MacBook-yhdistelm\u00e4ll\u00e4: p\u00e4di\u00e4 pit\u00e4\u00e4 painaa reippaasti ja liike on hyppiv\u00e4\u00e4. Onneksi netist\u00e4 l\u00f6ytyi t\u00e4h\u00e4nkin l\u00e4\u00e4kkeet:<\/p>\n<pre>synclient FingerHigh=10\nsynclient FingerLow=1<\/pre>\n<h3>Luonnoton skrolli<\/h3>\n<p>Jos joku oikeasti haluaa hiirip\u00e4dins\u00e4 skrollaavan kahdella sormella samalla tavoin kuin Applen mielest\u00e4 on &#8220;luonnollinen&#8221; suunta, niin t\u00e4t\u00e4 voi kokeilla:<\/p>\n<pre>synclient VertScrollDelta=-100<\/pre>\n<h3>Levyliikenteen optimointi<\/h3>\n<p>Perinteinen mekaaninen kiintolevy hy\u00f6tyy siit\u00e4, ett\u00e4 levypyynt\u00f6j\u00e4 puskuroidaan ja ryhmitell\u00e4\u00e4n siten, ett\u00e4 lukup\u00e4\u00e4n tarvitsee liikkua mahdollisimman v\u00e4h\u00e4n. SSD:ll\u00e4 hakuajat eiv\u00e4t ole samanlainen ongelma, joten uudelleenj\u00e4rjestelyst\u00e4\u00a0voi olla jopa haittaa latenssin muodossa. Ohjelmien ja levyn v\u00e4liss\u00e4 istuu <em>IO scheduler<\/em> eli <em>elevator<\/em>, jota voi vaihtaa levykohtaisesti:<\/p>\n<pre>echo elevator &gt;\/sys\/block\/sdX\/queue\/scheduler<\/pre>\n<p>Miss\u00e4 X on aseman nimi ja elevator yksi seuraavista (tyypillisimm\u00e4t, muitakin on olemassa):<\/p>\n<ul>\n<li>noop \u2013 pyynn\u00f6t menev\u00e4t saapumisj\u00e4rjestyksess\u00e4 levylle.<\/li>\n<li>deadline \u2013 korostaa levypyynt\u00f6jen ajallaan suorittamista.<\/li>\n<li>cfq \u2013 jakaa io-aikaa prosesseille tasaisesti ja optimoi kiintolevyn hakuaikoja.<\/li>\n<\/ul>\n<p>Paras vaihtoehto l\u00f6ytyy kokeilemalla: netin tiet\u00e4v\u00e4iset suosittavat maksiminopeuden saamiseksi\u00a0<em>noopia<\/em>\u00a0SSD:lle, tosin <em>deadline<\/em>\u00a0ei tukkeudu suurista siirroista. Mit\u00e4\u00e4n konsensusta aiheesta ei tunnu olevan, mutta raskaassa k\u00e4yt\u00f6ss\u00e4 eroja on havaittu ainakin mittaamalla.<\/p>\n<h3>Swapataanko vaiko eik\u00f6?<\/h3>\n<p>Linux on oletuksena melko hanakka swappaamaan, mik\u00e4 ei ole suinkaan huono asia: pitk\u00e4\u00e4n turhan panttina roikkuneet sivut on hyv\u00e4kin siivota levylle, jotta aktiivisille ohjelmille ja levyv\u00e4limuistille on rammia\u00a0tarjolla. Isoilla muistim\u00e4\u00e4rill\u00e4 (esim. t\u00e4ss\u00e4 p\u00f6nt\u00f6ss\u00e4 on 16 gigatavua) moiselle\u00a0ei ole kuitenkaan paljon\u00a0tarvetta, mink\u00e4 lis\u00e4ksi SSD:ll\u00e4 sijaitsevaa swappia ei viitsisi kiusata jatkuvasti. T\u00e4t\u00e4 varten kerneliss\u00e4 on asetus nimelt\u00e4\u00e4n <a href=\"https:\/\/en.wikipedia.org\/wiki\/Swappiness\">swappiness<\/a>. Sit\u00e4 voi s\u00e4\u00e4t\u00e4\u00e4 joko v\u00e4liaikaisesti:<\/p>\n<pre>echo 10 &gt; \/proc\/sys\/vm\/swappiness<\/pre>\n<p>tai pysyv\u00e4mmin lis\u00e4\u00e4m\u00e4ll\u00e4 tiedostoon \/etc\/sysctl.conf rivin:<\/p>\n<pre>vm.swappiness = 10<\/pre>\n<p>Mit\u00e4\u00a0suurempi numero (0..100), sit\u00e4 hanakammin sivuja siivotaan levylle. Jos olen asian oikein ymm\u00e4rt\u00e4nyt, niin lukua voi ajatella prosenttina, jonka \u00e4\u00e4rip\u00e4iss\u00e4 ovat swapin ohittaminen kokonaan ja sivun swappaaminen aina kuin mahdollista. Oletuksena arvo on niinkin korkea kuin 60. Itse olen ollut tyytyv\u00e4inen viitoseen; normitilanteessa swappia ei juuri h\u00e4irit\u00e4 (omassa arkik\u00e4yt\u00f6ss\u00e4ni riitt\u00e4isi oikeastaan yht\u00e4\u00a0hyvin kahdeksan gigaa muistia).<\/p>\n<h3>VLC hiljenee kelaillessa<\/h3>\n<p>Etenkin hitaalla koneella ja\/tai hd-matskulla k\u00e4y VLC:n ja Pulseaudion kanssa toisinaan niin, ett\u00e4 leffassa eteen- tai taaksep\u00e4in hyppiess\u00e4 \u00e4\u00e4ni katoaa hetkellisesti tai pysyv\u00e4sti. Hieman kummallinen, mutta toimiva ratkaisu on asettaa \u00e4\u00e4nirajapinnaksi ALSA ja sen ulostuloksi Pulseaudio.<\/p>\n<h3>Samsung 850 EVO ja TRIM<\/h3>\n<p>TRIM on hyv\u00e4 olla p\u00e4\u00e4ll\u00e4 SSD:n kanssa, jos suinkin mahdollista, sill\u00e4 muuten kirjoitukset hidastuvat pidemm\u00e4n p\u00e4\u00e4lle. Samsungin suositun 850 EVO -sarjan kanssa havaittiin kuitenkin ongelmia TRIM:n toimivuudessa Linuxilla, johtuen k\u00e4skyjen puskuroinnista, jonka levy virheellisesti mainostaa osaavansa. Vastaavaa sekoilua\u00a0ilmeni my\u00f6s vanhempien 840-sarjalaisten uusimmalla firmwarella. Windows ja OS X eiv\u00e4t puskurointia muutenkaan k\u00e4yt\u00e4, joten ne v\u00e4lttyiv\u00e4t ongelmilta.<\/p>\n<p>Viasta seurasi melkoinen\u00a0paniikki, ja EVO:t ehdittiin jo tuomita\u00a0t\u00e4ysin k\u00e4ytt\u00f6kelvottomiksi Linuxissa. Tilanne ei kuitenkaan ole oikeasti\u00a0niin paha, sill\u00e4 vakiona TRIM (discard) ei ole tiedostoj\u00e4rjestelmill\u00e4 edes p\u00e4\u00e4ll\u00e4, ja bugikorjauskin tuli kerneliin nopeasti, kun ongelman syy selvisi. Mit\u00e4\u00e4n h\u00e4mminki\u00e4 ei pit\u00e4isi ilmet\u00e4, kunhan asentaa tuoreehkon kernelin ennen TRIM:n p\u00e4\u00e4lle kytkemist\u00e4. Ja seh\u00e4n tapahtuu lis\u00e4\u00e4m\u00e4ll\u00e4 \/etc\/fstabiin tiedostoj\u00e4rjestelm\u00e4n parametreihin &#8220;discard&#8221;. Itsell\u00e4ni esimerkiksi n\u00e4in:<\/p>\n<pre>UUID=6c34a60f-7464-422b-892f-dd335ba1d90c \/ ext4 errors=remount-ro,discard 0 1<\/pre>\n<p>Olen k\u00e4ytt\u00e4nyt omaa Samsungiani viitisen kuukautta TRIM p\u00e4\u00e4ll\u00e4 ilman sekoilua, joten eik\u00f6h\u00e4n tuo puoli ole kunnossa.<\/p>\n<p><em>edit: Nyky\u00e4\u00e4n trimmaus tehd\u00e4\u00e4n ajoittain automaattisesti, joten yll\u00e4 olevan voi unohtaa.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L\u00e4hinn\u00e4 itselleni muistiin, kun n\u00e4it\u00e4 taas joskus tarvii. Jos on iloa jollekulle muullekin, niin sen parempi. ATA Secure Erase K\u00e4ytetty SSD on huomattavasti uutta hitaampi, etenkin kirjoituksessa, jos TRIM ei ole ollut k\u00e4yt\u00f6ss\u00e4: levy joutuu lukemaan, muokkaamaan ja kirjoittamaan blokin, vaikka alueella olisi vain poistettuja tiedostoja. Onneksi nopeus on my\u00f6s palautettavissa ennalleen helposti. Jekun nimi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-4210","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts\/4210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4210"}],"version-history":[{"count":14,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts\/4210\/revisions"}],"predecessor-version":[{"id":6151,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts\/4210\/revisions\/6151"}],"wp:attachment":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4210"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}