ugrás a tartalomhoz

Memória kérdés

d_pryke · 2010. Júl. 30. (P), 20.57
Sziasztok!
Egy nagyon gyors segítség kellene, hogy merre induljak:


256 MB PHP memory limit esetén és a lenti adatok alapján miért nem elég a memória?

cat /proc/meminfo
MemTotal: 393360 kB
MemFree: 156644 kB
Buffers: 15196 kB
Cached: 128044 kB
SwapCached: 0 kB
Active: 125212 kB
Inactive: 85864 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 393360 kB
LowFree: 156644 kB
SwapTotal: 524280 kB
SwapFree: 524280 kB
Dirty: 68 kB
Writeback: 0 kB
AnonPages: 67836 kB
Mapped: 13184 kB
Slab: 14152 kB
PageTables: 1656 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 720960 kB
Committed_AS: 297268 kB
VmallocTotal: 462840 kB
VmallocUsed: 1020 kB
VmallocChunk: 461672 kB

free -m
total used free shared buffers cached
Mem: 384 231 152 0 14 125
-/+ buffers/cache: 91 292
Swap: 511 0 511

A honlap az alábbi hibát dobja:
Fatal error: Out of memory (allocated 12058624) (tried to allocate 50 bytes) in ...
Másik szerveren ahol szintén 256 MB php Mem limit van, simán megy ez a php kód.
A swapot már én lőttem be a szerveren. Lehet, hogy az apache/php nem használja a swapot?
Mit lehet tenni?
 
1

12Mb

Poetro · 2010. Júl. 30. (P), 21.17
A hibaüzenetből úgy tűnik, mintha csak 12 Mb memória lenne adva a PHP-nak, vagy legalábbis 12 Mb foglalása után már nem tud plusz 50 bájt memóriát foglalni.
2

Na ez az, én is ezért nem

d_pryke · 2010. Júl. 30. (P), 22.20
Na ez az, én is ezért nem értem :S
Phpinfoban ez van: memory_limit 256M
Hogyan lehet egy ilyet debuggolni?
4

Memory limit vs memória

janoszen · 2010. Júl. 30. (P), 22.23
Namost, a PHP memory limitje egy úgynevezett önkéntes limit. A PHP rakja rá saját magára. Amibe Te belefutsz, az az oprendszer hibaüzenete, ami azt írja ki, hogy elfogyott a memória a virtuális memóriatérben. Ez pl azért lehet, mert ulimittel be lett korlátozva a PHP processzed, de azért is lehet, mert tényleg elfogyott a gépen a memória.
3

Mókas

Poetro · 2010. Júl. 30. (P), 22.22
Mondjuk mókás, hogy a összesen 384 Mb elérhető ebből szabad 150 Mb, nem tudom, hogyan akarsz 256 Mb memóriát kiosztani a PHP-nak :)
5

Köszi az eddigi

d_pryke · 2010. Júl. 30. (P), 23.32
Köszi az eddigi válaszokat!

"ulimittel be lett korlátozva a PHP processzed"
Hogyan tudom kideríteni, hoyg ez a helyzet vagy a fizikai fogyott el?

" összesen 384 Mb elérhető ebből szabad 150 Mb, nem tudom, hogyan akarsz 256 Mb memóriát kiosztani a PHP-nak"
Ha van 512 Swapom, akkor ha elfogya 384 fizikai, akkor nem kezdi el használni a swapot?

Amúgy ugye kb 12 mb-nál akad el, 150 szabad, itt lenne még több mint 100 mb ami rendelkezésére állna.
6

No megtaláltam, hogy tudok

d_pryke · 2010. Júl. 30. (P), 23.48
No megtaláltam, hogy tudok ulimitet nézni:
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 3136
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 3136
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

Ezek közül lehet valamelyik ami bezavar?
7

Nem

janoszen · 2010. Júl. 31. (Szo), 08.39
Nem úgy tűnik, mint ha be lenne korlátozva. Ergó a fizikai memóriád fogyott el. Ez egyébként valami virtuális gép?
8

Igen, ez egy VPS, ez

d_pryke · 2010. Aug. 1. (V), 19.28
Igen, ez egy VPS, ez változtat valamin?
Milyen módon tudnám a futás ideje alatt monitorozni real time a mem használatot?
9

Htop

janoszen · 2010. Aug. 1. (V), 22.57
htop -d 0.1

A mem reszt nezd, a barna fele nem szamit, az file cache.