Pamięć wirtualna a duże IO dysku

Jeśli już na pewno nie da się umieścić posta wyżej.
Awatar użytkownika
mgrQkiZ
Wytworny Kaczor
Wytworny Kaczor
Posty: 252
Rejestracja: 03 mar 2008, 17:09
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: KDE Plasma
Architektura: x86
Kontakt:

Pamięć wirtualna a duże IO dysku

Post autor: mgrQkiZ »

Mam laptopa z 2 GB pamięci. Swapa ustawiłem sobie 1GB żebym mógł od czasu do czasu korzystać z hibernacji. Od którejś tam wersji Ubuntu zauważyłem irytującą rzecz. Niektóre programy np. serwer dźwięku Jack podczas uruchamiania powoduje spore zajęcie swapa, pomimo że jeszcze jest ponad 1 GB wolnego RAMu. W rzeczywistości ten 1 GB wcale nie jest wolny bo tam jest cache, ale powinien być on zwalniany, jeśli jakiś program chce więcej pamięci. W momencie uruchamiania Jack'a następowało duże zużycie IO dysku do tego stopnia, że nie można było nic zrobić, mysz skakała, a inne programy przestawały odpowiadać. Z czasem to ustawało, ale to nie jest normalne więc mnie to irytuje. Postanowiłem zmniejszyć do zera parametr vm.swappiness w sysctl.conf. Nic to nie dało. Wyłączyłem montowania swapa w fstab całkowicie i zauważyłem, że bez pamięci wirtualnej komputer zachowuje się lepiej. Szybciej się uruchamia (co jest dziwne bo podczas startu i zaraz po uruchomieniu z włączonym swapem wykazywał jego zerowe użycie). Ale zauważyłem również że częściej dioda dysku mryga częściej niż przy włączonym swapie.
Postanowiłem sprawdzić co się stanie gdy się skończy pamięć. Uruchamiam po kolei Operę, Gimpa, Chrome, Firefox itd. W momencie gdy pozostało mi w pamięci mniej niż 500MB komputer zaczął się zachowywać jakby miał pamięć wirtualną, chociaż polecenia takie jak htop, vmstat nie wykazywały istnienie swapa. Za pomocą iotop sprawdzałem jakie programy używają odczyt i zapis dysku. Gdy pozostawało mniej niż 500 MB RAMu wszystkie uruchomione programy po kolei próbowały zapisywać i odczytywać coś na dysku, tak jak w pamięci wirtualnej (choć w tym przypadku jej nie było). Odczyt plasował się na wysokości 4 lub 5 MB/s a zapis ok. 300 kB/s. Największym obciążeniem dla dysku był proces kswapd0 odpowiadający za pamięć wirtualną.
I teraz moje pytanie: co robi kswapd0 i dlaczego miesza na dysku, skoro nie ma pamięci wirtualnej???
Awatar użytkownika
brezniew
Przyjaciel
Przyjaciel
Posty: 2680
Rejestracja: 12 kwie 2011, 16:48
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86_64

Re: Pamięć wirtualna a duże IO dysku

Post autor: brezniew »

Pokaż wynik:

Kod: Zaznacz cały

cat /proc/sys/vm/swappiness
witko
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 112
Rejestracja: 05 lis 2007, 11:28
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Re: Pamięć wirtualna a duże IO dysku

Post autor: witko »

witam,
trochę off-topic
do hibernacji nie trzeba czasem tyle swapa co ramu ?

pozdr, wk
edit:
patrz: tutaj
TragicWarrior (bryan-christ) wrote on 2011-05-11: #21

I just thought I would shed some light on this issue. kswapd0 has nothing to do with swap space or memory. kwapd0 is the kernel process which swaps tasks. A task is any thing that has a PID (which includes threads). When kswapd0 is high, it means the kernel is spending more time context switching tasks than it is actually executing the tasks.

I don't know what's causing the issue but you're chasing a ghost if you're trying to tune your swap/memory environment.
Awatar użytkownika
mgrQkiZ
Wytworny Kaczor
Wytworny Kaczor
Posty: 252
Rejestracja: 03 mar 2008, 17:09
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: KDE Plasma
Architektura: x86
Kontakt:

Re: Pamięć wirtualna a duże IO dysku

Post autor: mgrQkiZ »

Kod: Zaznacz cały

cat /proc/sys/vm/swappiness
0
do hibernacji nie trzeba czasem tyle swapa co ramu ?
Nie trzeba, chodzi o to aby to co jest w pamięci zmieściło się w swapie.
Co do cytatu, którego zamieściłeś nie zgodzę się bo sytuacja pojawia się gdy brakuje ramu. W normalnej pracy kswapd0 nie szaleje, więc to ma jakiś związek z ramem i swapem.
witko
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 112
Rejestracja: 05 lis 2007, 11:28
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Re: Pamięć wirtualna a duże IO dysku

Post autor: witko »

witam,
doczytałeś wątek z linka wyżej ?
próbowałeś na innym jądrze ?
zapodaj jeszcze:

Kod: Zaznacz cały

free
czy po:

Kod: Zaznacz cały

sudo swapoff -a ; free
dzieje się tak samo ?

pozdr, wk
Awatar użytkownika
mgrQkiZ
Wytworny Kaczor
Wytworny Kaczor
Posty: 252
Rejestracja: 03 mar 2008, 17:09
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: KDE Plasma
Architektura: x86
Kontakt:

Re: Pamięć wirtualna a duże IO dysku

Post autor: mgrQkiZ »

Kod: Zaznacz cały

free
             total       used       free     shared    buffers     cached
Mem:       2052032    1955528      96504          0     253572     754568
-/+ buffers/cache:     947388    1104644
Swap:            0          0          0
Po sudo swapoff -a ; free wyświetla się to samo co wyżej. Swapoff nie zadziała, bo swapu nie ma.
witko
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 112
Rejestracja: 05 lis 2007, 11:28
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Re: Pamięć wirtualna a duże IO dysku

Post autor: witko »

Awatar użytkownika
mgrQkiZ
Wytworny Kaczor
Wytworny Kaczor
Posty: 252
Rejestracja: 03 mar 2008, 17:09
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: KDE Plasma
Architektura: x86
Kontakt:

Re: Pamięć wirtualna a duże IO dysku

Post autor: mgrQkiZ »

Mam zwoje oryginalne jądra i innych nie testuje ;) Używam tylko oficjalnych Ubuntu. Przewertuje linki bo wydają się ciekawe, może rozwiąże też kilka innych problemów.
ODPOWIEDZ

Wróć do „Ostatnia deska ratunku”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości