Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
wyciek pamieci
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) Polish OTW
View previous topic :: View next topic  
Author Message
Xywa
Veteran
Veteran


Joined: 23 Jul 2005
Posts: 1631
Location: /mnt/Gentoo/Europe

PostPosted: Wed Apr 25, 2012 11:43 am    Post subject: wyciek pamieci Reply with quote

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
View user's profile Send private message
SlashBeast
Retired Dev
Retired Dev


Joined: 23 May 2006
Posts: 2922

PostPosted: Wed Apr 25, 2012 2:31 pm    Post subject: Reply with quote

Odpal ps_mem ktory powie Ci, co je najwiecej tego ramu.

http://www.pixelbeat.org/scripts/ps_mem.py
Back to top
View user's profile Send private message
Xywa
Veteran
Veteran


Joined: 23 Jul 2005
Posts: 1631
Location: /mnt/Gentoo/Europe

PostPosted: Wed Apr 25, 2012 2:51 pm    Post subject: Reply with quote

SlashBeast wrote:
Odpal ps_mem ktory powie Ci, co je najwiecej tego ramu.

http://www.pixelbeat.org/scripts/ps_mem.py


Wielkie THX!

Fajny skrypcik - sam pisałeś?
Back to top
View user's profile Send private message
dylon
Guru
Guru


Joined: 21 Mar 2005
Posts: 331
Location: Gliwice

PostPosted: Wed Apr 25, 2012 8:20 pm    Post subject: Reply with quote

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
View user's profile Send private message
Xywa
Veteran
Veteran


Joined: 23 Jul 2005
Posts: 1631
Location: /mnt/Gentoo/Europe

PostPosted: Thu Apr 26, 2012 3:06 am    Post subject: Reply with quote

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
View user's profile Send private message
SlashBeast
Retired Dev
Retired Dev


Joined: 23 May 2006
Posts: 2922

PostPosted: Thu Apr 26, 2012 8:20 am    Post subject: Reply with quote

@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
View user's profile Send private message
lazy_bum
l33t
l33t


Joined: 16 Feb 2005
Posts: 691

PostPosted: Sat Apr 28, 2012 8:40 pm    Post subject: Reply with quote

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
View user's profile Send private message
Xywa
Veteran
Veteran


Joined: 23 Jul 2005
Posts: 1631
Location: /mnt/Gentoo/Europe

PostPosted: Mon Apr 30, 2012 10:00 am    Post subject: Reply with quote

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
View user's profile Send private message
SlashBeast
Retired Dev
Retired Dev


Joined: 23 May 2006
Posts: 2922

PostPosted: Mon Apr 30, 2012 10:36 pm    Post subject: Reply with quote

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
View user's profile Send private message
Xywa
Veteran
Veteran


Joined: 23 Jul 2005
Posts: 1631
Location: /mnt/Gentoo/Europe

PostPosted: Tue May 01, 2012 8:29 am    Post subject: Reply with quote

SlashBeast wrote:
Yhh, i napisalem Ci o tym, stoi za tym parametr vm.swappiness.


OK - już to widzę :)
Znalazłem trochę na temat vm.swappiness:

Co zrobić aby system wykorzystywał więcej pamięci RAM, a mniej partycji SWAP?
http://newinubuntu.blogspot.co.uk/2012/03/co-zrobic-aby-system-wykorzystywa.html

Swapowanie w linuksie:
http://www.digipedia.pl/article/view/id/11/name/Swapowanie-w-linuksie


Czyli podsumowująć, załóżmy że mam 3GB pamięci. 1GB jest używane na działąjące programy, 1.5GB to stare programy w cache, gotowe do zadziałania od razu gdybym je uruchomił. Jak będzie działał mi system w przypadku zmiany parametru vm.swappiness z 60 (wartośc domyślna) na np. 20?
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) Polish OTW All times are GMT
Page 1 of 1

 
Jump to:  
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