Využití paměti v Linuxu: cache vs. swap

Paja

Využití paměti v Linuxu: cache vs. swap
« kdy: 07. 06. 2017, 12:08:31 »
neni mi jasne vyuziti pameti:

Kód: [Vybrat]
               total        used        free      shared  buff/cache   available
Mem:           3834        2599         319         323         915         640
Swap:          3977        1032        2945

Proc nebyla pamet uvolnena z cache a misto toho se swapuje?
« Poslední změna: 07. 06. 2017, 12:43:58 od Petr Krčmář »


Re:vyuziti pameti
« Odpověď #1 kdy: 07. 06. 2017, 12:13:38 »
neni mi jasne vyuziti pameti:

                    total        used        free      shared  buff/cache   available
Mem:           3834        2599         319         323         915         640
Swap:          3977        1032        2945

Proc nebyla pamet uvolnena z cache a misto toho se swapuje?

A proc ne? Pokud je to odswapovane neco, co se bude pouzivat za delsi dobu nez to nacacheovane...

Tomas2

  • ****
  • 310
    • Zobrazit profil
    • E-mail
Re:vyuziti pameti
« Odpověď #2 kdy: 07. 06. 2017, 12:15:19 »
lidsky řečeno, ve swapu skončí paměť neaktivních procesů. Pokud by se začalo swapovat až v momentě, kdy nějaký proces tu paměť potřebuje, muselo by se čekat na zapsání paměti na disku, což nechceš. Linux se stará na pozadí o to, že procesy, které se moc nepoužívají, odlévá do swapu.

Regulovat tohle chování lze přes nastavení swappiness, které určuje poměr stránek (page), které půjdou do swapu.

File cache je důležitá pro performance a není dobré jí agresivně čistit.

Paja

Re:vyuziti pameti
« Odpověď #3 kdy: 07. 06. 2017, 12:18:52 »
4.4.0-75-generic #96-Ubuntu SMP Thu Apr 20 09:56:33 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Paja

Re:vyuziti pameti
« Odpověď #4 kdy: 07. 06. 2017, 12:19:56 »
lidsky řečeno, ve swapu skončí paměť neaktivních procesů. Pokud by se začalo swapovat až v momentě, kdy nějaký proces tu paměť potřebuje, muselo by se čekat na zapsání paměti na disku, což nechceš. Linux se stará na pozadí o to, že procesy, které se moc nepoužívají, odlévá do swapu.

Regulovat tohle chování lze přes nastavení swappiness, které určuje poměr stránek (page), které půjdou do swapu.

File cache je důležitá pro performance a není dobré jí agresivně čistit.


OK, dekuji


Cronin

Re:Využití paměti v Linuxu: cache vs. swap
« Odpověď #5 kdy: 08. 06. 2017, 07:57:25 »
Mimochodom, nemalo byť od jadra 4.11 možné nastaviť swappiness na hodnotu vyššiu ako 100? Zatiaľ -- 4.11.3 -- to zdá sa nefunguje.

trubicoid2

Re:Využití paměti v Linuxu: cache vs. swap
« Odpověď #6 kdy: 08. 06. 2017, 08:24:45 »
Mimochodom, nemalo byť od jadra 4.11 možné nastaviť swappiness na hodnotu vyššiu ako 100? Zatiaľ -- 4.11.3 -- to zdá sa nefunguje.

to nevim, 100 ti nestaci?  ;D v 4.11 vylepsili akorat swapovani do SSD

paja asi stejne chce mensi swappiness, defaultni je 60, pro desktop se doporucuje 10

Kód: [Vybrat]
echo 10 > /proc/sys/vm/swappiness

trubicoid2

Re:Využití paměti v Linuxu: cache vs. swap
« Odpověď #7 kdy: 08. 06. 2017, 09:00:43 »
jeste doplnim, ze se to doporucuje kvuliva plynulosti - rychlosti reakce rozhrani

jestli to je jedno, nebo jde o server, tak klidne nechat 60 nebo max 90? 100 asi nee

Albert

Re:Využití paměti v Linuxu: cache vs. swap
« Odpověď #8 kdy: 08. 06. 2017, 09:14:09 »
Kdyz mam 16GB RAM na desktopu tak muzu swap vypnout uplne ?

trubicoid2

Re:Využití paměti v Linuxu: cache vs. swap
« Odpověď #9 kdy: 08. 06. 2017, 09:21:04 »
tak muzes, ale se swappiness 10 stejne bude porad prazdnej, jen v neterych pripadech se pouzije

kdyz ho v takovym pripade mit nebudes, tak OOM killer neco zabije

ja bych ho teda nechal, pro jistotu

Tomas2

  • ****
  • 310
    • Zobrazit profil
    • E-mail
Re:Využití paměti v Linuxu: cache vs. swap
« Odpověď #10 kdy: 08. 06. 2017, 11:08:12 »
klidně nastav swappiness na 0 a tím vypneš automatické odlévání na pozadí. Pokud nic napadat nebude, můžeš to nechat, pokud ti začnou padat programy na OOM (out of memory), zase to zapni.

Pavouk106

  • *****
  • 2 395
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Využití paměti v Linuxu: cache vs. swap
« Odpověď #11 kdy: 08. 06. 2017, 12:23:43 »
S 8GB RAM jedu teď desktop bez swapu. Používám LightDM a MATE, což samo o sobě nic nežere. Pak je to o potřebách. Já na tom čumim na net a hraju hry. Ani jedno neni extrémně žravý na paměť.

Pokud na tom chceš dělat něco mnohem náročnějšího, pak bych si o swapu fakt uvažoval.

karlik

Re:Využití paměti v Linuxu: cache vs. swap
« Odpověď #12 kdy: 08. 06. 2017, 17:14:50 »
Stačí kopírovat pár velkých souborů - např. záloha KVM, a je tam.  ;D
Tedy aspoň v mém případě, s 32 GB RAM a nastavením swappiness na 5 to tak je.
Na starém Debianu Sqeeze jsem s tím problémy nikdy neměl, asi je to kernelem.
Vypnout úplně swap nedoporučuji.
Co mi funguje proti swapu:
Kód: [Vybrat]
#!/bin/bash

# Skript spoustet pod uzivatelem root

echo 5 > /proc/sys/vm/dirty_background_ratio
echo 10 > /proc/sys/vm/dirty_ratio
echo 3 > /proc/sys/vm/swappiness
echo 40000 >/proc/sys/vm/vfs_cache_pressure
echo 300 > /proc/sys/vm/dirty_expire_centisecs
echo 100 > /proc/sys/vm/dirty_writeback_centisecs

j

Re:Využití paměti v Linuxu: cache vs. swap
« Odpověď #13 kdy: 08. 06. 2017, 17:24:03 »
...
Vypnout úplně swap nedoporučuji.
Proc? Je uplne jedno jestli dojde RAM nebo jestli dojde RAM + SWAP. To ze widle bez swapu nenastartujou neni duvod mit na tuxovi swap.

trubicoid2

Re:Využití paměti v Linuxu: cache vs. swap
« Odpověď #14 kdy: 08. 06. 2017, 17:30:53 »
a kolik je
Kód: [Vybrat]
/proc/sys/vm/dirty_background_bytes a
Kód: [Vybrat]
/proc/sys/vm/dirty_bytes
spis se ma nastavovat toto nez pres ratio, ja mam 33554432 a 66554432, t.j. 32MB = 3% z 1GB a 64MB = 6% z 1GB

vic nez 100MB a 200MB bych to nedaval, to prave bude delat to co popisujes pri zapisu velkych souboru