Kom ihåg mig?
Home Menu

Menu


Erfarenheter av memcached / minska lasten på DB

 
Ämnesverktyg Visningsalternativ
Oläst 2007-09-27, 11:15 #11
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
Citat:
Originally posted by andi@Sep 27 2007, 09:59
Lite frågor från en okunnig, men om jag fattat det rätt så är memcached bra för data i databasen som inte ändras så ofta? Om SQL-satserna ofta är olika så är det väl heller inte någon större idé att använda memcached eller?

Hur pass mycket avlastning blir det för databasen om man använder memcached? Några som använt det som har lite siffror? När är det bra, när är det mindre bra?

Skulle man kunna använda memcached för filer som man läser in i PHP-script också? Så att man inte behöver läsa filen från disk varje gång?
Om du inte vill läsa in PHP-filen från disk varje gång den körs, så använd då APC eller liknande. Då cachelagras bytekoden för PHP-filen i minnet. Man kan även stänga av så att den inte kollar disken överhuvudtaget (normalt så kollar APC om filen har ändrats vid varje exekvering av en PHP-fil, och isf genereras ny bytekod). Genom att köra APC eller liknande så sparar du rätt mycket prestanda.

En intressant sak är även att APC i version 6 av PHP kommer att komma med per default. Dock inte aktiverad, detta på grund av att det krävs lite konfiguration.

http://se.php.net/apc

EDIT: Iofs så cachelagrar operativsystemet (åtminstone *nix) filer i minnet som används ofta. Men att spara undan bytekoden för PHP-filer är väldigt bra, då slipper filerna parsas om hela tiden!
fors är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-27, 12:04 #12
Onkelborg Onkelborg är inte uppkopplad
Flitig postare
 
Reg.datum: Feb 2007
Inlägg: 382
Onkelborg Onkelborg är inte uppkopplad
Flitig postare
 
Reg.datum: Feb 2007
Inlägg: 382
Citat:
Originally posted by fors@Sep 27 2007, 11:15

EDIT: Iofs så cachelagrar operativsystemet (åtminstone *nix) filer i minnet som används ofta. Men att spara undan bytekoden för PHP-filer är väldigt bra, då slipper filerna parsas om hela tiden
Gäller för windows också
Onkelborg är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-27, 12:13 #13
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Citat:
Originally posted by fors@Sep 27 2007, 11:15
Om du inte vill läsa in PHP-filen från disk varje gång den körs, så använd då APC eller liknande.
OK, men jag menade alltså filer som PHP-scriptet läser in, tex en textfil. Skulle APC funka på det också, eller kan man kanske kombinera APC med memcached?
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-27, 16:45 #14
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Citat:
Ursprungligen postat av andi
Lite frågor från en okunnig, men om jag fattat det rätt så är memcached bra för data i databasen som inte ändras så ofta? Om SQL-satserna ofta är olika så är det väl heller inte någon större idé att använda memcached eller?

1. Det går fint att använda memcache till data som förändrar sig också. Förändringarna kanske inte behöver visas "live" - du kan då sätta timouten på Memcache-nyckeln till 10 minuter. Att läsa frågan från databasen var tionde minut istället för flera gånger i sekunden blir en stor avlastning.

2. Memcache går helt klart att använda fast SQL satserna varierar - så länge de varierar lagom mycket. Du får då kartlägga dina SQL frågor och se hur de varierar över tiden, vilken frekvens de återkommer med, etc.. Du använder med fördel en md5:a av din SQL-sats som nyckel vid detta scenario.

Citat:
Ursprungligen postat av andi
Hur pass mycket avlastning blir det för databasen om man använder memcached? Några som använt det som har lite siffror? När är det bra, när är det mindre bra?
Skulle man kunna använda memcached för filer som man läser in i PHP-script också? Så att man inte behöver läsa filen från disk varje gång?
3. Memcache ligger inte mellan databasen, utan vid sidan av. Du använder ditt PHP-script för att läsa in datat in i memcachen. På så sätt kan du lagra allt ifrån text-filer till PHP-arrayer. Allt i memcachen ligger i RAM så du behöver inte läsa från någon fil - dock kan ju ditt OS välja att swappa ner minne till disk, så i teorin kan det genereras disk-läsningar.
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-27, 23:39 #15
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
Citat:
Ursprungligen postat av andi
Citat:
Ursprungligen postat av fors
Om du inte vill läsa in PHP-filen från disk varje gång den körs, så använd då APC eller liknande.

OK, men jag menade alltså filer som PHP-scriptet läser in, tex en textfil. Skulle APC funka på det också, eller kan man kanske kombinera APC med memcached?
Om det är vanliga filer så skall operativsystemet som sagt göra det åt dig automatiskt. Dock så kan man spara det med både APC och Memcache manuellt om man vill. Detta eftersom båda programmen kan spara data i minnet via ett funktionsanrop.
fors är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-28, 11:33 #16
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
OK, tack alla för bra svar. Tror nog att jag kan ha nytta av både memcached och APC!
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-10-04, 10:05 #17
mattiaseriksson mattiaseriksson är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2007
Inlägg: 4
mattiaseriksson mattiaseriksson är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2007
Inlägg: 4
Citat:
Originally posted by andi@Sep 27 2007, 10:59
Lite frågor från en okunnig, men om jag fattat det rätt så är memcached bra för data i databasen som inte ändras så ofta? Om SQL-satserna ofta är olika så är det väl heller inte någon större idé att använda memcached eller?

Hur pass mycket avlastning blir det för databasen om man använder memcached? Några som använt det som har lite siffror? När är det bra, när är det mindre bra?

Skulle man kunna använda memcached för filer som man läser in i PHP-script också? Så att man inte behöver läsa filen från disk varje gång?
Vi sätter aldrig någon timeout, istället invaliderar vi berörda cacher då vi sparar ner till databasen... på så sätt så körs det ALDRIG mer select-frågor än nödvändigt.

Ett av grundskälen till att använda memcached är att det skalar upp en sajt bra, databasen blir inte mer lastad med select-frågor för att man utökar med fler webbservrar.

Funkar sjukt smidigt att lägga på ett cachelager då man kör java, bara att använda AOP och köra en cachehanterare runt logik-lagrets klasser med interfaces.
mattiaseriksson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-11-12, 21:25 #18
mbomelin mbomelin är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 248
mbomelin mbomelin är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 248
Tänkte på ett av mina tidiga svar ang att gruppera olika värden i memcached och att kunna expira en hel grupp. Det finns tydligen funktionalitet i memcached för detta som jag helt missat.
Finessen kallas Managed Instanced, tyvärr verkar det inte finnas något stöd för detta i php-klienten. Någon som vet om det finns en extern memcached-klient att använda i php, som klarar av den funktionalitet?

Hittade följande för perl http://search.cpan.org/~elizabeth/Ca...hed/Managed.pm
men det har man ju inte så mycket nytta av i php
mbomelin är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 13:03.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017