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  2013-07-17 13:41:20

  morfik - Cenzor wirtualnego świata

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

Przerzucanie danych ze swap do ramu przy zamykaniu appsa

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:

Kod:

#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

 

#2  2013-07-19 01:23:10

  rychu - elektryk dyżurny

rychu
elektryk dyżurny
Skąd: gdańsk
Zarejestrowany: 2004-12-28

Re: Przerzucanie danych ze swap do ramu przy zamykaniu appsa

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).


linux regd. user #248790

Offline

 

#3  2013-07-19 09:50:24

  morfik - Cenzor wirtualnego świata

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

Re: Przerzucanie danych ze swap do ramu przy zamykaniu appsa

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

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.010 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00013 SET CHARSET latin2
0.00007 SET NAMES latin2
0.00088 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.116.49.243' WHERE u.id=1
0.00178 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.116.49.243', 1732717614)
0.00036 SELECT * FROM punbb_online WHERE logged<1732717314
0.00065 SELECT topic_id FROM punbb_posts WHERE id=237226
0.00106 SELECT id FROM punbb_posts WHERE topic_id=23953 ORDER BY posted
0.00041 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=23953 AND t.moved_to IS NULL
0.00036 SELECT search_for, replace_with FROM punbb_censoring
0.00109 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=23953 ORDER BY p.id LIMIT 0,25
0.00148 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=23953
Total query time: 0.00827 s