Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2014-02-12 23:01:08

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Łapanie danych z cache przez ZRAM i SWAP

Zrobiłem mały experyment:

Kod:

# free -m
             total       used       free     shared    buffers     cached
Mem:          1001        941         59          0          2        127
-/+ buffers/cache:        811        189
Swap:         2347        693       1654

Mamy obecnie 811MiB+693MiB (RAM+SWAP) +127MiB danych w cache i 60 MiB wolnego miejsca w RAMie. Co się teraz stanie gdy pozamykam żarłoczne aplikacje?

Kod:

root:~# free -m
             total       used       free     shared    buffers     cached
Mem:          1001        531        469          0          4        126
-/+ buffers/cache:        400        600
Swap:         2347        361       1986

Mamy zajętych 400MiB w RAMie +361MiB w SWAP, ilość cache jest mniej wiecej taka sama, a tak wygląda sprawa w swapach:

Kod:

root:~# swapon -s
Filename                                Type            Size    Used    Priority
/dev/mapper/debian_crypt-swap           partition       2097148 99620   10
/dev/zram0                              partition       153596  135072  70
/dev/zram1                              partition       153596  135092  70

Niecałe 100MiB w normalnym swapie i po 130MiB w urządzeniach ZRAM. Policzmy zatem, 400+361 da nam minimum 761MiB, minimum, bo przecie te dane w ZRAM są skompresowane. Wyłączamy SWAPy:

Kod:

root:~# swapoff -a
root:~# free -m
             total       used       free     shared    buffers     cached
Mem:          1001        860        140          0          6        251
-/+ buffers/cache:        602        398
Swap:            0          0          0

Zamiast minimum 760MiB w RAMie, mamy 602MiB. Jak mu wszyło ze 400+361=602? Jeśli się przypatrzeć bliżej, widzimy że wartość cached ostro poszła w górę o 125MiB.

Mieliśmy 2x 130MiB skompresowanych danych, a zrobiło się z tego -161 — Ja za taką kompresję to dziękuję. xD

A jak wygląda sprawa ze SWAP, tym normalnym?

Kod:

root:~# swapon /dev/mapper/debian_crypt-swap
root:~# swapon -s
Filename                                Type            Size    Used    Priority
/dev/mapper/debian_crypt-swap           partition       2097148 0       -1

Wypełnijmy RAM po brzegi i sprawdźmy jak się prezentuje free :

Kod:

# free -m
             total       used       free     shared    buffers     cached
Mem:          1001        926         74          0          1        109
-/+ buffers/cache:        815        185
Swap:         2047        468       1579

815MiB w RAM + 468MiB w SWAP, wyłączamy appsy:

Kod:

# free -m
             total       used       free     shared    buffers     cached
Mem:          1001        516        484          0          6        187
-/+ buffers/cache:        322        679
Swap:         2047        331       1716

Zostało 322 +331 co powinno dać koło 650MiB po wyłączeniu swap, sprawdźmy

Kod:

# free -m
             total       used       free     shared    buffers     cached
Mem:          1001        860        141          0          7        250
-/+ buffers/cache:        601        399
Swap:            0          0          0

No jest 601MiB, czyli wcieło 50MiB.

Na stronie: http://www.linuxatemyram.com/ można wyczytać, że

Do I need more swap?
No, disk caching only borrows the ram that applications don't currently want. It will not use swap. If applications want more memory, they just take it back from the disk cache. They will not start swapping.

Czyli cache nie powinien lądować w swap. Ktoś może się orientuje, czemu jednak on tam włazi? Może trzeba coś włączyć by te cached data nie lądowały w swap? Jeśli się nie da, to ten ZRAM tylko pogarsza sprawę na słabych maszynach, bo jest się w plecy prawie 200MiB...

Ostatnio edytowany przez morfik (2014-02-12 23:04:36)

Offline

 

#2  2014-02-13 21:19:07

  rulezdc - Członek DUG

rulezdc
Członek DUG
Skąd: Tarnowskie Góry
Zarejestrowany: 2007-05-22

Re: Łapanie danych z cache przez ZRAM i SWAP

zobacz ustawienia swappines dla kernela i dirty_pages

Offline

 

#3  2014-02-14 06:34:21

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Łapanie danych z cache przez ZRAM i SWAP

swappiness nie ma tu nic do rzeczy i nie ważne czy jest na 60 czy na 10. Miałem różne ustawienia i to na nic nie pływa, przynajmniej jeśli chodzi o zasysanie cache.

Z tym dirty pages to ja miałem już wcześniej problemy bo był chyba nieograniczony i powodował dziwne zachowanie przy kopiowaniu danych -- dane z RAM mogły uciec do swap przy kopiowaniu plików, by zrobić miejsce w RAM na ten cache, ale po ograniczeniu przy pomocy:

Kod:

vm.dirty_background_bytes = 16777216
vm.dirty_bytes = 50331648

wszystko wróciło do normy.

Nie wiem czy coś się da z tego wyciągnąć. Przecie ten cache nie powinien trafiać do swap.

Offline

 

#4  2014-02-14 07:52:37

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Re: Łapanie danych z cache przez ZRAM i SWAP

Z doświadczenia powiem Wam, że nie ma co być sprytniejszym od systemu w kwestii zarządzania pamięcią. Cache ginie w swapie? Widocznie jest 'brudniejszy' niż to co aktualnie siedzi fizycznie w ramie. Czy to telefon, czy laptop, dużo mniej boli mnie głowa jeśli androidowi oszczędzę 'task killera', windowsowi 'ram optimizera', a linuksowi własnej inwencji twórczej :P

Na stronie: http://www.linuxatemyram.com/ można wyczytać, że

Na stronie faktu można wyczytać że w okolicy grasuje kebabożerca.
Pierwsze skojarzenie po tytule i treści strony z http://przyspieszkomputer.pl/ :P
Albo opieramy się na możliwie rzetelnych źródłach informacji (najlepiej dokumentacja jaja), albo zatrudniamy egzorcystów. Żadne (ubu)fora, tam dowiesz się że po każdym zamknięciu okna przeglądarki najlepiej 'optymalizować' RAM, żeby jak najwięcej zostało 'wolnego' :)

Offline

 

#5  2014-02-14 09:34:28

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Łapanie danych z cache przez ZRAM i SWAP

No tyle, że ten link tutaj już podawało mnustwo osób, więc raczej musi się cieszyć jakąś reputacją.

A co do samego tematu, to bez sensu jest używanie ZRAM, skoro faktyczne dane są zrzucane  na dysk, by zrobić miejsce dla cache... Co jest ważniejsze, cache czy dane? Ja się nie zgadzam gdy system mi mówi, że cache, tu akurat on nie ma racji. xD

Podobnie system uważał, że lepiej jest kopiować cały plik do pamięci RAM (przy operacji kopiuj/wklej), wyrzucając przy tym połowę danych z RAM by zrobić miejsce dla cache, też się z tym nie zgadzałem, i udało się ten problem rozwiązać — http://lwn.net/Articles/572911/ Także czasami system ssie i trzeba go naprostować. Ja nie mam nic do cache póki ten sobie siedzi w RAMie i muszę coś wymyślić by ten cache nie szedł do SWAP i ZRAM, zwłaszcza ZRAM, bo to jest bez sensu, skoro mam 200MiB spakowanego cache, którego nie można w żaden sposób usunąć, tak to przynajmniej mam 200MiB wolnego RAM, który może robić za cache jak faktyczne dane nie używają RAMu.

Nawet na wiki piszą:

All physical memory that is not directly allocated to applications is usually used by the operating system for the page cache. Since the memory would otherwise be idle and is trivially reclaimed when applications request it, there is generally no associated performance penalty and the operating system might even report such memory as "free".

-- http://en.wikipedia.org/wiki/Page_cache

Jak dla mnie to "All physical memory" tyczy się tylko RAM, a nie SWAP, bo:

When the operating system needs to swap pages out of physical memory, it uses the highest-priority device with free space.

Także ja uważam, że coś jest nie tak z tym pakowaniem cache do SWAP.

Offline

 

#6  2014-04-29 08:17:13

  gnejusz pompejusz - Użytkownik

gnejusz pompejusz
Użytkownik
Zarejestrowany: 2005-09-14

Re: Łapanie danych z cache przez ZRAM i SWAP

Jaki jest skutek zmiany sposobu zarządzania dirty pages? Widać jakieś efekty?


A poza tym uważam, że Debian jest najlepszy.
ludolfina.pl

Offline

 

#7  2014-04-29 17:09:06

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Łapanie danych z cache przez ZRAM i SWAP

W sumie nawet nie sprawdzałem ale włączę sobie ZRAM i przetestuje.

Bez naczenia, cache jest łapany tak jak był łapany. Po zapełnieniu całego ZRAM (2x 150M) i wyłączeniu aplikacji, danych w nim zostało 2x 40M, ale po opróżnieniu tego, 65-70M to cache.

Ostatnio edytowany przez morfik (2014-04-29 17:35:24)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)