Не так давно (если не ошибаюсь, с версии 2.4-2.5) версия Moodle стала страшно тормозить в дефолтной поставке PHP. Нет не страшно тормозить, а тратить 30 СЕКУНД на генерацию страницы. Впрочем, это случается с любым неминималистичным веб-фреймворком рано или поздно, а Moodle никогда не был маленьким и легковесным, в силу своей предметной области. А значит - нет смысла ругаться, надо решать проблему :)
Я нашел около двух способов ускорения, однако есть и больше. Навскидку - можно использовать WinCache под Windows и другие (см. stores). Да и Memcached не так уж обязателен Вот здесь по идее можно скачать плагин и настроить для работы Moodle Universal Cache c APC (у меня оно кладется в Memcached).
Иными словами, здесь описан мой путь, который несколько костыльный, однако - сработал. Результатом его является то, что главная сейчас отдается за 300мс, а время генерации страницы в худшем случае - 4с. Данная конфигурация работает на двухядерном Intel Atom D2700 и 2Гб RAM под управлением Ubuntu 12.04
Cперва установим APC. Мануал взят по ссылке [1].
Вторым этапом настраивается Memcached. Мануал опять же взят по ссылке [2], однако есть небольшие отличия, связанные с версией. Ставим необходимые пакеты.
Стоит добавить следующую строку в /etc/php5/apache2/php.ini (хотя по идее инсталлер это сделает сам, у меня почему-то не сделал):
И в config.php самого Moodle прописываем:
Для полной уверенности можно выполнить:
Я нашел около двух способов ускорения, однако есть и больше. Навскидку - можно использовать WinCache под Windows и другие (см. stores). Да и Memcached не так уж обязателен Вот здесь по идее можно скачать плагин и настроить для работы Moodle Universal Cache c APC (у меня оно кладется в Memcached).
Иными словами, здесь описан мой путь, который несколько костыльный, однако - сработал. Результатом его является то, что главная сейчас отдается за 300мс, а время генерации страницы в худшем случае - 4с. Данная конфигурация работает на двухядерном Intel Atom D2700 и 2Гб RAM под управлением Ubuntu 12.04
Cперва установим APC. Мануал взят по ссылке [1].
sudo apt-get install php-apc
service apache2 restart
У меня юзался php-fpm (в дефолте убунты это так) и его необходимо было перезагрузить:
service php5-fpm restart
Количество памяти можно смело поднимать до 256Мб - это дает позитивный эффект, и память сильно не фрагментируются в итоге. Прикладываю конфиг /etc/php5/conf.d/apc.ini для настройки
extension=apc.so
apc.shm_size=256M
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.enable_cli=1
apc.rfc1867=1
Вторым этапом настраивается Memcached. Мануал опять же взят по ссылке [2], однако есть небольшие отличия, связанные с версией. Ставим необходимые пакеты.
sudo apt-get install memcached php-pear php5-dev
sudo apt-get install libmemcached-dev
sudo pecl install Memcache
service apache2 restart
service php-fpm restart
Стоит добавить следующую строку в /etc/php5/apache2/php.ini (хотя по идее инсталлер это сделает сам, у меня почему-то не сделал):
extrension=memcache.so
И в config.php самого Moodle прописываем:
$CFG->cachetype='memcached';
$CFG->rcache = true;
$CFG->memcachedhosts= '127.0.0.1';
$CFG->memcachedpconn=true;
Для полной уверенности можно выполнить:
service memcached restart
Комментариев нет:
Отправить комментарий