Memcache

itt a fent említett kategóriákba nem tartozó gondokra, kérdésekre adunk megoldást

Memcache

HozzászólásSzerző: Locky » 2011.05.25. 11:37

Hali.

Azt szeretném megtudni hogy telepítve-e van a memcache a szerverre.
Lényegében annyit tud, hogy az adatbázisok terheltségét jelentősen csökkenti. 80-90%-ról képes lehet olyan 5-10%-ra terhelni.

Csak ezt általában nemszokták mindenhol telepíteni.
Locky
 
Hozzászólások: 6
Csatlakozott: 2011.05.25. 11:32

Re: Memcache

HozzászólásSzerző: Locky » 2011.06.15. 17:10

Még mindig a memcache után érdeklődök....
Locky
 
Hozzászólások: 6
Csatlakozott: 2011.05.25. 11:32

Re: Memcache

HozzászólásSzerző: l2sh » 2011.06.15. 18:20

Hali!

Szerintem nincs futtatva a memcached szerver. Viszont PHP-ben vannak más cache-elési lehetőségek, mint pl. az object-cache vagy az output buffering. Nincs annyi elérhető memória, hogy nagyobb adatokat tároljunk, 32 Mb a max minden felhasználónak. Felesleges egy szimpla weboldalhoz memcached, mivel az sql lekérdezések kb csak 1-2 rövid queryből állnak, és általában kis adatok, az sql meg amúgy is automatikusan cache-eli magának a select eredményeket egy ideig. Ha nagyon processzorigényes a kód, amit futtatni akarsz, akkor ajánlom az output bufferinges fájl cache-t, tehát a számított adatokat kiíratod egy fájlba, vagy akár adatbázisban is tárolhatod, seperc alatt lekéri. Ami lassúságot okoz, az a nagy adatok lekérése, netán a WHERE utasítással, ami soronként ellenőriz megszórva egy pár számtani művelettel, pl. ha 1000 felhasználó egyenként 1000 sort kér le ilyen módon, viszont ha egyszerre kérik le, az sql az elsőt tárolja, és a többi felhasználó milliszekundumok alatt megkapja azokat. :) Dinamikus adatokból meg általában nem szokott lenni több ezer sor.
l2sh
 
Hozzászólások: 95
Csatlakozott: 2009.03.22. 13:01

Re: Memcache

HozzászólásSzerző: Locky » 2011.06.16. 05:45

Toplistát üzemelek, és gondoltam csökkentem a terhelést, hogy jobb legyen mindenkinek, és ne mindig generáljon a button.php szavazóképet mert az elég terhelő, hanem töltse be cache-ből. Ennek 2 elönye is van, első hogy gyorsabban bejönnek az image-k a regisztrált oldalakon, 2. hogy nem terheli ugy a szervert.
Locky
 
Hozzászólások: 6
Csatlakozott: 2011.05.25. 11:32

Re: Memcache

HozzászólásSzerző: l2sh » 2011.06.16. 10:22

Locky írta:Toplistát üzemelek, és gondoltam csökkentem a terhelést, hogy jobb legyen mindenkinek, és ne mindig generáljon a button.php szavazóképet mert az elég terhelő, hanem töltse be cache-ből. Ennek 2 elönye is van, első hogy gyorsabban bejönnek az image-k a regisztrált oldalakon, 2. hogy nem terheli ugy a szervert.


Szerintem egy toplista nem használ annyi erőforrást, max a netkapcsolatot, ha sok képről van szó, de azt nem tudod kijátszani. Ha meg maga a kód lassú, azon lehet optimalizálni. Legjobb módszer, ha a képek elérési útvonalát adatbázisban tárolod, és minden táblának legyen egy primary key-e, ami lehetőleg szám legyen, mert a leggyorsabban egy lookup table-ből lehet lekérni adatokat, az sql pedig a növekvő számos primary key táblákat úgy tárolja.

Pontosan milyen szavazóképet generál? Az nem jó megoldás, ha sűrűn nagy adatokat számítgat, akkor a kódban van elrontva valami. Egy szavazás csak eggyel növel egy számot, ami egyáltalán nem terhelő. A nagy adatokból meg nem muszáj mindig a legfrissebbet lekérni, pl. óránként egyszer cache-eli, és az elég neki.
l2sh
 
Hozzászólások: 95
Csatlakozott: 2009.03.22. 13:01

Re: Memcache

HozzászólásSzerző: Locky » 2011.06.16. 11:46

Kicsit hosszú ezt leírni, de az okhost-os blogon van is róla egy cikk:
http://blog.okhost.eu/2010/03/toplista- ... eltetelei/

De ha gondolod becsatolom a button.php-t és megnézheted a terheltségi dolgokat.
Locky
 
Hozzászólások: 6
Csatlakozott: 2011.05.25. 11:32

Re: Memcache

HozzászólásSzerző: l2sh » 2011.06.16. 12:30

Locky írta:Kicsit hosszú ezt leírni, de az okhost-os blogon van is róla egy cikk:
http://blog.okhost.eu/2010/03/toplista- ... eltetelei/

De ha gondolod becsatolom a button.php-t és megnézheted a terheltségi dolgokat.


Ja, hogy statisztikáról képgenerálós toplista. :D Azt hittem, szimpla szavazós, és a szavazatokat a toplistán kiértékeli. Nem semmi, mert sok kép cache-elése hamar megtelítené a memóriát. Képeket is meg lehet oldani szimpla cache-elési módszerrel, vagyis kimented fájlba, nem kell mindig csak az outputra írni a statisztikával együtt, mert az tényleg lassítja, ráadásul mindig lekéri a statisztikát az adatbázisból. Csak azokat a képeket generálja újra fájlba, amiknek a módosítási dátuma kisebb, mint a statisztika táblában levő last_update oszlop, aminek meg lehet adni alapértéknek, hogy minden update-kor frissüljön, tehát:
Kód: Egész kijelölése
`last_update` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

De ez dinamikus adat, és az ellen nem tudsz mit tenni, hogy ha valaki rákattint, akkor a szavazás számát megnöveli eggyel, majd ha újratöltik az oldalt, akkor a kép újragenerálódik, viszont addig fájlból nézi, amíg nem történik újbóli frissítés. Nem kell mindig akkor generálni a fájlt, mikor rákattintanak, inkább a megjelenítéskor generálja egyszer, ha friss az adat.

Mert az nem mindegy, ha egymás után 100-szor kattintanak, és százszor generálja a képet, vagy 100-szor kattintanak, és csak 1 valaki tölti újra az oldalt, akkor nem fog minden eggyel növelésnél generálni képet, hanem tényleg csak akkor, amikor kell.
l2sh
 
Hozzászólások: 95
Csatlakozott: 2009.03.22. 13:01


Vissza: Egyéb problémák és kérdések

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég

cron