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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Zrobiłem mały experyment:
# 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?
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:
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:
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?
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 :
# 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:
# 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
# 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
zobacz ustawienia swappines dla kernela i dirty_pages
Offline
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:
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
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
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
Jaki jest skutek zmiany sposobu zarządzania dirty pages? Widać jakieś efekty?
Offline
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
Strony: 1