Pamięć wirtualna a duże IO dysku
- mgrQkiZ
- 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
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???
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???
- brezniew
- 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
Pokaż wynik:
Kod: Zaznacz cały
cat /proc/sys/vm/swappiness
-
- 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
witam,
trochę off-topic
do hibernacji nie trzeba czasem tyle swapa co ramu ?
pozdr, wk
edit:
patrz: tutaj
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.
- mgrQkiZ
- 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
Kod: Zaznacz cały
cat /proc/sys/vm/swappiness
0
Nie trzeba, chodzi o to aby to co jest w pamięci zmieściło się w swapie.do hibernacji nie trzeba czasem tyle swapa co ramu ?
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.
-
- 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
witam,
doczytałeś wątek z linka wyżej ?
próbowałeś na innym jądrze ?
zapodaj jeszcze:
czy po:
dzieje się tak samo ?
pozdr, wk
doczytałeś wątek z linka wyżej ?
próbowałeś na innym jądrze ?
zapodaj jeszcze:
Kod: Zaznacz cały
free
Kod: Zaznacz cały
sudo swapoff -a ; free
pozdr, wk
- mgrQkiZ
- 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
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
- mgrQkiZ
- 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
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.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość