▶ Swapujme do RAM

Založil Roman Horník, 20. 12. 2015, 00:02:43

Předchozí téma - Další téma

Roman Horník

Tady to máš "černý na bílým" - nejmenovaná česká 2D webová hra. Samotná je vcelku primitivní, ale dost zabugovaná. A především nenažraná.
Na to, aby mi paměť nestačila, stačí hrát asi 2 hodiny, furt totiž v paměti bobtná.
Do zaplnění RAM běžela vcelku normálně (přirovnám ke G3 na Sidovi ve virtuálním stroji). Po zaplnění RAM, jak to začalo swapovat do zRAM, byl běh nepatrně míň plynulej (asi jako G3 na "stabilním" vydání), ale ničemu to nevadilo, až teda na 80-100%ní zátěž všech jader CPU a funící větrák. Jenže jak se zaplnila i zRAM a šlo to do swapu na SSD, ač ten je rychlejší jak HDD, už to bylo naprosto nepoužitelný, trhal se obraz i zvuk, hned nato, protože mám swap stejný velikosti jako Ty, 1.9GiB, i ten se zaplnil a zasáhnul OOM.
Asi 2s před OOM jsem stačil udělat screen, kde je vidět v půlce přeplnění zRAM a náběh do swapu na SSD - za snížení zátěže CPU může IOWait:
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

Ota Trkola

Stále nerozumím tomu, proč bych měl mít v RAM vymezený nějaký prostor pro zRAM, když systém může swapovat přímo do RAM...  ::)

Roman Horník

#17
Protože v RAM nejsou data komprimovaný (až na slučování duplicitních stránek, dělá KSM, nikoliv Komunistickej svaz mládeže, ale Kernel Samepage Merging), zRAM je postupně komprimuje. Proto se do ní vejde kolem dvojnásobku informací, než by jinak mohla pobrat ;). Opakuju, až po překročení limitu danýho vm.swappiness.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

Roman Horník

Oprava kódu, na na některých strojích mohl awk vracet velikost RAM v bajtech v nevyhovujícím zápisu.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

Ota Trkola

Na některých strojích to nefunguje vůbec a je potřeba použít zram-tools.

Roman Horník

Že Ti to samo nestartuje (ale ruční spuštění jde) = nefunguje vůbec?! ???
Ani ses nepodíval do logů, proč se to po startu nespouští.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

Ota Trkola

Použil jsem prostě jenom jiný postup.

# apt install zram-tools

# nano /etc/default/zramswap

# Pocet jader procesoru
CORES=4

# Velikost pouzitelne ram pro zram
PERCENTAGE=75

# Priorita zram swap
PRIORITY=100


# nano /etc/sysctl.conf

vm.swappiness = 5

$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sda6                               partition 1951740 0 -2
/dev/zram0                              partition 1469660 0 100
/dev/zram1                              partition 1469660 0 100
/dev/zram2                              partition 1469660 0 100
/dev/zram3                              partition 1469660 0 100


piquick

Dotaz:
po zadání insserv zram mi to napíše:

insserv: FATAL: service mountkernfs has to exist for service udev
insserv: FATAL: service urandom has to exist for service networking
insserv: exiting now!

a po restartu zram nikde...

Roman Horník

Zkus Otův návod, co máš nad sebou, udělali k tomu balík ;)
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz