1
Desktop / Re:Poraďte zajímavé využití RAM disku v Linuxu
« kdy: 29. 01. 2023, 13:08:15 »
Ještě tu nepadla zmínka o overlayfs nad RO-mounted rootem. Počítač pak funguje a OS si myslí, že zapisuje na disk, dokud nedojde RAMka :-) Používám pro "read-only NFS-root" nebo případně nad flashkou.
Jako kompromisní varianta, pokud třeba chcete flashce ulevit od zbytečných zápisů, se nabízí namountovat do tmpfs jenom některé adresáře - už tu někdo zmínil cache browseru, nebo třeba /var/log.
A jak už tu někdo zmínil, Linux by default používá volnu RAMku svobodně pro diskové buffery (cache). Buffery pro čtená data netřeba tunit, stránkovací mechanismus zcela samozřejmě drží v RAMce všechny načtené stránky, dokud nepotřebuje RAMku pro jiné účely (třeba nějaký proces si chce kus alokovat) - v tom případě nastoupí LRU. A pro zápis lze výrazného efektu často dosáhnout úpravou sysctl proměnných /proc/sys/vm/dirty_ratio, /proc/sys/vm/dirty_background_ratio, /proc/sys/vm/dirty_expire_centisecs . Defaulty jsou zbytečně konzervativní: k čemu je mi 8 GB RAM, když pro diskovou WB cache smí kernel využít třeba jenom 5-10%. Pro mě za mě ať si vezme klidně 80-90%. Třeba kompilaci kernelu nebo instalaci většího počtu balíčků na točivém disku to zrychlí dost citelně. Někdy to pošteluju už v instalátoru na jednotlivém stroji, aby instalace běžela rychleji. Pokud zapisující aplikace nedělá příliš často tvrdý blokující "sync", tak běžných frontovatelných bariérových operací zřejmě generuje filesystém relativně málo...
Jako kompromisní varianta, pokud třeba chcete flashce ulevit od zbytečných zápisů, se nabízí namountovat do tmpfs jenom některé adresáře - už tu někdo zmínil cache browseru, nebo třeba /var/log.
A jak už tu někdo zmínil, Linux by default používá volnu RAMku svobodně pro diskové buffery (cache). Buffery pro čtená data netřeba tunit, stránkovací mechanismus zcela samozřejmě drží v RAMce všechny načtené stránky, dokud nepotřebuje RAMku pro jiné účely (třeba nějaký proces si chce kus alokovat) - v tom případě nastoupí LRU. A pro zápis lze výrazného efektu často dosáhnout úpravou sysctl proměnných /proc/sys/vm/dirty_ratio, /proc/sys/vm/dirty_background_ratio, /proc/sys/vm/dirty_expire_centisecs . Defaulty jsou zbytečně konzervativní: k čemu je mi 8 GB RAM, když pro diskovou WB cache smí kernel využít třeba jenom 5-10%. Pro mě za mě ať si vezme klidně 80-90%. Třeba kompilaci kernelu nebo instalaci většího počtu balíčků na točivém disku to zrychlí dost citelně. Někdy to pošteluju už v instalátoru na jednotlivém stroji, aby instalace běžela rychleji. Pokud zapisující aplikace nedělá příliš často tvrdý blokující "sync", tak běžných frontovatelných bariérových operací zřejmě generuje filesystém relativně málo...