Як прискорити веб-сервер або установка xcache
Як правило, найбільше навантаження на веб-сервер створюють процеси php і mysqld, звичайно потрібно оптимізувати код веб-сайтів і оптимізувати структуру і запити до бази даних.
Але. не всім дано, та й залізо зараз настільки потужне, що без праці перетравлює купу інформації.
Одна з можливостей прискорити виконання php-коду і в слідстві чого розвантажити сервер і отримати приріст генерації сторінок сайту - це установка системи кешування результатів виконання скриптів PHP.
Така система не одна, зараз користуються популярністю eAccelerator, XCache, APC ..
Першою системою що я почав використовувати була eAccelerator.
Але на останній зв'язці FreeBSD 8 + apache-2.2.14 + php 5.3.2, eAccelerator пішов у відмову і не хотів працювати, лаючись при цьому приблизно так
eAccelerator: shmmax should be at least 2MBPHP Warning: [eAccelerator] Can not create shared memory area in Unknown on line 0
PHP Fatal error: Unable to start eAccelerator module in Unknown on line 0
failed
Спробувавши різні танці з бубном і зменшував пам'ять для кеша і збільшував kern.ipc.shmmax, ось тільки не пробував ulimit -SHn 65535. я вирішив що це знак і потрібно спробувати іншу систему кешування.
Вибір припав на XCache, і так почнемо ..
cd / usr / ports / www / xcache; make install clean
З опцій, нічого не відзначаю
Enable code coverage dumper
за замовчуванням вона не включена і служить для визначення запобігання переповнення пам'яті
після установки копіюємо конфиг
cp /usr/local/share/examples/xcache/xcache.ini / usr / local / etc / php /
створюємо пароль для доступу в адмінку
md5 -s FWFWGd232fgfd4334 (пароль і хеші я змінив)
Правимо конфиг під себе
ee /usr/local/etc/php/xcache.ini
в рядок xcache.admin.pass вставляємо хеш пароля який вийшов після виконання md5 -s.
параметр xcache.size встановлюйте в залежності від кількості оперативної пам'яті сервера
[Xcache-common] extension = xcache.so [xcache.admin] xcache.admin.enable_auth = On xcache.admin.user = "admin" xcache.admin.pass = "8fa3ad1043ac3280f2c3cf90273c718a" [xcache] xcache.shm_scheme = "mmap" xcache.size = 256M xcache.count = 4 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0 xcache.var_size = 4M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 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 = On xcache.optimizer = On [xcache.coverager ] xcache.coverager = Off xcache.coveragedump_directory = ""
apachectl -k graceful
і перевіряємо підключився чи XCache