digitorum.ru

Как меня найти

Профиль

icq: 4415944

Балуемся с memcache (установка, настройка, пара тестов) под FreeBSD

memcache, nix, php

У меня уже есть "тестовый стенд", его и продолжу мучать.

Сначала обновляем дерево портов:

portsnap fetch update

 

Ставим расширение memcache для php:

cd /usr/ports/databases/pecl-memcache
make
make install
make clean

 

В процессе установки нам любезно сообщают о том, что в файл '/usr/local/etc/php/extensions.ini' нужно добавить строку:

extension=memcache.so

 

Ставим мемкэш:

cd /usr/ports/databases/memcached
make
make install
make clean

 

В файл /etc/rc.conf добавляем:

memcached_enable="YES"
memcached_flags="-d -l 127.0.0.1 -p 11212 -m 64" # запустить как демона, слушать локалхост порт 11212, максимум 64 мегабайта памяти.

 

Запускаем мемкэш:

/usr/local/etc/rc.d/memcached start

 

Проверяем что у нас на порту:

netstat -an | grep 11212

 

Пишем простенький скрипт для проверки нашего чуда:

<?php
	
	$memcache = new Memcache;
	$memcache->connect('localhost', 11212) or die ("Can't connect");
	
	$time_start = microtime(true);
	
	for($i=0;$i<1000000;$i++) {
		$memcache->set('key' . $i, 'MyTestString', false, 3600) or die ("Storing error");
	}
	
	echo "Wrire: " . ( microtime(true) - $time_start ) . " seconds\n";
	
	$time_start = microtime(true);
	
	for($i=0;$i<1000000;$i++) {
		$get_result = $memcache->get('key' . $i);
	}
	
	echo "Read: " . ( microtime(true) - $time_start ) . " seconds\n";
	
?>

 

С текущими настройками получаем время (попрошу заметить, что мы пишем и читаем по одному миллиону раз, поэтому и время такое ):

# /usr/local/bin/php /www/localhost/www/index.php
Wrire: 65.182116985321 seconds
Read: 65.040600061417 seconds

 

Теперь изменим настройки на unix сокет. Для этого поменяем флаги в /etc/rc.conf:

memcached_flags="-d -m 64 -s /tmp/memcached.socket -a 0777"

 

Перезагружаем мемкэш:

/usr/local/etc/rc.d/memcached restart

 

И в скрипте изменим настройки подключения на:

$memcache->connect('unix:///tmp/memcached.socket', 0);

 

Это дает небольшой прирост в скорости:

# /usr/local/bin/php /www/localhost/www/index.php
Wrire: 41.782801151276 seconds
Read: 40.87517285347 seconds

 

Ну собственно вот и все... Немного побаловались

shutdown -p now