Používám zram na svém počítači jako komprimovaný swap zálohovaný RAM. Když systém potřebuje něco vyměnit, výměna do odkládacího souboru zálohovaného zram je víceméně ekvivalentní komprimaci těchto dat v paměti, aby se uvolnilo místo. Díky tomu je swapování po většinu času velmi rychlé v porovnání s odkládáním zálohovaným na disku. Z tohoto důvodu by mě zajímalo, jestli je možné získat nějaký výkon tím, že povzbudíte systém k agresivnějšímu vyměňování nepoužívaných věcí, protože to může udělat, aniž by skutečně zasáhl disk?
Takže se někdo zabýval například nastavením vm.swappiness
na 100 při používání zram? Bylo by to žádoucí?
sysctl -w vm.swappiness=100
Přijatá odpověď:
Krátká odpověď:vm.swappiness=100
je vhodná hodnota pro zram (alespoň na Debian Stretch s Linuxem 4.9, věřím, že je to nejlepší hodnota)
Již jsem testoval vm.swappiness=100
pro mě.
Myslím, že si můžete udělat nějaký jednoduchý test, abyste se ujistili, která hodnota je pro vás nejlepší.
Také jsem vytvořil další jednoduchý program pro testování této otázky.
x
Na mém počítači je velmi nízká hodnota vm.swappiness
hodnota (například vm.swappiness=1
) způsobí zjevný problém s odezvou.
O SwapCached
v /proc/meminfo
:
Nejprve zkuste vm.page-cluster=0
,To může snížit některé zbytečné SwapCached
ze swap-in.
SwapCached může urychlit zram stejně jako jiné swap zařízení
SwapCached
v případě potřeby jej lze znovu použít (zdarma):
./linux-4.9/mm$ grep -rn delete_from_swap_cache
memory-failure.c:715: delete_from_swap_cache(p);
shmem.c:1115: delete_from_swap_cache(*pagep);
shmem.c:1645: * unaccounting, now delete_from_swap_cache() will do
shmem.c:1652: delete_from_swap_cache(page);
shmem.c:1668: delete_from_swap_cache(page);
vmscan.c:673: __delete_from_swap_cache(page);
swap_state.c:137:void __delete_from_swap_cache(struct page *page)
swap_state.c:218:void delete_from_swap_cache(struct page *page)
swap_state.c:227: __delete_from_swap_cache(page);
swapfile.c:947: delete_from_swap_cache(page);
swapfile.c:987: delete_from_swap_cache(page);
swapfile.c:1023: delete_from_swap_cache(page);
swapfile.c:1571: delete_from_swap_cache(page);
./linux-4.9/mm$