Ускорение DLE через tmpfsАвтор: MSW Версия DLE: любая Tmpfs — временное файловое хранилище во многих Unix-like ОС. Предназначена для монтирования файловой системы, но размещается в ОЗУ вместо ПЗУ. Статья посвящена методу ускорения работы DLE через tmpfs, в результате переноса директории кеша DLE в оперативную память. Так как работа с оперативной памяться в разы быстрее чем работа с диском.
Входящие условия:
- выделенный сервер - ОЗУ >= 1GB - сайт располагается в директории на сервере: /var/www/site.ru/ В CMS DLE в папке кеша кроме временных файлов также хранятся файлы которые создаются/пересоздаются в процессе сохранения настроек, или выполнения тех или иных действий скрипта. Так как tmpfs является энергозависимой, тоесть при перезагрузке сервера данные которые в ней находятся будут безвозвратно утеряны, то надо както былобы сохранить важные файлы настроек и системного кеша, которые автоматически не создаются, например структура каталогов в папке кеша, категории, группы пользователей и т.д. вот тут на выручку приходит rsync. Создаём директорию с кешем, которая будет на диске:
mkdir /var/www/cache_site.ru chmod 777 /var/www/cache_site.ru Копируем в созданную директорию теккущие данные:
rsync -a /var/www/site.ru/engine/cache/ /var/www/cache_site.ru/
Для синхронизации актуальных данных добавляем в крон сервера
crontab -e следующую строку:
*/10 * * * * rsync -rpogt --delete /var/www/site.ru/engine/cache/ /var/www/cache_site.ru/ > /dev/null 2>&1 тут указано - каждые 10 минут синхронизировать данные(рекурсивно, с сохранением привелегий, времени создания) с директории кеша сайта(в оперативке) в директорию на диске. Также когда сервер будет перезагружен надо смонтировать tmpfs и поместить в неё текущие данные кеша. Для этих целей создаём скрипт:
mcedit /etc/init.d/tmpfs_cache
с содержимым:
#!/bin/bash mount -t tmpfs -o size=50M tmpfs /var/www/site.ru/engine/cache/ rsync -rpogt /var/www/cache_site.ru/ /var/www/site.ru/engine/cache/ тут size=50M - эо размер монтируемого блока. У меня например больше 25 метров кеш дле не занимает, потому так чтоб с запасом 50 метров вполне хватит. Делаем файл исполняемым:
chmod +x /etc/init.d/tmpfs_cache
Добавляем в автостарт: (пример для убунту и дебиан, для своей ОС - ищите мануалы каким образом это делается)
update-rc.d tmpfs_cache defaults
Последний этап: запускаем созданный скрипт монтирования раздела оперативной памяти в папку кеша сайта и копирования данных в эту директорию.
/etc/init.d/tmpfs_cache
Комментарии к статьеЕсли Вам понравилась эта статья или не понравилась напишите об этом в комментариях
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации. |