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
Nie wiem czy to jest standardowe zachowanie bo nigdy nie zwracałem na to uwagi ale ostatnio ten ficzer mnie trochę zaczął irytować. Chodzi o to, że mając niewiele ramu (1GiB), podczas biegania po necie swap zaczyna się strasznie rozrastać i po 1-2h pracy, opera w ramie zajmuje 600MiB i w swapie drugie tyle i zamyka się parę minut bo z tego co zauważyłem, to najpierw przerzuca dane ze swap do ramu, a że ramu jest zajęte już 90% to transfer spada do paru mb/s albo i jeszcze niżej i w efekcie przeniesienie 600 MiB danych trwa tyle ile trwa.
Np. ciekawe doświadczenie można zrobić -- wyłączyć swap mając dane w ram + swap > niż pamięci ram. Czyli u mnie to by było (dla uproszczenia) 600 MiB ram + 600 MiB swap = 1,2 GiB przy dostępnym 1 GiB ramu. I system zacznie przenosić dane z swap do ram i przy 900 MiB w ramie zacznie zrzucać dane w ram do swap i się to zapętli. xD i mam wrażenie, ze takie coś występuje właśnie w przypadku opery, z tą różnicą, że w czasie przenoszenia danych ze swap do ramu, część z nich (parę MiB/s) zostaje wyrzucona z ramu, robiąc tym przestrzeń na dodatkowe KiB, które mozna przenieść ze swap . Czyli opera przez cały ten proces zamykania się zajmuje mniej więcej tyle samo pamięci w ramie i tylko dorzuca trochę MiB ze swap, które są natychmiast usuwane z ramu. Dopiero jak dane zostaną usunięte ze swap (nie wiem czy wszystkie, czy tylko jakaś część, np. < niż wolne miejsce w ram, czyli jakieś 100 MiB), opera się zamyka.
Na obecną chwilę mam wyłączone cgroup, bo myślałem, że to jego wina. To było bardzo dobrze widoczne gdy ograniczyłem zasoby operze dość znacznie i w ramie miałem jeszcze sporo przestrzeni. I gdy w czasie zamykania opery wyłączyłem cgroup, ram zaczął się zapełniać i w efekcie opera zamknęła się sporo szybciej.
Czy powinno być tak, że pierw dane ze swap są przerzucane do ramu przy zamykaniu appsa? I czy jest jakiś sposób by system tego nie robił -- inny niż killall -9 . xD
Próbowałem operować na /etc/sysctl.conf dopisując tam różne wartości dla:
#vm.swappiness=10 #vm.vfs_cache_pressure=50
ale to za bardzo nic nie dało albo dało ale ja nie wiem co. xD W każdym razie na razie zakomentowałem oba parametry.
Offline
tego nie obejdziesz. system musi wyswapować te dane do ramu i kropka, bo programu nie obchodzi, czy dane są na swapie czy nie.
mam nadzieje, że nie swapujesz do pliku? może spróbuj zwiększyć partycję swapową (np. o 100%) i przesuń ją jak najbliżej początku dysku (podobno najszybszy dostęp).
Offline
Ale jeśli by nie obchodziło, to po zamknięciu by przecie czyścił dane od razu (tak jak killall -9), no może trochę wolniej, np by zapisać sesje, której komponenty mogą być w swap i dostęp do nich będzie wolniejszy ale przy takim założeniu nie powinien przerzucać
Mam partycje swap. W przypadku opróżniania swap gdy mam miejsce w ram, cały proces przebiega dość szybko. Tutaj problem zaczyna się gdy system uznaje, że w ramie jest za dużo danych i trzeba zrzucić do swap, a te z kolei trzeba znów przerzucić do ram i tak se przerzuca. xD
Co ciekawe, próbowałem doprowadzić do takiej sytuacji z ff ale on nawet przy otworzeniu 50 kart zjada sporo mniej ramu niż opera przy 20. I co ciekawe co chwila jakieś dane z ram wywala, pewnie te nieaktywne karty. Da się tak zrobić z operą?
Offline
Strony: 1