Sziasztok!
Van egy php 5 szerverem ami ajax oldal hívogató technika segítségével léptetést végez, szolgál ki.
Ha az oldalon megy a továbbra és nem fut le a teljes fájl vizsgálat akkor probléma nincs.
Viszont ha értéket is kap amivel dolgoznia kell picit akkor 20 -ból 1szer session permission denied 13 hibával elhal.
Ez a feldolgozó oldal kb 300 soros, ob_start majd session kezdéssel indul és általában 16-20ms alatt felépül a válasz is a kliensen.
Mi miatt csinálhatja ezt?
köszönöm
- 103 megtekintés
Hozzászólások
Talan meg nem engedte el a sessiont ami fajlban van. Lehet nem csak fejlesztes hanem prod kornyezetben is elojohet. Javaslom a session kezelest mysql-lel vagy redis-sel megoldani. Talan meg memcached jatszik. Ezekben a lockolast waittel kezeli.
- A hozzászóláshoz be kell jelentkezni
Miért kellene kapásból egy külön service erre? A fájl alapú tökéletes.
Ha van külön indok, akkor lehet ilyenen gondolkodni szerintem. Millió oldal jól működik session fájlokkal, nem azzal lesz a gond, hanem valszeg a szerver konfiggal.
- A hozzászóláshoz be kell jelentkezni
Igen, en sem allitottam be soha emiatt alternativ tarolot. De ha gyors megoldas kell, ami elfedi a problemat, akkor.
- A hozzászóláshoz be kell jelentkezni
Hova menti a sessionokat a szerver?
- A hozzászóláshoz be kell jelentkezni
os drive/sero/tmp mappa (jogosultságok megvannak)
Azt látom, hogy a session_********** fájl folyamatosan más időponttal van a mappában, gondolom ahogy feszt nyitja zárja. (kőkemény ~250bájtos fájlok)
- A hozzászóláshoz be kell jelentkezni
Az adott szál - fájl szinten - lockolja a session fájlt amíg dolgozik vele, ha eközben egy másik szál akar hozzáférni ehhez a session fájlhoz akkor annak várakozni kell addig, amíg az előző szál elengedi azt. Szvsz valami olyasmi lehet, h hiba miatt ez az elengedés nem történik meg.
"antiegalitarian, antiliberal, antidemocratic, and antipopular"
- A hozzászóláshoz be kell jelentkezni
igen nem engedi el, csak nem tudom miért...????
Már azon gondolkodtam átköltöztetem új helyre, php 8 -al és egyéb újításokkal (mariadb)... (pár teszt oldal 3X gyorsabban lejön pedig van ami 300.000es táblából szemezget)
itt az a bajom, hogy 15 megányi (576 fájl) php kódot kéne átnyálaznom XD (és ezt én írtam, nem a "h**dub" féle önmagam 800 megát XD )
- A hozzászóláshoz be kell jelentkezni
Nem tudom meg mondani h miért nem engedi el. Nyilván ki kellene debugolni! Ha (!) tényleg ez a hiba, akkor session_close() vagy valami ilyesmi hívás elhelyezése a kódban megfelelő helyre esetleg segíthet. Ennek hiányában a script lefutásáig (!= válasz küldése) tartja lockolva a session fájlt, illetve hiba esetén esetleg tovább is.
Nem javasolnám, de pl session kezelés fájl alapúról adatbázisra való cseréje esetleg áthidalhatja a gondot, tipikusan nem szokták megvalósítani az adatbázisos session kezelésben a lockolási mechanizmust, ami általában véve hátrány - de itt most épp az okozza (?) a problémát. De inkább tessék debuggolni és megkeresni a hibát!
"antiegalitarian, antiliberal, antidemocratic, and antipopular"
- A hozzászóláshoz be kell jelentkezni