#cd /usr/ports/www/xcache
і в файлі Makefile змінюємо строку CONFIGURE_ARGS на вказану нижче
CONFIGURE_ARGS= --enable-xcache=shared --enable-xcache-constant --enable-xcache-optimizer --enable-xcache-coverager --enable-xcache-assembler --enable-xcache-encoder --enable-xcache-decoder --enable-dprint
Після цього
#make install clean
Після збірки створюємо файл xcache.ini в папці /usr/local/etc/php/ наступного вмісту
В даному конфігу замість "md5 хеш пароля" потрібно вставити реальний md5 хеш пароля, з яким користувач test буде входити в адміністративний інтерфейс xcache
[xcache-common]
extension = xcache.so
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "test"
xcache.admin.pass = "md5 хеш пароля"
[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 40M
xcache.count = 2
xcache.slots = 16K
xcache.ttl = 300
xcache.gc_interval = 600
xcache.var_size = 20M
xcache.var_count = 5
xcache.var_slots = 16K
xcache.var_ttl = 300
xcache.var_maxttl = 600
xcache.var_gc_interval = 300
xcache.test = Off
xcache.readonly_protection = Off
xcache.mmap_path = "/dev/zero"
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = Off
xcache.optimizer = On
[xcache.coverager]
xcache.coverager = Off
xcache.coveragedump_directory = "/var/www/wwwroot/site1/coverage"
Найбільш важливими тут виступають параметри
xcache.size = 40M
xcache.count = 2
xcache.var_size = 20M
xcache.var_count = 5
Визначення цих параметрів в моєму випадку було методом тика в небо пальцем кількості паралельних mmap для opcode cacher xcache (xcache.count = 2) і кількість паралельних mmap для var cache (xcache.var_count = 5).
Тик пальцем виглядав як проставляння кількості від 1 до 10 і тестування сайту на швидкість з допомогою apachebench
Даний конфіг оптимальний для двоядерної системи з 4 гігабайтами памяті на борту.
Наступним кроком - інсталяція модуля cacherouter для Drupal
Для цього вантажим і вмикаєм відповідний модуль
і в settings.php потрібного нам сайта вказуєм
$conf['cache_inc'] = './sites/all/modules/cacherouter/cacherouter.inc';
$conf['cacherouter'] = array(
'default' => array(
'engine' => 'xcache',
'shared' => TRUE,
'prefix' => '',
'static' => TRUE,
'fast_cache' => TRUE,
),
);
Даним кодом ми вказуємо друпалу зберігати змінні кешу не в базу даних, а в пам'ять xcache.
Наступний крок - перезавантаження апача і тестування швидкодії.
Зовнішній вигляд адміністративного інтерфейсу xcache
ab -c150 -n10000 http://testsiteurl
Тобто 150 паралельних потоків і 10000 запитів.
dev2# ab -c150 -n10000 http://site1.sym.loc/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking site1.sym.loc (be patient)
Completed 1000 requests
Completed 2000 requests
^C
Server Software: Apache/2.2.16
Server Hostname: site1.sym.loc
Server Port: 80
Document Path: /
Document Length: 31995 bytes
Concurrency Level: 150
Time taken for tests: 84.644 seconds
Complete requests: 2723
Failed requests: 0
Write errors: 0
Total transferred: 89678005 bytes
HTML transferred: 88146225 bytes
Requests per second: 32.17 [#/sec] (mean)
Time per request: 4662.746 [ms] (mean)
Time per request: 31.085 [ms] (mean, across all concurrent requests)
Transfer rate: 1034.64 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 3.4 0 65
Processing: 3219 4524 295.4 4512 5893
Waiting: 2726 3961 299.8 3949 5446
Total: 3232 4526 295.1 4514 5898
Percentage of the requests served within a certain time (ms)
50% 4514
66% 4557
75% 4594
80% 4625
90% 4853
95% 5031
98% 5182
99% 5416
100% 5898 (longest request)
PS. Буду радий почути про інші живі конфігурації даного кешера...
Trackback URL for this post:
http://itua.name/en/trackback/744