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
Time (s) | Query |
---|---|
0.00007 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00045 | 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='3.147.65.47' WHERE u.id=1 |
0.00116 | UPDATE punbb_online SET logged=1732718449 WHERE ident='3.147.65.47' |
0.00044 | SELECT * FROM punbb_online WHERE logged<1732718149 |
0.00043 | SELECT topic_id FROM punbb_posts WHERE id=237324 |
0.00004 | SELECT id FROM punbb_posts WHERE topic_id=23953 ORDER BY posted |
0.00053 | 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.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00069 | 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.00055 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=23953 |
Total query time: 0.00446 s |