SSD optimalizáció

 ( gentoojedi | 2018. november 18., vasárnap - 23:26 )

Az SSD-kről köztudott, hogy az írás mennyisége határozza meg az elöregedésük gyorsaságát. Igaz, tele van a net linuxhoz való SSD konfigurálással, optimalizálással, az arch wikije is jó, a gentoo ssd wikijében is vannak okos dolgok, de utóbbit erősen hiányosnak érzem. Pedig gentoonál különösen nagy igénybevételnek van kitéve a sok fordítás miatt. Szeretném az ötleteitek alapján ha tökéletes receptet össze tudnánk állítani, hogy minél kevésbé legyen felesleges írási műveleteknek kitéve a meghajtó.

Ilyenekre gondolok, hogy melyik mappát milyen és mekkora fájlrendszerre érdemes tenni és milyen opciókat célszerű megadni neki. Például csomag forgatáskor felesleges a fájlok hozzáféréseit naplózni. Nem csak gentoosok véleményét várom.

Alapesetben nálam az alábbi mappák vannak külön partición:

/boot
/boot/efi
/
/home
/tmp
/usr/local
/var
swap

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Memória függvénye az egész. Home személy szerint nálam nem ssd-n van. Kellő memória mellett swap teljesen kikapcsolható, illetve a csomagok építése is mehet teljesen memóriában. Innentől kezdve gyakorlatilag csak akkor történik írás ssd-re, ha valamelyik csomag frissül.

https://wiki.gentoo.org/wiki/Portage_TMPDIR_on_tmpfs

Nálam 16GB memória mellett nincs swap, valamint 12GB van tmpfs-ként meghatározva, ott épülnek a csomagok.

Ez nálam is majdnem így van. 16 GB RAM, nuku swap (nem az SSD kímélése miatt, hanem mert nincs rá szükség), tmpfs ramdrive (benne a böngészők cache-e, mert kihasználatlanul állna a memória parlagon).

Nem kell kímélni az SSD-ket. Az íráslimit olyan magas a legócskábbon is (40 TBW), hogy az életbe nem éri el valaki átlag felhasználással. Semmit nem kell áttenni sehova.

Egyedül arra érdemes figyelni, hogy a TRIM menjen, ha nincs feketelistán a kernelben az NCQ TRIM, akkor az SSD-s partíciókat discard paraméterrel kell mountolni, de ehelyett az systemd-s fstrim.service is használható opcionálisan (vagy kézzel futatni néha napjn az fstrim -a -v parancsot). Illetve ha LUKS és/vagy LVM van használva rajta, akkor azon is ki kell engedni a TRIM-et.

Fájlrendszernek jó ízlés szerint bármi. Nekem az ext4 vált be SSD-n a legjobban, az f2fs-nak előbb lassú volt az fstrim-je, majd megszűnt rá az fstrim támogatás, helyette bootkor futtat le néha időszaki TRIM-et.

Már az egy óriási kímélés az SSD-nek, ha linuxot használnak rajta, mert kb. 10-ed annyit ír csak az SSD-re azonos felhasználás mellett, mint a Windows.

Semmilyen más varázslás és optimalizáció nem kell. Se relatime, se semmi.


No keyboard detected... Press F1 to run the SETUP

"Fájlrendszernek jó ízlés szerint bármi"

Mivel engedek a nyomásnak /-en BTRFS-t használok. Most valahogy az rohadt menő. /boot-nak ext2, /home ext4.
Ha van köztünk hithű btrfs fanatikus, ne fékezze magát. Egy rakat új mount opciója van. 4.14-es kernelt használok. Nem tudom eldönteni ha nem adok meg paramétert akkor van autodefrag, vagy akkor nincs, vagy ezt a kernel beállítása tartalmazza.

Btrfs is teljesen jó rá. Bár azt nem azért érdemes használni, mert menő, hanem tud nyújtani egy csomó szolgáltatást, amit sok fájlrendszer nem nagyon, pl. snapshot, röptömörítés. Plusz copy on write, vagy HDD-n fontos lehet, hogy online defragot is támogat (nem kell lecsatolni sem hozzá a fájlrendszert).

Defrag, autodefrag ne legyen SSD-n.


No keyboard detected... Press F1 to run the SETUP

"Bár azt nem azért érdemes használni, mert menő" Tudom, csak a stílusom miatt fogalmazok ennyire lazán.

"snapshot, röptömörítés. Plusz copy on write, vagy HDD-n fontos lehet, hogy online defragot is támogat (nem kell lecsatolni sem hozzá a fájlrendszert)."
Na látod, ezért menő. :D

"Defrag, autodefrag ne legyen SSD-n." Tudom, ezt még Windowson nagyon megtanultam. Ezért kérdeztem, hogy defaultként most van btrfs-en autodefrag és tiltanom kell vagy nincs. De már tudom, hogy ha nem adok meg paramétert fstabban, akkor van kikapcsolva.

+1

Basszus micsoda jó tippet kaptam! Ez meg sem fordult a fejemben. A szerverembe kukázok ramot még, de a latitude E6320-ba szerintem esélytelen a 16 GB.

Nem állítom biztosra, de abban a gépbe szerintem belemegy 16 giga RAM.


No keyboard detected... Press F1 to run the SETUP

Igazad van, utánanéztem valóban. Ja és elírás történt. Nem 6320-am van, hanem 6520.

Beszereztem a ramokat. 2x8GB. Kérdés az, hogy egészen biztosan elegendő lesz-e a tempkönyvtárnak 12 GB? Mi történik, ha fordítás alatt kevésnek bizonyul?
Azt valahogy be lehet állítani, ha elfogy, hogy nyúljon a swaphez?

Nálam a /tmp és a ~/.cache is 1Gb, Nem volt még vele bajom. (Ubuntu)

Ez gentoonál meg a többi forrás alapú disztribúciónál kicsit azért másabb. Ubuntunál feltételezem nem nagyon fordítasz csomagot pláne nem valami nagyobb dögöt pl libreoffice-t. Gentoonál néhány programot kivéve orrba-szájba az megy.

A fordított projektek, kódok méretétől függ, hogy neked mekkora méret lesz elég. De alapesetben nem kéne ezen túl sokat szenvedni, a kernel külön temp nélkül is RAM-ból cache-eli a fordítást, próbál hozzá minél nagyobb RAM cache-t használni, a szabadon lévő memória függvényében.

Alapból úgy kéne lennie beállítva, hogy ha elfogy a memória, akkor swapel, de a swapiness értéke állítgatható.


No keyboard detected... Press F1 to run the SETUP

Na. Akkor mégis csinálok swap particiót. Biztos, ami biztos.

Nem muszáj pont partíciónak lennie. Lehet swap fájlt is csinálni, annak az az előnye, hogy bármikor rugalmasan növelhető, csökkenthető a mérete.


No keyboard detected... Press F1 to run the SETUP

"Nem muszáj pont partíciónak lennie." Tudom, csak az olyan windowsos megoldás. Én meg utálom a Windowst, meg vannak megmagyarázhatatlan régi beidegződéseim, amikhez annak ellenére, hogy mára már nem sok értelme, én mégis úgy csinálom. Ilyen a külön boot partíció az efi-n kívül és a swap partíció. Ismerek olyan öreg rókát, aki ki nem állhatja, ha nem az mnt könyvtárba csatolja fel a kernel a külső eszközöket, és képes visszaállítani.

Egyáltalán nem windowsos megoldás. Jól írod, ez nálad beidegződés, az sose jó a Linux világában. A szálból úgy veszem ki, hogy magad sem tudod, hogy mennyi swap vagy RAM cache kell neked, így a rugalmasabb megoldást javallott választani: a swapfájlt. Bár azóta olvasom, hogy vettél elég RAM-ot, így swap lehet nem is kell.

Ez a swappartíció a HDD-k korában volt hasznos, mert
1) de döntöttél hol legyen a lemezen, tudtad a HDD külső szélére tenni
2) nem töredezett

De ez az SSD-k korában nem probléma, egyik sem, másrészt ha HDD-re is kerülne még (ami nem javasolt, mikor pendrive árában is lehet SSD-t kapni), akkor is lehet defragolni a swapfájlt és akkor ebben sem különbözik a partíciótól.

Ha mégse lenne elég a RAM: a swapigényt két tényező mentén lehet belőni: ha hibernálni szoktál, akkor a fizikai RAM mennyiségét el kell érnie. Ha nem szoktál, akkor csak folyamatosan nézni kell a free-ben a swap használatát, nézni kell mennyi szokott lenni rendszeresen, amit tényleg a swapbe tesz, és annak a 1,5-2×-ét kell swapként alkalmazni, vagyis legalább valamivel többet, mint az.

De nagyon változékony, hogy kinek mennyi RAM elég, erősen felhasználásfüggő. Nekem 16 giga van, és Archot elég sokat fordítok forráskódot is, AUR-ból, gitből, igaz nem óriási kódokat, de egyszerűen ez is rengeteg RAM, nem tudom kihasználni. Anno 8 gigánál sem nagyon nyúlt már a swaphoz, alig tett bele valamit a rendszer, igaz az én felhasználásom nagyon átlagos. Másnak meg a 32 GB RAM sem elég.


No keyboard detected... Press F1 to run the SETUP

Ha a csomag jól van megcsinálva, akkor előtte ellenörzi, hogy van-e annyi hely ami neki a fordításhoz kell. Pl chromium még mielőtt bármit csinálna megnézi van-e 5G szabad hely és ha nincs akkor leáll. Tehát elviekben gond nem lesz, mert tudni fogsz róla, hogy növelned kell a "helyet". Swap is jó lehet erre, vagy mint lentebb írták swap file.

Beszereztem a ramokat. 2x8GB. Kérdés az, hogy egészen biztosan elegendő lesz-e a tempkönyvtárnak 12 GB?

Bőven sok. Nálam a fordítást végző x64-es gépnek /tmp -t tmpfs -o size=1024000k, /var/tmp -t tmpfs -o size=6144000k (az x86-osnak 4GB is elég volt). Ha van 10-12GB fizikai memória a gépben, akkor még swap sem kell a fordításhoz, de ha van pár GB swap is, akkor már biztosan nem lehet gond.

Azt valahogy be lehet állítani, ha elfogy, hogy nyúljon a swaphez?

Alap, más opció nincs is.

Ott van a /dev/shm is. :)

Ha csak nem valami nagyon regi SSD-t hasznalsz, akkor kulonosebben nem kell mar az SSD-ket ovni.
Desktop hasznalat (meg ha sokat is forditasz) mellett boven birniuk kell sok-sok evig...

Ilyeneket használok desktopon és szerveren is:
https://www.pcx.hu/kingston-240gb-sa400s37-240g-ssd-meghajto-864826

Erre a modellra 80TB irasig van garancia.
SMARTbol ki tudod olvasni, hogy mennyinel jarsz. Egy honap elteltevel azt is meg tudod nezni, hogy mennyivel nott.
A novekmenybol ki lehet extrapolalni, hogy mennyi ido mulva ered el a 80TB-ot.
A tippem az, hogy olyan sok evet fogsz kapni, amennyi ido alatt ugyis lecsereled.

+1

Ne foglalkozz ezzel, gyakorlatban a vezérlő hamarabb hal el, mint otthoni átlag felhasználás mellett a cellák elfáradnának. Használd, ahogy jólesik.

Így van. Lényegében lehet ugyanúgy használni, mintha HDD lenne, csak a TRIM-et kell biztosítani.

A partícióeltolás Linuxon nem probléma, az összes linuxos tool 1024K-s határon particionál alapból, ami megfelel a 4K-s, 16K-s partícióeltolást igénylő SSD-knek is. Így ezzel nem kell foglalkozni.

Illetve defrag nem kell, de az Linuxon meg amúgy sem szokott automatikusan lefutni, így általában emiatt sem kell aggódni.


No keyboard detected... Press F1 to run the SETUP

Ez a partició eltolás érdekes. Meg egy kicsit magas nekem. Belefutottam gentoo wikiben, de nem tulajdonítottam neki különösebb jelentőséget. Vajon mit kell csinálni abban az esetben, ha windows 7 mellé telepítek gentoot. Még olyat nem csináltam, de a dell gépemre ez vár. Az eredeti win 7 mellé kerül gentoo.

Ma már szerintem a legtöbb particionáló tool alapból rendesen kezeli, nem kell semmi mágia hozzá.

--
robyboy

Akkor sem kell vele foglalkozni. A Windows 7 is 1024K-n particionál, meg a Gentoo is. Ez az eltolás csak régi, legacy OS-eknél érdekes, amelyek még a CHS HDD séma szerint particionáltak, a partíciókat 63 szektorral osztható határon elkezdve. Esetleg néhány ember HDD-ről SSD-re klónozáskor szokta elrontani az eltolást.

Az SSD-n a cellák lapokba vannak rendeződve, ez a klasszik SSD-knél 4K-os, a modern 3D NAND SSD-knél 16K általában. A partícióknak ezen a határon kell kezdődni, mert ha átnyúlnak rajta, akkor a partíción egy csomó szektor át fog nyúlni ezeken laphatárokon, de ezt észrevenni akkor az SSD teljesítményén is, mert 10-edére csökken a sebessége.


No keyboard detected... Press F1 to run the SETUP

Nem akarok új szálat nyitni, de mi van abban az esetben, ha Win7-et kell klónozni HDD-ről SSD-re? Most pont egy ilyen feladat vár rám. A klónozó szoftverek friss verziói fel vannak erre készítve? Esetleg van-e olyan híres klónozó szoftver, amit nagy ívben érdemes kerülni? Három vagy négy éve kellett klónoznom ssd-re, sikerült ugyan, de helyreállítást kellett eszközölni a win 7 telepítőlemezével klónozás után. MBR particiós tábláról van szó. Gondolom azzal könnyebb az élet.

Simán megoldható. Csak arra figyelj, ha a HDD még nem 1024K-s eltolású a patícióit tekintve, akkor a klónozóprogikban szokott lenni olyan opció, hogy 1024K-val eltolja a partíciókat. Amúgy ugyanúgy klónozható, mint HDD-ről HDD-ra. A futó Windows meg fel fogja ismerni, hogy már nem HDD-ről, hanem SSD-ről fut, így pl. nem fog defragolni.

Sokan elfelejtik, hogy már a modern HDD-k is 4K-sak, és kell nekik a spéci eltolás, nem az SSD-k specifikuma.


No keyboard detected... Press F1 to run the SETUP

"Sokan elfelejtik, hogy már a modern HDD-k is 4K-sak"
Nyolc éves gépről van szó nyolc éves winyóval. (Első generációs i3-mal)

Ezt csak általánosságban jegyeztem meg. Meg azért is írtam a „modern” jelzőt. Nyilván 8 éves cuccra még nem vonatkozik.


No keyboard detected... Press F1 to run the SETUP

https://www.reneelab.com/4k-alignment-introduction.html

Egyébként a 8 éves pont határeset:
Around 2010, hard drive companies began migrating away from the legacy sector size of 512 bytes to a larger, more efficient sector size of 4,096 bytes, generally referred to as 4K sectors and now referred to as the Advanced Format by IDEMA (The International Disk Drive Equipment and Materials Association).
https://www.seagate.com/gb/en/tech-insights/advanced-format-4k-sector-hard-drives-master-ti/

Hoho, megint eszembe jutott, hogy itt egy gépben Samsung 470-es 64GB-os megy, amióta megvan. "Justworks" jellegű, nincs igazán semmi hekkelve, bár talán a swap ki van lőve.

Már nem is tudom, hány éves a 120 GB-os Samsung TLC-s SSD-m, jelenleg kb. 15 TB írásnál tartok vele, s.m.a.r.t.ban minden okés.

--
robyboy

Szarni rá. Tényleg. Normál használattal manapság a wear leveling miatt nem tudod kinyírni az SSD-t, előbb kerül vissza a gyárba elektronikai hulladékként, minthogy elérd a határait... ha megdöglik, akkor valami mástól fog megdögleni és az előrejelzés nélküli azonnali halál lesz.

--
https://iotguru.live

sub