View previous topic :: View next topic |
Author |
Message |
Xywa Veteran
Joined: 23 Jul 2005 Posts: 1631 Location: /mnt/Gentoo/Europe
|
Posted: Wed Apr 25, 2012 11:43 am Post subject: wyciek pamieci |
|
|
Witam,
Mam problem z wyciekiem pamieci. Laptop - 3GB, po uruchomieniu KDE zazwyczaj mam włączone 3 przeglądarki + program pocztowy kmail i od czasu do czasu włączam Gimpa do małego resizeu i LibreOffcie. Od czasu do czasu przełączam też pomiędzy wirtalnymi pulpitami
Po uruchomieniu mam użyte 1G i 2G wolne, ale w miare minut okazuje się że pamięci ubywa. Na tę chwilę, ok. 30 min po włączeniu system zaczyna już uzywać swapa z dysku twardego i system odczuwalnie zwalnia. W tej chwili używam top, który wkazuje to co poniżej. Czy to wina jakiegoś programu, czy po prostu nowe kde ma takie wymagania?
Code: | $ top
top - 12:42:51 up 57 min, 3 users, load average: 0.29, 0.26, 0.23
Tasks: 158 total, 1 running, 156 sleeping, 0 stopped, 1 zombie
Cpu(s): 10.8%us, 13.7%sy, 0.0%ni, 74.8%id, 0.7%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2826332k total, 2684496k used, 141836k free, 59612k buffers
Swap: 3028216k total, 1640k used, 3026576k free, 829440k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2986 r 20 0 808m 321m 31m S 2 11.6 2:55.86 opera
2255 ro 20 0 269m 181m 20m S 35 6.6 6:09.15 X
4006 r 20 0 243m 164m 20m S 0 6.0 0:25.43 operapluginwrap
3116 r 20 0 926m 152m 45m S 0 5.5 1:44.34 kontact
4420 r 20 0 856m 126m 39m S 0 4.6 0:17.09 firefox
3894 r 20 0 195m 116m 19m S 0 4.2 0:15.35 operapluginwrap
4834 r 20 0 1099m 114m 19m S 0 4.2 0:10.17 chrome
4783 r 20 0 835m 96m 49m S 0 3.5 0:07.92 chrome
2434 r 20 0 813m 87m 49m S 6 3.2 1:33.52 kwin
4138 r 20 0 134m 78m 24m S 0 2.9 0:29.00 operapluginwrap
2481 r 20 0 816m 70m 34m S 4 2.6 0:23.45 plasma-desktop
2531 r 20 0 591m 67m 36m S 0 2.4 0:00.86 python2
4444 r 20 0 133m 55m 19m S 0 2.0 0:14.57 operapluginwrap
2653 r 20 0 494m 50m 29m S 0 1.8 0:00.69 python2.7
2528 r 20 0 778m 49m 27m S 0 1.8 0:02.62 krunner
2655 r 20 0 391m 47m 24m S 0 1.7 0:01.26 wicd-client
2366 r 20 0 671m 47m 23m S 0 1.7 0:02.23 kded4
5525 r 20 0 568m 45m 24m S 0 1.6 0:02.32 dolphin
2477 r 20 0 586m 45m 27m S 2 1.6 1:04.20 knotify4
4836 r 20 0 639m 41m 112 S 1 1.5 0:10.02 Chrome_ProcessL
2360 r 20 0 390m 40m 28m S 0 1.5 0:00.66 kdeinit4
2661 r 20 0 543m 36m 18m S 0 1.3 0:00.60 kmix
4789 r 20 0 456m 35m 24m S 0 1.3 0:00.05 chrome
5676 r 20 0 492m 35m 18m S 1 1.3 0:00.84 konsole
3118 r 20 0 470m 32m 16m S 0 1.2 0:00.42 kwalletd
2666 r 20 0 467m 31m 14m S 0 1.1 0:00.44 klipper
2506 r 20 0 466m 30m 13m S 0 1.1 0:00.48 kaccess
2375 r 20 0 459m 29m 13m S 0 1.1 0:00.48 kglobalaccel
2498 r 20 0 285m 29m 5108 S 0 1.1 0:05.79 mysqld
2404 r 20 0 467m 28m 14m S 0 1.0 0:00.40 ksmserver
4792 r 20 0 187m 23m 14m S 0 0.8 0:00.02 nacl_helper_boo
2552 r 20 0 363m 23m 18m S 0 0.8 0:00.29 akonadi_kabc_re
2364 r 20 0 395m 22m 9.8m S 0 0.8 0:00.25 klauncher |
|
|
Back to top |
|
|
SlashBeast Retired Dev
Joined: 23 May 2006 Posts: 2922
|
|
Back to top |
|
|
Xywa Veteran
Joined: 23 Jul 2005 Posts: 1631 Location: /mnt/Gentoo/Europe
|
Posted: Wed Apr 25, 2012 2:51 pm Post subject: |
|
|
Wielkie THX!
Fajny skrypcik - sam pisałeś? |
|
Back to top |
|
|
dylon Guru
Joined: 21 Mar 2005 Posts: 331 Location: Gliwice
|
Posted: Wed Apr 25, 2012 8:20 pm Post subject: |
|
|
Ja obserwuję to samo na oko gdzieś od kde4.4.
Mam 2GB ramu i w zasadzie po chwili od uruchomienia mam zajęte cały ram i ok 500MB swap - włączam zazwyczaj firefoxa (chrome podobnie ramu żre), thunderbirda, pan, tlen a reszta sporadycznie.
(włączone kde z kilkoma programami uruchamianymi przy starcie kde - zajęte jest ok 900MB)
Jednak faktycznie pamięcie zajętej jest ~1GB a reszta to bufory i chyba w zarządzaniu nimi jest problem. _________________ Maciej Dylski |
|
Back to top |
|
|
Xywa Veteran
Joined: 23 Jul 2005 Posts: 1631 Location: /mnt/Gentoo/Europe
|
Posted: Thu Apr 26, 2012 3:06 am Post subject: |
|
|
U mnie wygląda to tak (teraz) - kde + opera + kmail i wg top z 3G mam prawie 2G w uzyciu
Quote: | Mem: 2826332k total, 2140820k used, 685512k free, 78824k buffers |
wg skryptu tylko 1.3G w użyciu - ciekawe skąd takie różniec w porównaniu z top:
Code: | # ./ps_mem
Private + Shared = RAM used Program
104.0 KiB + 13.0 KiB = 117.0 KiB kwrapper4
140.0 KiB + 17.0 KiB = 157.0 KiB init
148.0 KiB + 29.5 KiB = 177.5 KiB ck-launch-session
160.0 KiB + 25.0 KiB = 185.0 KiB operaplugincleaner
192.0 KiB + 19.0 KiB = 211.0 KiB dhcpcd
204.0 KiB + 30.0 KiB = 234.0 KiB cron
212.0 KiB + 28.0 KiB = 240.0 KiB xinit
256.0 KiB + 105.5 KiB = 361.5 KiB libreoffice
328.0 KiB + 34.0 KiB = 362.0 KiB dbus-launch
332.0 KiB + 46.0 KiB = 378.0 KiB gam_server
280.0 KiB + 115.5 KiB = 395.5 KiB startx
288.0 KiB + 121.0 KiB = 409.0 KiB startkde
512.0 KiB + 57.0 KiB = 569.0 KiB top
420.0 KiB + 153.5 KiB = 573.5 KiB su
580.0 KiB + 174.0 KiB = 754.0 KiB oosplash.bin
588.0 KiB + 181.5 KiB = 769.5 KiB login
784.0 KiB + 38.5 KiB = 822.5 KiB wpa_supplicant
776.0 KiB + 172.5 KiB = 948.5 KiB agetty (5)
368.0 KiB + 1.0 MiB = 1.4 MiB udevd (3)
968.0 KiB + 548.0 KiB = 1.5 MiB udisks-daemon (2)
1.3 MiB + 339.0 KiB = 1.6 MiB polkitd
1.3 MiB + 328.0 KiB = 1.6 MiB syslog-ng (2)
1.4 MiB + 344.0 KiB = 1.7 MiB console-kit-daemon
1.5 MiB + 391.0 KiB = 1.9 MiB upowerd
1.8 MiB + 222.5 KiB = 2.0 MiB cupsd
1.9 MiB + 224.5 KiB = 2.1 MiB akonadi_control
2.0 MiB + 727.0 KiB = 2.7 MiB bash (4)
2.1 MiB + 824.0 KiB = 2.9 MiB klauncher
2.3 MiB + 776.0 KiB = 3.0 MiB nepomukserver
2.7 MiB + 355.0 KiB = 3.1 MiB dbus-daemon (2)
3.0 MiB + 718.5 KiB = 3.7 MiB kio_http_cache_
3.6 MiB + 394.5 KiB = 4.0 MiB kuiserver
3.8 MiB + 430.0 KiB = 4.2 MiB nepomukcontroller
3.8 MiB + 496.0 KiB = 4.2 MiB kioexec
4.0 MiB + 599.5 KiB = 4.6 MiB polkit-kde-authentication-agent-1
4.0 MiB + 576.0 KiB = 4.6 MiB akonadi_maildir_resource
4.1 MiB + 593.5 KiB = 4.6 MiB akonadi_nepomuk_contact_feeder
4.1 MiB + 582.0 KiB = 4.6 MiB kwalletmanager
4.2 MiB + 593.5 KiB = 4.8 MiB akonadi_maildispatcher_agent
4.2 MiB + 703.5 KiB = 4.9 MiB akonadi_nepomuk_calendar_feeder
4.7 MiB + 497.5 KiB = 5.2 MiB kactivitymanagerd
5.2 MiB + 348.5 KiB = 5.6 MiB akonadiserver
5.0 MiB + 774.0 KiB = 5.7 MiB akonadi_kabc_resource
4.9 MiB + 880.5 KiB = 5.8 MiB kglobalaccel
4.9 MiB + 940.0 KiB = 5.8 MiB ksmserver
5.0 MiB + 883.0 KiB = 5.8 MiB kaccess
552.0 KiB + 5.4 MiB = 5.9 MiB kdeinit4
5.2 MiB + 964.0 KiB = 6.1 MiB klipper
5.2 MiB + 1.3 MiB = 6.5 MiB kwalletd
6.1 MiB + 958.0 KiB = 7.1 MiB korgac
6.7 MiB + 523.5 KiB = 7.2 MiB wicd-monitor
7.0 MiB + 1.4 MiB = 8.4 MiB konsole
6.9 MiB + 1.6 MiB = 8.6 MiB kmix
8.4 MiB + 257.0 KiB = 8.6 MiB wicd
8.0 MiB + 1.2 MiB = 9.2 MiB akonadi_vcard_resource (2)
12.7 MiB + 3.6 MiB = 16.3 MiB kio_file (5)
14.6 MiB + 2.2 MiB = 16.8 MiB kded4
14.7 MiB + 2.8 MiB = 17.5 MiB krunner
16.6 MiB + 2.8 MiB = 19.4 MiB akonadi_ical_resource (4)
20.9 MiB + 2.6 MiB = 23.5 MiB knotify4
24.8 MiB + 4.4 MiB = 29.2 MiB wicd-client
29.6 MiB + 121.0 KiB = 29.7 MiB mysqld
32.5 MiB + 3.7 MiB = 36.2 MiB plasma-desktop
41.1 MiB + 1.7 MiB = 42.8 MiB Xorg
38.0 MiB + 6.3 MiB = 44.2 MiB kwin
39.8 MiB + 6.9 MiB = 46.7 MiB kio_http (8)
47.9 MiB + 6.8 MiB = 54.8 MiB akonadi_pop3_resource (12)
60.1 MiB + 15.1 MiB = 75.2 MiB python2.7 (4)
96.3 MiB + 2.9 MiB = 99.3 MiB soffice.bin
111.3 MiB + 3.0 MiB = 114.3 MiB kontact
132.8 MiB + 507.0 KiB = 133.2 MiB operapluginwrapper-ia32-linux
303.1 MiB + 1.5 MiB = 304.6 MiB opera
---------------------------------
1.3 GiB
=================================
Private + Shared = RAM used Program |
|
|
Back to top |
|
|
SlashBeast Retired Dev
Joined: 23 May 2006 Posts: 2922
|
Posted: Thu Apr 26, 2012 8:20 am Post subject: |
|
|
@Xywa: nope, nie pisze w pythonie, znalazlem ten skrypt lata temu i do dzisiaj uzywam.
Z tym uzyciem ramu to jest tak, ze pewnie pokazuje uzycie ramu razem z page cache, bufferami dysku. Domyslnie w Linuksie masz vm.swappiness ustawione na 60, jest to argument procentowy. Czyli jezeli aplikacje zajmuja ponad 1229M system stara sie wyswappowac 'nieuzywane' dane na dysk, by zrobic miejsce, te pozostale 819M na buffery dysku, czyli jezeli czytasz jakis plik z dysku, jest on w page cache, jak znowu go czytasz, odczyt jest natychmiastowy bo polecial z ramu. Nie jest to wcale takie zle. Oczywiscie te 60% zalezy od usecase.
Ja przy 6G ramu daje vm.swappiness=34, daje mi to 2G ramu na te page caches z ktorych bardzo korzystam. Moze ustaw sobie vm.swappiness na 25 i sprawdz? System bedzie respowalny napewno bardzoej a jak Twoj usecase to typowy desktop pewnie te 512M da rade.
Code: | sysctl -w vm.swappiness=25
echo 'vm.swappiness=25' >> /etc/sysctl.conf |
Mozesz tez uzyc drivera zram (chyba nadal w staging jest) I zrobic swap, ktory jest tak naprawde skompresowany w ramie.
Jak masz wiele rdzeni, warto zrobic kilka swap'ow na zramie z tym samym prio wtedy po rowno bedzie rozkladany swap.
Skrypt, ktory kiedys napisalem i uzywam do dzisiaj:
Code: | #!/bin/bash
set -e
### Config
# How many zram devices should be created,
# Use more than one if you are on multicore system.
zram_num=4
# Size in megabytes
zram_size=128
###
modprobe zram num_devices="${zram_num}"
attempts=0
while true; do
if [ "${attempts}" -ge '5' ]; then
echo "Something went wrong, no /dev/zram0 device!"
exit 1
fi
if ! [ -b '/dev/zram0' ]; then
attempts="$((attempts+1))"
echo "Waiting for zram devices..."
sleep 1
else
break
fi
done
numdev=0
while [ "${numdev}" -lt "${zram_num}" ]; do
echo "$((${zram_size}*1024*1024))" >> "/sys/block/zram${numdev}/disksize"
mkswap "/dev/zram${numdev}"
swapon -p 10 "/dev/zram${numdev}"
numdev="$((numdev+1))"
done |
zram koniecznie jako modul. Tutaj tworzy 4 urzadzenia po 128M, czyli 512M na lzo-kompressowalny swap. Najczesciej ratio jest 50-60% wiec zjada mi to jakies 256M ramu tak naprawde. Przy 2G i np. dualcore zrobil bym zram_num=2. |
|
Back to top |
|
|
lazy_bum l33t
Joined: 16 Feb 2005 Posts: 691
|
Posted: Sat Apr 28, 2012 8:40 pm Post subject: |
|
|
Najpierw warto dowiedzieć się dlaczego Linux zjadł cały RAM. top można sobie wstawić w ramkę i powiesić na ścianie, a później użyć free.
Code: | maszyn ~ # sysctl -a | grep swap
vm.swappiness = 15
maszyn ~ # uptime
22:41:12 up 10:13, 2 users, load average: 0,06, 0,13, 0,89
maszyn ~ # free -m
total used free shared buffers cached
Mem: 4051 2389 1662 0 77 1573
-/+ buffers/cache: 737 3313
Swap: 4115 0 4115
|
_________________ roslin uberlay | grubelek |
|
Back to top |
|
|
Xywa Veteran
Joined: 23 Jul 2005 Posts: 1631 Location: /mnt/Gentoo/Europe
|
Posted: Mon Apr 30, 2012 10:00 am Post subject: |
|
|
lazy_bum wrote: | Najpierw warto dowiedzieć się dlaczego Linux zjadł cały RAM. top można sobie wstawić w ramkę i powiesić na ścianie, a później użyć free. |
Włączona tylko Opera + Kmail i prawie 2G w plecy wg free -m:
Code: | $ free -m
total used free shared buffers cached
Mem: 2760 1891 868 0 84 656
-/+ buffers/cache: 1150 1609
Swap: 2957 0 2957
|
Czytam tego linka co zamieściłeś, tylko zastanawia mnie skoro pamieć idzie na cache, to dlaczego po jakimś czasie wykorzystywany jest już swap dysku twardego. System mógłby preferować unikanie swapa kosztem np. mniejszego cache'a.
p.s.
Code: | # sysctl -a | grep swap
error: "Invalid argument" reading key "fs.binfmt_misc.register"
vm.swappiness = 60
error: permission denied on key 'net.ipv4.route.flush'
error: permission denied on key 'net.ipv6.route.flush' |
Code: | # uptime
11:07:38 up 1:52, 3 users, load average: 0.30, 0.16, 0.15 |
|
|
Back to top |
|
|
SlashBeast Retired Dev
Joined: 23 May 2006 Posts: 2922
|
Posted: Mon Apr 30, 2012 10:36 pm Post subject: |
|
|
Xywa wrote: | Czytam tego linka co zamieściłeś, tylko zastanawia mnie skoro pamieć idzie na cache, to dlaczego po jakimś czasie wykorzystywany jest już swap dysku twardego. System mógłby preferować unikanie swapa kosztem np. mniejszego cache'a.
|
Yhh, i napisalem Ci o tym, stoi za tym parametr vm.swappiness. |
|
Back to top |
|
|
Xywa Veteran
Joined: 23 Jul 2005 Posts: 1631 Location: /mnt/Gentoo/Europe
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|