profile-sync-daemon

Nagy jóság, ilyesmit már csináltam magamnak, csak bénán, mert ennek systemd-vel kell indulnia, leállnia, én meg nem írtam hozzá unit file-t. Ez a szerkezet viszont megvalósítja ezt. Feltelepítettem, rögtön találtam is benne hibát, kijavítottam, patch-et elküldtem. :)

A hiba az volt, hogy a SELinux context-et nem másolta, így viszont nem fért hozzá a tmpfs-en lévő egyes saját profil file-jaihoz a böngésző. A SELinux context-eket is másolni kell RAM-diskre, így most jó.

Ja, hogy miről is van szó? Induláskor a böngésző profilt tmpfs-re RAM-diskbe rakja, symlink-et csinál rá, leálláskor pedig visszaírja HDD-re. Ha jól tudom, időnként csinál mentést. A lényeg, hogy ezáltal gyorsabb a böngésző, nem kell HDD-re várni, valamint nem nyúzza az SSD-t a gyakori írással.

Hozzászólások

Description :
Symlinks and syncs browser profiles to RAM via tmpfs which will reduce HDD/SDD calls and speed-up browsers.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ezt én is megcsináltam akkor, mikor még nem volt SSD-m, csak egyszeri ember módjára: induláskor a létrehozott ramdisk-be bemásoltam a vinyón levő cache-könyvtárat, majd asszem 5 percenként cron-ból futott egy rsync, ami a ramdisk-et a vinyón lévő cache-könyvtárba szinkronizálta.

Van ennek értelme sebesség szempontjából? SSD kímélést megérteném (bár már ezt se, mert sok éve nyúzom a felsőbb kategóriás SSD-m, és se lassulás, se semmi gond), de HDD szempontjából mindegy szerintem, mert ha van szabad memória, akkor úgyis bekerül a cache-be a böngésző cache és egyéb sql adat. Vagyis úgyis RAM-ból jön az adat. Ugye az írás sem gond, mert a szoftver elküldi a kiírást, az OS meg majd kipötyögteti a lemezre a következő sync-nél. Itt sincs várakozás.

Ha meg csak annyi memória van, hogy folyamatosan lapoz az OS, akkor meg nem lesz hely ramdisk-nek sem.

Reboot után meg ígyis úgyis be kell tölteni a lemezről a cuccot.

Nem látok spórolást a folyamatban. Sőt, inkább pazarlásnak tűnik. Ugyanis fél vagy 1 GB-nyi mappát áttolni a fizikai RAM-ba, mikor az amúgyis bekerül a cache-be mindenképpen rossz megoldásnak tűnik, hiszen így nem tud majd az OS okosan gazdálkodni a szabad RAM-mal, hanem ez fix-en lefoglalja.

Én speciel tapasztaltam némi sebesség-növekedést. A gondolatodban ott van a bukkanó, hogy egyrészt nem mindegy, hogy akkor töltődik be a memóriába a merevlemezről, amikor épp szükség van rá, vagy már eleve ott van (én ezt úgy csináltam, hogy az rc.local-ba egy háttérben másolást elindítottam, az ablakkezelőm indulásához pedig nincs szükség rengeteg lemezműveletre, tehát nemigen volt induláskor lassulás), másrészt tuti nem kerül ki a memóriából, mert másnak kell(het) a hely.

Szerintem az előbbi csak az első indításig lehet kérdés, de én a böngészőt kb. havonta egyszer nyitom meg. Az utóbbi meg folyamatosan probléma. mi van ha kellene az az 1 GB RAM? Soha nem tud felszabadulni. Míg az összes adat egyébként is ott van pluszban még egyszer a RAM-ban cache-ként.

Ha havi egyszer indítasz böngészőt, akkor valóban nem sok jelentősége van :)
Másrészt ezt nyilván akkor érdemes használni, ha elegendő RAM-od van. Nálam speciel 4giga van, amiből kb. 500 mega volt a firefox cache. Nemigen volt az, hogy "kellett volna még az az 500 mega", de ez nyilván felhasználási szokás (nem szoktam pl. videót vágni).

Nem kötekedésnek szánom, de akkor is nagyon számít az a lefoglalt fél giga szerintem, mert ha megnézed egy nap használat után a gépeden a szabad memória mértékét amelyből levonjuk a cache méretét, látni fogod hogy aprócska lesz, mivel folyamatosan minden lemezműveletben résztvevő adat bekerül a cache-be és az OS meg nyilván a saját bonyolult algoritmusai alapján (használat gyakorisága stb) úgy gazdálkodik vele, hogy a lehető "legjobb" legyen. És ez jó, mert ha már betöltötte egyszer a disk-ről a cuccot és van szabad fizikai memória, akkor bent tartja. És itt már számítana az a fél giga szerintem. Legalábbis nálam majdnem mindig teljesen kihasznált.

1 órás boot után (frissítések miatt nyomtam egyet) így néz ki a gépem memóriája ("o" jel a cache):

Memory (MB): [############oooooooooooooooo..........]
Total (3944) Used (1278) Buffers (222) Cached (1370) Free (1074) Swap (4194)

Pár óra után nekem mindig tele van a 4 GB úgy, hogy nem indítottam szinte semmit reggel óta (virtualizáció stb), csupán böngésző és levelező program meg egyetlen terminál. (Ezért is altatom mindig a gépet kikapcs helyett, hogy a cache ne ürüljön ki soha).

Cache: number of clean bytes caching data that are available for immediate reallocation
Buf: number of bytes used for BIO-level disk caching

Hogy pontosan mi mire való, nem tudom. A lényeg, hogy nálam hozzáértőbbek kitalálták és működik.
Viszont azt továbbra is fenntartom, hogy ha ramdisk-re (tmpfs-re) rakjuk a böngésző cache-ét, némileg (nem számottevően, de észrevehetően) gyorsabb, leginkább az oldalak betöltését tekintve - ezt a facebook-on lehetett nagyon észrevenni.

HDD írásnál nem sok értelme van a disk cache miatt, de olvasásnál szerintem igen, hiszen valószínű, hogy fél órás dolgok már rég nem lesznek disk cache-ben.

A tmpfs nem csak RAM, hanem szükség esetén swap is, így attól nem kell tartani, hogy emiatt bajba kerül az oprendszer. Persze, azoknál az okosoknál igen, akik megideologizálják, hogy pl. 4 GB RAM fölött felesleges a swap, de ez már legyen az ő problémájuk.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ha nem lesz benne a disk cache-ben az azért lesz, mert kellett máshoz a RAM. És ha elkezdesz dolgozni egy Gimp-pel, akkor lehet ahhoz kellene fél óráig a nagyobb RAM. De így manuálisan kilövöd ennek lehetőségét. Ha meg azt mondod hogy úgysem fog máshoz kelleni a RAM mert csak böngészőt használsz, akkor meg értelmét veszti megintcsak a tmpfs.

A jó megoldás az, hogy ha kevés a RAM, akkor venni bele. Mert az olcsó ára miatt hosszú távon ez a legjobb megoldás. De ennél még az is jobb, ha nem foglalod le manuálisan a tmpfs-ből egy részét egy adott feladatra szerintem.

Szerintem meg nem. Ha nincs a szükséges adat a disk cache-ben, az jelentheti azt is, hogy azóta volt röpke néhány terabyte-nyi fileművelet. Tehát nem kellett sok RAM, a disk cache mérete nem csökkent, csak már újabb tartalommal aktualizálódott.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Én ennek az általánosabb változatát, az anything sync daemont használom a cuboxi-men, hogy az xbmc cache ne az sd kártyát kínozza.

A patch-em eljutott az upstream-ig, így kijött az 5.51-es verzió, a Fedora build szerveren már megtalálható, úton van az update repók felé. :)

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE