PHP Képgaléria teljesítmény gondok és ötletek

PHP Képgaléria teljesítmény gondok és ötletek
2005-11-22T20:57:42+01:00
2005-11-23T15:15:59+01:00
2022-10-31T13:05:33+01:00
  • Te értettél félre. Ugyanis te azt írtad, minden lapeléréskor megcsinálod a txt-ed. Erre azt mondtam, hogy csak ha régi a kess fájl az adott könyvtárban (most hogy txt, xml vagy bármi), akkor kellene újra generálni a kess-t.
    Mysql-ben meg ne tárolj képeket, az még lassabb lenne, mint amid most van. (Mssql-ben viszont már lehetne).

    cadmagician meg jól mondja, csak a fájlok nevét tárold el adatbázisban.
    Mutasd a teljes hozzászólást!
  • csak az elérési útvonalat tárod ott. Miért jobb ha a kép is ott van?
    Mutasd a teljes hozzászólást!
  • Nos, a cache fájl csak arra szolgált, hogy a könyvtárak struktúráját gyorsabban be tudjam olvasni (ez egy sima txt fájl ami az egyes kepeg eleresi útját tárolja). Sajnálom ha félreérthetően fogalmaztam, de a kódot nem tudom beküldeni, a probléma meg elég komplex ahoz, hogy 100%-osan el tudjam magyarázni . Azonban felmerült bennem még egy gondolat, amit pont ez a félreértés szült: mi lenne, ha minden képet a mysql bázisban tárolnék? azt gondolom, hogy az adatbázis 1-2 gigásra hízna, de érdekelne, hogy ez sebességileg a napi pár ezres látogatottságnál mit eredményez. Nincsenek tapasztalataim a binárisan letárolt adatokkal kapcsolatban egyáltalán, különösen nem az ekkora terhelés melletti adatbázis viselkedésről.
    Előre is köszi a további javaslatokat.
    Mutasd a teljes hozzászólást!
  • Értem, vágom.
    Kár, hogy az ftp-re nem gyúrtam még soha. De eddig vhogy sosem volt rá szükségem.

    De a kedves kérdező legalább jó sok infót kapott.
    Mutasd a teljes hozzászólást!
  • processként megjeleni az ftp. ez már lekérdezkező:
    $proc=`ps -ax | grep IDLE`

    proftpd-nél ezt adja vissza. most néztem meg.

    végülis tökmindegy mit nézek: időnként, hogy vane ftp csati, vagy azt, hogy vane fájl a temp könyvtárba. akkor inkább a könyvtárat....
    Mutasd a teljes hozzászólást!
  • Aha, ez a jó
    Ehhez meg már én nem értek.
    De ha már szóba került, biztonságos? Úgy értem, hogy ha alt+f4-gyel lelövöm a flash fxp-met, akkor is lefut a script?
    Mutasd a teljes hozzászólást!
  • akkor nézni kell, mikor fejeződik be az ftp, és akkor futtatni a scriptet.
    Mutasd a teljes hozzászólást!
  • Ja, de a lámább usereket erre kényszeríteni? Minek adnánk nekik széket, ha a fotelba is leülhetnek?
    Mutasd a teljes hozzászólást!
  • ja, azt írtam, hogy ftp után egyből insert. csak akkor meg kell adni a józernek, melyik kép hova tartozik. vagy kategóriánként külön könyvtár.

    az ftp-zőnek meg el kell indítani egy scriptet....
    Mutasd a teljes hozzászólást!
  • Ha ftp-vel töltögetsz képeket, akkor hogyan is vonsz bele sql-t? Csak időzített scriptekkel, de hát az ...
    Csak kessen keresztül lehet akkor bevonni sql-t, azaz ha a kess túl régi, elindul az sql-be mentés is. Akkor elég egy dátumkezelő cache fájl, ami ha régi, akkor indul el a könyvtár végigpásztázása lap betöltésekor (Magyarul óránként egy user sz!vni fog).

    Gondolom a kérdező saját tapasztalata miatt nem lehet sűrű könyvtár és fájlművelet.
    Mutasd a teljes hozzászólást!
  • ezt a kess dolgot nem értem.... miért is kell?
    Mutasd a teljes hozzászólást!
  • Sőt, te ismered saját webhelyed forgalmát, ennek megfelelően csúcsidőben a kess fájl élettartama lehet 40 perc, éjszaka akár 4 óra is. Szóval a nap 24 óráját feloszthatnád akár több időszakra stb.
    Mutasd a teljes hozzászólást!
  • Azt írtad, hogy cache fájlokkal dolgoztál eddig. De nem látom a miértjét. Ugyanis a cache fájloknak lekezelhetted volna a dátumát, és kész. Egyszerű példa: ha egy user megnyitja a lapod, és a cache fájl egy óránál régebbi, csak akkor kell újraírni a fájlt. Addig használja azt. És persze a lapozásnál kell leellenőrizni csak a fájlok létezését (is_file), és ez miatt pl. nem 50-esével lesz egy lap, hanem néhol csak 48 kép lesz (ha azóta vki letörölte). És persze egy óráig az új fájlok nem láthatóak. Plusz több cache fájl is lehetne. Egy xml például a gyökérben, a könyvtárfára, a könyvtárakban meg xml a fájlstruktúrára. Stb.

    Ja, és egy kép feltöltésekor újragenerálódik a cache, és megtekintésre akkor plusz egy óra onnantól.

    Egyébként az sql bevonása jobb módszer, csak viszont megnehezíti az admint.

    Az esténkénti scriptfuttatást meg felejtsd el, gány egy megoldás.
    Mutasd a teljes hozzászólást!
  • miért nem használsz már meglévő galériákat?

    Coppermine Photo Gallery

    ha ez nem jó, a következőt ajánlom:

    a valaki egy átmeneti könyvtárba tölti fel a képeket. készül egy lista a képekről, majd egy oldalon bepikkelgeti melyik kategóriába tartozik. ftp, majd script futtatás, pickelés.

    Ezután generáltatod le a thumbokat amiket külön kis könyvtárba tartasz. majd a script elrendezi a képeket:

    bemásolja a könyvtárba, insert-el a mysql-be, ami a következőket tartalmazhatja:

    kategória, galéria, képfájl, thumbfájl, megtekintés, mittoménmi, megjegyzés,....,

    kitörlöd a temp könyvtáradat.

    mutodatásnál meg szűrhetsz kategóriára, galégiára, majd ugye a limit-et használva csak a kell ő x db-ot mutatod.

    a html generáláskor meg ugye a megadott thumbot mutatod.

    gyakorlatilag csak feltöltéskor kell elvégezni a rendezést. megtekintéskor csak ha kell a megtekintés számlálót növeled.

    ilyesmire gondoltál?
    Mutasd a teljes hozzászólást!
  • Nos:

    Készítettem egy képgaléria weblapot (PHP) , mely egy meghatározott könyvtárszerkezetből olvas be fájlokat. A könyvtárstruktúra 3 mélységű: kategóriák, galériák, képek. A képgalériának a feladata, hogy megjelenítse a kategóriákat, abba lépve a galériákat, majd a képeket. Ez eddig nem is gond, csakhogy a képgalériát ftp-n keresztül bővítgetik, és így nekem ki kell szednem valahogy a legújabb x darab képet az összes közül. Még ez sem lenne gond, egy rekurzió, aztán annyi, csakhogy itt több 100000(!) képről van szó, és ha minden oldal lekérdezésénél átpásztázom az egész könyvtárat, tömbbe írom ( hogy tudjam a lapozásokat csinálni, kell hogy tudjam az össze elemet egy könyvtárba), szortírozom, stb, akkor az nagyon leterheli a szervert, meg a látogató idegeit is, mire kivárja az oldal letöltődését. Erre egy olyan megoldást találtam, hogy minden galériafeltöltés után az admin lefuttat egy scriptet, ami cache file-okba kiírja az aktuális könyvtárszerkezetet, ezt minden oldal beolvasása előtt betöltöm a memóriába, azonban ez meg annyira leterhelte a szervert, hogy a host rendszergazda az orromra koppintott. Most elhatároztam, hogy újraírom az egészet a kezdetektől, azonban nincs túl nagy tapasztalatom a nagy forgalmú oldalak optimizálásával kapcsolatban, úgyhogy mielőtt belevágnék, kikérem a véleményeteket a problémával kapcsolatban, remélem így elkerülhetek egy rakás tévedést.
    A mostani ötletem nagyon hasonlít az előzőhöz, azonban úgy gondolom, hogy most egy mysql táblába fogom a gyorsítótárat betölteni, és innen könnyedén, és a gépet kevésbé terhelve juthatok hozzá a lapozáshoz szükséges valamint a legújabb képek adataihoz. Az admin minden frissítés után (vagy minden nap éjjel a szerver automatikusan) meghívna egy scriptet, ami először kiürítené a táblákat, majd beírná az aktuális állapotot. a performance ellenőrzéseim alapján egy 10000 elem esetén kb 3-4 másodperc. A thumbnail kigenerálására eddig a phpThumb scriptet használtam, most azonban írtam egy sajátot, ami sokkal gyorsabban dolgozik, igaz nem olyan sokrétű szkript, mint a fent említett, azonban a célnak tökéletesen megfelel.
    Nos nagyjából mindent vázoltam. Arra szeretném kérni a prog.hu-t látogató és a témában jártas szakembereket, hogy bármilyen ötlettel segítsenek a teljesítmény és a terhelés kioptimizálásában, mert úgy érzem, hogy leragadtam egy gondolkodásmódnál, és nem tudok továbblépni. Bármilyen 5let kimozdíthat ebből a gödörből, ezért előre is köszönök minden hozzászólást.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd