Hello,
Adott egy server rajta WordPress sok látogatóval. Nos a rendszer meglehetősen undorítómód zabálja a memóriát.
php.ini memory_limit-je 512M-ra van állítva.
wp_memory_limit ugyanennyire.
whm+cpanel van a gépen :O , abban a /var/cpanel/cpanel.config file-ban:
maxmem=512
Mégis:
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 71 bytes) in /wp-includes/wp-db.php on line 1530
Előre is köszönet a tippekért!
- 4673 megtekintés
Hozzászólások
töltsd le a legfrissebb wp-t
mentsd le a régi-t
másold fel az új wp-t, a wp-content kivételével
elvileg működnie kell
- A hozzászóláshoz be kell jelentkezni
? miért is oldaná meg a wp cms frissítése a memória problémámat?
amúgy legfrissebb verzió.
- A hozzászóláshoz be kell jelentkezni
csak próbáld ki
ha nem megy akkor nézd meg hogy van e joga a megfelelő könyvtárba írni...
- A hozzászóláshoz be kell jelentkezni
256MB memót kajált be a kis aranyos. Azért az nem teljesen nyerő.
- A hozzászóláshoz be kell jelentkezni
1. "amúgy legfrissebb verzió."
2. nem tudom mi az elméleted mögötte.. "pár file felülírása varázslatot okoz"?
3. A gond az, hogy bár 512M-ra van beállítva a memória limit 256 után lehal.
Centos 5.6 a rendszer...
..
RAM van 8G a gépben, de sehogy sem tud 1.6-2.4-nél többet "fogyasztani" a rendszer..
- A hozzászóláshoz be kell jelentkezni
Ha apache, akkor a .htaccess-ben is felul lehet definialni a mem limitet.
- A hozzászóláshoz be kell jelentkezni
ha apache _és_ ha modulos a php.
ha (f)cgi akkor a vonatkozó php.ini és a wp-config.php marad, mint lehetőség.
esetleg élesített suhosin-nál még a suhosin.memory_limit-tel lehet játszani.
- A hozzászóláshoz be kell jelentkezni
fcgi-nel is van lehetoseg per directory beallitasokra, nem valoszinu hogy ez a helyzet, de a teljesseg kedveert:
- http://pecl.php.net/package/htscanner
- http://hu.php.net/manual/en/configuration.file.per-user.php
Tyrael
- A hozzászóláshoz be kell jelentkezni
köszönet a plusz infóért, fcgi alatt nem nagyon játszottam még ilyesmivel.
- A hozzászóláshoz be kell jelentkezni
+1 a suhosinra, az szó nélkül letiltja hogy bárhol állíthasd
- A hozzászóláshoz be kell jelentkezni
na mégegyszer
apache-ban beállítás kérdése h felülírható-e...
nálam pld nem
de nem is ez a lényeg.
a kérdés az, hogy miért hal meg a script már 250M után ha egyszer a limit 512M...
- A hozzászóláshoz be kell jelentkezni
a wp-settings-ben is állítsd be a memória mértékét...
- A hozzászóláshoz be kell jelentkezni
wp-config.php nak hívják és ott be van állítva.
- A hozzászóláshoz be kell jelentkezni
up
- A hozzászóláshoz be kell jelentkezni
Emlékeim szerint néhány helyen kézzel volt memory limit beállítva, és a 3.2.1-re kerültek ezek kijavításra.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
tiltsd le az adminon az összes bővítményt, nézd meg akkor, majd egyesével engedélyezd őket...
- A hozzászóláshoz be kell jelentkezni
cuki vagy, hogy a wp-hu fórumát ajánlgatod, ott van pár ezer hsz-em már és elég jól ismerem a szokásos válaszokat. Ezen felül szerintem értelmes embertől elvárható, hogy először keressen majd kérdezzen. releváns találatként pedig már átmásztam volna rajta, ha nem ismerném a fórumot már elég rég óta..
a kérdés itt inkább a whm+cpanel ill. egyéb processek memória használatot limitáló beállításaira vonatkozik.
a WordPress beállítási lehetőségei kimerültek!
Legfrissebb stable verzió és svn-en naponta frissülő is ezt produkálja..
Tehát:
(php.ini-ben,a fent említett cpanel.config-ban,wp-config-ban BE VAN MÁR ÁLLÍTVA!)
Egyéb ötlet valaki?
Azért köszönet a próbálkozásokért..
- A hozzászóláshoz be kell jelentkezni
phpinfo() sztem pontosan megmondja neked, hogy a PHP környezet mit gondol a számára engedélyezett memóriamennyiségről.
Ha ott 256 van, akkor valahol ezek a beállítások amiket említesz valsz felülíródnak.
wp-nél a modulok kikapcsolása mindenképpen jó ötletnek tűnik.
- A hozzászóláshoz be kell jelentkezni
ahogy masok is javasoltak, nezz egy phpinfo()-t:
- mi van a "Loaded Configuration File"
- mi a "Additional .ini files parsed" erteke
az alabbi helyeken lehet beallitva memory limit:
- az beolvasott ini fajlokban.
- az apache configban (mod_php eseteben) php_value segitsegevel
- a kodot tartalmazo konyvtarban(.htaccess fajlokon keresztul, vagy ini_set('memory_limit', '256M') formaban)
ez alapjan keresd meg, hogy honnan jon a 256M es allitsd at tetszes szerint.
Tyrael
- A hozzászóláshoz be kell jelentkezni
na igen.
php_memory limit 512M. Ettől függetlenül vmi levágja 256-nál
php-infót néztem persze még akkor. su-val bejelentkezve cli-ből meg phpinfo()-val is.
Minden esetben 512M.
apache + nginx szolgálja ki az oldalt, hogy statikus tartalmakért ne pörögjön az apache.
suhosin patch nincs és apache httpd.conf rlimit-ek is ki vannak iktatva..
- A hozzászóláshoz be kell jelentkezni
Én annyit csinálnék még, hogy valamelyik WP php fájl végére (ami biztos lefut, vagy amelyik elfekszik - ennek akkor ne a végére, hanem mielőtt meghal) szintén betennék egy phpinfo()-t, amit kiírnék egy fájlba.
Ezzel megállapíthatod talán, hogy a WP esetleg módosít-e valamit ezen a beállításon, ha egyáltalán ez lehetséges PHP scriptből.
- A hozzászóláshoz be kell jelentkezni
hibauzenet abszolut php memory limit tullepesre utal, szoval nem a php-n kivul keresnem a hibat a helyedben.
phpinfo() kimenetebol meg tudnad mutatni azt a ket sort (ini fajlok eleresi utja), illetve a memory_limit erteket ugyaninnen?
Tyrael
- A hozzászóláshoz be kell jelentkezni
Természetesen:
Configuration File (php.ini) Path /usr/lib
Loaded Configuration File /usr/local/lib/php.ini
Scan this dir for additional .ini files (none)
Additional .ini files parsed (none)
/usr/lib/php.ini egy symlink a betöltött /usr/local/lib/php.ini-re.
valamint reseller alól:
php -i | grep memory_limit
memory_limit => 512M => 512M
- A hozzászóláshoz be kell jelentkezni
talátam egy ilyet:
ulimit -a | grep memory
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) 200000
virtual memory (kbytes, -v) 200000
keresgélek-olvasgatok még ez ügyben.. tippek?
Hol lehet ezt átállítani? (u)limits.conf nem játszik..
- A hozzászóláshoz be kell jelentkezni
Tárhely nem telt be?
- A hozzászóláshoz be kell jelentkezni
a-a
160G foglalt a T-ból..
tmpfs is 2G és átlag 1,1 van használatban..
- A hozzászóláshoz be kell jelentkezni
(h)up
- A hozzászóláshoz be kell jelentkezni
Ez wordpress specifikus? más phpapp nem dobja?
Mert ez esetben a wp kezéből folyik ki a memória, ez a 256MB meg 512MB, amin túl akar foglalni, rohadtsok.
- A hozzászóláshoz be kell jelentkezni
mivel más php app nincs ekkora terhelés alatt és nem akarok(user) bele a legsűrűbb időszakban 70e user-t importálni... meg ennek többszörösét exportálgatni..
..
...
:D
A WP amúgy rohadtul memoryleak-es (legalábbis a bővítmények nagyrésze..)
És mivel a gépnek leginkább 2 terebéjes wp install-t kell kiszolgálnia (fő cél) így..
...
512M a php memory limit...
de levágja 256-nál.. más app-al nem próbáltam még ennyi memóriát felzabáltatni :)
De mindjárt foglaltatok egyszeri 300M-et meglássuk engedi-e.
A gépben levő 8G ram-ból amúgy max 2.5 3 fogy el, mert mindig levágja valami...
Így aztán már tudom, hogy ha 4-5G foglalva van akkor pörög az apache és nem úszom meg a webserver újraindítása nélkül..
(nginx van elé rakva statikus tartalmakhoz)
- A hozzászóláshoz be kell jelentkezni
hup
- A hozzászóláshoz be kell jelentkezni
hup
- A hozzászóláshoz be kell jelentkezni
hup
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy én tudom rosszul, de ha a php apache modulként fut, akkor a megadott memória-limit az egyes folyamatokra vonatkozik... vagyis ha megadtál 512Mbyte memória limitet, akkor 4 felhasználó akár 2G-t memóriát is lefoglalhat... igy nem csoda, ha elfogy a mem (egyébként mi a fenének kell ennyi memória egy oldal legenerálásához?)
Megoldás lehet esetleg az apache kapcsolatok számának babrálása is (KeepAlive On/Off, MaxKeepAliveRequests, KeepAliveTimeout) ezek szabják meg, hogy mennyi ideig foglalja egy szál a memóriát
- A hozzászóláshoz be kell jelentkezni
a hibauzenetbol vilagos szerintem hogy nem a memoria fogy el, hanem a memory_limit-et eri el a script futasa.
ha fizikailag nem tudna a zend engine allokalni memoriat, akkor 'Out of Memory' errort kapnal.
http://lxr.php.net/opengrok/xref/PHP_5_2/Zend/zend_alloc.c
innentol kezdve az apache config max annyibol lehet relevans, hogy hatha onnan van a memory_limit atallitva.
Tyrael
- A hozzászóláshoz be kell jelentkezni
igen tudom h nem a memoria fogy el mivel van a gepben 8g es ha 4et eszik akkor mar baj szokott lenni :)
- A hozzászóláshoz be kell jelentkezni
csinalj egy php fájlt,töltsd be a wp-blog-header.php -t, így az egész wordpress betöltődik (minden wp funkció elérhetővé válik, stb.), majd tolj egy phpinfot, így látod, hogy a wordpress milyen beállításokkal dolgozik.
- A hozzászóláshoz be kell jelentkezni
Ezt próbáltam én is fentebb leírni nem ilyen pontosan specifikálva.
Erre jött vagy 6 hup. Remélem neked sikerül elérned, hogy kipróbálja :):)
- A hozzászóláshoz be kell jelentkezni
Rendkívül értékelem a segítő szándékot, ezért csak ennyit idéznék be:
st3v3 | 2011. augusztus 31., szerda - 14:20
[..]
php-infót néztem persze még akkor. su-val bejelentkezve cli-ből meg phpinfo()-val is.
[..]
És igen mivel még ez is felmerült még később be is idéztem, hogy igen nincsenek userek által felülbírált php.ini beállítások:
Configuration File (php.ini) Path /usr/lib
Loaded Configuration File /usr/local/lib/php.ini
Scan this dir for additional .ini files (none)
Additional .ini files parsed (none)
amúgy suexec+suphp van használatban..
összesen volt 5db hup mivel nem írt senki semmit..
@calamari: amint lesz valami értelmes és "pontosan specifikált" ötleted, ígérem visszajelzek róla..
- A hozzászóláshoz be kell jelentkezni
de hiába nézed simán a phpinfo-t, ha a wordpresbe szar, akkor töltsd be a wordpresst és úgy nézz phpinfot. hátha runtime állít valamit.
- A hozzászóláshoz be kell jelentkezni
felfogtam, megértettem, megnéztem, ugyanezt adta. milyen furcsa.. tiltva van minden olyan függvény a serveren -amiről tudomásom van- és ilyen műveletet végezne..
- A hozzászóláshoz be kell jelentkezni
hup
- A hozzászóláshoz be kell jelentkezni
szerintem nem fog tudni senki jobb megoldasi javaslatot adni, mint hogy deritsd ki, hogy miert 256M a memory_limit, ha te 512M-t allitottal.
nagyon meglepodnek, hogy ha az ini/ini_set-en kivul valahogy mashogy tudna valami felulbiralni a php.ini erteket.
Tyrael
- A hozzászóláshoz be kell jelentkezni
Btw egy OS-t és PHP verziót írnál?
- A hozzászóláshoz be kell jelentkezni
Centos 5.6 cpanel gányolással, PHP Version 5.3.6...
visszanéztem és az apache-nak csúfolt valami problémázik a dinamikusan betöltött php modulokkal..
egyre érdekesebb: kikommenteztem őket, erre resellerként ezt dobja vissza:
user@gep: php info.php
Could not startup.
ami röhely mert böngészőben vígan futkorászik minden.. amitől félek, hogy valami beépített erőforrásvédelem lehet ami mindig leb'..-a
- A hozzászóláshoz be kell jelentkezni
Dobd ki a DSO-t, es csinald meg suphp-val, ott tisztabbak az eroviszonyok.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
A konzolos PHP-t ne keverd az apache modulossal.
Minden esetre Ubuntu-n 5.3.2-es verziószámú (de persze backportolnak) ma hasonlóval találkoztam. Ebben az esetben hiába 256MB a memória limit, 128MB-nál beszól a PHP.
- A hozzászóláshoz be kell jelentkezni
értem-értem, de a php.ini mindkettőre vonatkozik nem?!
- A hozzászóláshoz be kell jelentkezni
Ha úgy fordították a php-t akkor igen, de Ubuntun/Debian-on külön-külön php.ini-jük van. Célszerű a külön-külön php.ini, mert a shelles php-ra (amit speciel tökfölöslegesnek tartok szerveren tartani) nem mindíg azok a beállítások lesznek jók, amik a webesre.
- A hozzászóláshoz be kell jelentkezni
Jaja, pl. max_execution_time.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
azért van a gépen shell, mert így távolról console-ban meg tudom nézni h nem ölöm e le valami változtatással a scripteket. (4gépen keresztülsshzva :) )
- A hozzászóláshoz be kell jelentkezni
ezt nem kerdezte senki.
azt irta andrej_, hogy mivel bizonyos disztrokon (debian, ubuntu, etc.) kulonbozo helyrol keresi a php a php.ini-t apache modulkent, illetve cli-bol, ezert nem biztos, hogy elegendo a cli-s php beallitasait leellenorizni.
btw: en itt feladom, mert ez mar olyan, mint kulcslyukon keresztul szulest bonyolitani, az en velemenyem az, hogy vagy apache configbol (vhost, php.ini), vagy fastcgi configbol (sajat php.ini, htscanner, .user.ini), vagy kodbol (set_ini() hivas), at van allitva a memory_limit 256MB-ra.
amit el tudok meg kepzelni, hogy chroot/jail-bol fut az apache/fastcgi, es elfelejted, hogy nem a host os-en kell szerkesztened a php.ini-t, hanem a guest-en.
keresd meg, hogy hol/mi allitja at, es kommentezd ki/emeld meg ott is a szukseges szintre.
Tyrael
- A hozzászóláshoz be kell jelentkezni
vagy a suhosin, vagy a grsec lövi le, vagy valami egyedi patch miatt van limitálva, ezernyi lehetőség van
- A hozzászóláshoz be kell jelentkezni
hibauzenet alapjan nem valoszinu.
http://hup.hu/node/106379#comment-1342356
ha grsec korlatozas lenne, akkor a ZEND_MM_STORAGE_ALLOC/ZEND_MM_STORAGE_REALLOC hivasok tervenek vissza sikertelenul, amire az "Out of memory" hibauzenetet kapna.
a suhosin memory limitje pedig maskepp mukodik, korlatozza hogy a safe mod nelkul futo script az suhosin.memory_limit-ben beallitott ertek fole allitsa a memory_limit-et(memoria limit marad a korabbi erteken, ini_set false-szal ter vissza, es bekerul a logba egy "ALERT - script tried to increase memory_limit to 268435456 bytes which is above the allowed value" kinezetu sor, de a script futasa nem szakad meg).
szoval ez nem lehet oka az itt leirt problemanak.
a hibauzenet alapjan nem hiszem, hogy mashol kellene keresgelni.
Tyrael
- A hozzászóláshoz be kell jelentkezni