Linux memoria fogyasztás

Fórumok

Örököltem egy rendszert, és mivel piszok lassú volt, elekezdtem nyomozni, hogy mi eszi meg a vasat.

Minden process -t lelőttem, ennek ellenére a free és a top azt mutatja hogy 850 mega ram foglalt. Van valami mód rá, hogy megnézzem, mi a fene eszi a ramot? Mert az hogy rakattam bele még plussz ramot, az nem segített :)

Hozzászólások

ilyenek vannak:

ps xua
free
cat /proc/meminfo

Igazabol, az hogy 850 mega foglalt nem igazan jelent sokat, azt nezd meg mennyit pagel?
Amennyire tudom a linux akkor szabadit fel memoriat, ha epp kell valami masnak.(javitsatok ki ha tevedek)
Nekem pl 1Gbol most szabad 20mega.

Azért a minden proceszt kilőttem elég nagyvonalú megjegyzés. Azt sem írtad, hogy ez rögötn boot-olás után bvan e. Jó lenne a minden procesz kilövése után egy "sudo ps -ef"-et idemásolni.

Én is úgy tudom, hogy a Linux nagyon sok memóriát előre lefoglal.
Viszont az hogy ilyen sok rammal piszok lassú, az már más. Ugyanis ettől még nem kellene valóban lassúnak lennie.

Nálam:

gyuszk@remote:~$ free
total used free shared buffers cached
Mem: 478576 290104 188472 0 11464 135392
-/+ buffers/cache: 143248 335328
Swap: 1975984 0 1975984
gyuszk@remote:~$

Ha jól gondolom akkor a buffers meg a cached az, amiről beszélünk.
Másvalami miatt nem lehet lassú? DMA be van kapcsolva?


UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Oct04 ?        00:01:05 init
root         2     0  0 Oct04 ?        00:00:00 [migration/0]
root         3     1  0 Oct04 ?        00:00:00 [keventd]
root         4     1  0 Oct04 ?        00:00:00 [ksoftirqd/0]
root         7     1  0 Oct04 ?        00:00:00 [bdflush]
root         5     1  0 Oct04 ?        00:03:07 [kswapd]
root         6     1  0 Oct04 ?        00:03:38 [kscand]
root         8     1  0 Oct04 ?        00:01:47 [kupdated]
root         9     1  0 Oct04 ?        00:00:00 [mdrecoveryd]
root        15     1  0 Oct04 ?        00:00:00 [scsi_eh_0]
root        18     1  0 Oct04 ?        00:17:49 [kjournald]
root       112     1  0 Oct04 ?        00:00:00 [khubd]
root      1058     1  0 Oct04 ?        00:00:00 [kjournald]
root      1337     1  0 Oct04 ?        00:01:51 syslogd -m 0
root      1341     1  0 Oct04 ?        00:00:02 klogd -x
rpc       1367     1  0 Oct04 ?        00:00:00 portmap
root      1408     1  0 Oct04 ?        00:01:28 /usr/sbin/sshd
root      1463     1  0 Oct04 ?        00:00:13 crond
root      1669     1  0 Oct04 tty1     00:00:00 /sbin/mingetty tty1
root      1670     1  0 Oct04 tty2     00:00:00 /sbin/mingetty tty2
root      1671     1  0 Oct04 tty3     00:00:00 /sbin/mingetty tty3
root      1672     1  0 Oct04 tty4     00:00:00 /sbin/mingetty tty4
root      1673     1  0 Oct04 tty5     00:00:00 /sbin/mingetty tty5
root      1674     1  0 Oct04 tty6     00:00:00 /sbin/mingetty tty6
root      1675     1  0 Oct04 ttyS0    00:00:00 /sbin/agetty -L 9600 ttyS0 vt100
root     28417  1408  0 04:05 ?        00:00:00 sshd: tlof [priv]
tlof     28419 28417  0 04:05 ?        00:00:00 sshd: tlof@pts/1
tlof     28420 28419  0 04:05 pts/1    00:00:00 -bash
root     30895 28420  0 04:26 pts/1    00:00:00 su
root     30896 30895  0 04:26 pts/1    00:00:00 bash
root     32573  1408  0 04:38 ?        00:00:00 sshd: tlof [priv]
tlof     32575 32573  0 04:38 ?        00:00:00 sshd: tlof@pts/4
tlof     32576 32575  0 04:38 pts/4    00:00:00 -bash
root       484 32576  0 05:32 pts/4    00:00:00 su
root      1885   484  0 05:32 pts/4    00:00:00 bash
root      5911  1885  0 05:39 pts/4    00:00:00 ps -ef

==================
Free eredmény:


             total       used       free     shared    buffers     cached
Mem:       1025376     925856      99520          0     143680     187684
-/+ buffers/cache:     594492     430884
Swap:      2048276       1280    2046996

A gond az, hogyha inditok egy apache-ot és egy pgSql -t akkor rögtön megnő a swap használata kb 200 megával, és a webszerver sebessége egy csigáéval egyenlő

melyik kernelszéria?
engem is érdekelne a memóriafoglalás mikéntje, mert volt olyan, hogy az összes processz foglalt kb. 30M-et, a free szerint meg (-/+ buffers/cache used) 200M-et. ilyenkor azt a misztikus dolgot csináltam, hogy:
# python
> a=range(10**7)
Ctrl+C (mialatt foglalná a memóriát)
Ctrl+D
ezt esetleg többször, és kb. szinkronba került a ps kimenet a free-vel. mindez 2.4.31-es kernellel.

Én első körben a következőket vizsgálnám:

- Hogy van beállítva a postgres? Mekkora shared memóriat használ?

Postgrest be lehet úgy paraméterezni, hogy x*100MB-ot használjon a memóriából.

- Akkor is lassú, ha csak apache-t indítasz?

vm.swapiness-t is nézd meg, hátha ott van valami lökött érték (default a 60).

- iowait mekkora? Nem lehet, hogy a háttértár a szűk keresztmetszet?

Ellenőrizd hdparm-al, hogy dma be van-e kapcsolva, milyen az átviteli mód, stb. smartctl-el, hogy az eszközök hibamentesen működnek (ha a rendszer támogatja).

Második körben más gépen kernelfordítás modulok nélkül, majd bootolás arról, és saját md5summal ellenőrizném az alap binárisokat, és az md5sums adatbázist is, hátha valamilyen kernelmodul rejti a futo processzeket.

Hirtelen ennyi jut eszembe, ezen adatok alapján.

Ez egy redhat enterprise vas uname kimenet
Linux dev.valami.com 2.4.21-40.ELsmp #1 SMP Thu Feb 2 22:22:39 EST 2006 i686 i686 i386 GNU/Linux

A topon megnéztem amit mondtál. össze adva közel sem jönnek ki az értékek.

Nem törtek meg és futtatnak valami szemetet a gépeden? Egy processt azért el lehet úgy dugni, hogy ne lássa a ps és a top...
Egy chkrootkitet érdemes lenne futtatni minimum, meg ha van valami integritás ellenőrző eszköz telepítve azt megnézni.

Még két bagatell kérdés:
- milyen winyók vannak a gépben? hdparm be van lőve?
- prociról nem írtál semmit