Tag: memcache

Wtyczka upPrev w sieci Blomedia

Wtyczka upPrev została wdrożona we wszystkich serwisach sieci blomedia.pl co oznacza, że potencjalnie jest używana do kilkunastu milionów razy miesięcznie.

Wtyczka została specjalnie zmieniona. W celu zwiększenia wydajności została dostosowana do używane s serwisach własnego systemu cachowania opartego od serwer memcache’a.

[blo-link-inner href="http://iworks.pl/2011/08/23/wtyczka-wordpress-upprev/"]Wtyczka WordPress: upPrev[/blo-link-inner]

sesje PHP w memcache’u

Pewien dość mocno obciążony serwer www (apache2) strasznie dużo zapisywał w katalogu sesji PHP. Na tyle dużo, że zaczeło to być problemem, jeszcze nie krytycznym, ale już zauważalnym.

Jednym z możliwych rozwiązań jest przeniesienie sesji do bazy danych, ale ze względu na specyfikę danych sesyjnych nie jest to szczególnie dobre rozwiązanie przy tej wielkości serwisu, a dodatkowo serwis korzysta z postgresa, więc wrzucanie w niego sesji jest jeszcze mniej polecane.

Rozwiązaniem zastosowanym, a które szczerze polecam jest memcache.

Instalacja jest banalnie prosta. Najpierw odpowiednie moduły na serwerze: (dla debianowaych):

sudo apt-get install memcached php5-memcache

Sprawdzamy czy serwer memcache wstał

netstat -ntlp | grep mem

oraz czy w używany php jest załadowany moduł memcache.

W konfiguracji php należy zmienić sposób przechowywania sesji oraz ustawić dane dostępowe do memchache’a:

;session.save_handler = files
session.save_handler = memcache
session.save_path="tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

Teoretycznie powinno zadziałać.

Niestety u mnie wystąpił następujący błąd:

Fatal error: session_start() [function.session-start]: Failed to initialize storage module: memcache (path: [...]/session) in /var/virtuals/[...].php on line 41

Który związany był z ustawianiem przez plik konfiguracyjny serwisu następującej wartości

ini_set("session.save_path",SESSION);

i dopiero po jej usunięciu wszystko zaczęło śmigać tak jak powinno.

memcache dla IP.Board

Żeby wybrać jedną z kilku metod cache’owania w IP.Board musimy w pliku conf_global.php określić, którą z metod wybieramy poprzez ustawienie odpowiedniego włącznika.

Żeby skorzystać z memcheche’a należy dodać poniższe parametry, oczywiście w server i port wpisując odpowiednie wartości.

$INFO['use_memcache'] = '1';
$INFO['memcache_server_1'] = '127.0.0.1';
$INFO['memcache_port_1'] = ''11211;

Jednocześnie należy pamiętać, żeby usunąć inne sposoby cache’owania.

Oparte na WordPress & Theme by Anders Norén