Служба поддержки Xelent делится своим опытом сопровождения виртуальных серверов с CMS Magento «на борту».
Magento в процессе своей работы (особенно, если
Файлов сессий скапливается настолько много, что… заканчивается не свободное место, а доступные иноды. В результате система не может записать данные на диск и
df -i
Информация об инодах, команда df -i
Один из вариантов решения проблемы — написать сценарий, удаляющий файлы из var/session и периодически его запускать. Сценарий выглядит так:
cd var/session
for i in sess_*; do rm -fv $i; done
Даже не пытайтесь выполнить команду rm *. Сервер, скорее всего, «подвиснет», не ожидая такого количества файлов. В цикле берем один файл и удаляем его — только так.
Решение — так себе. Когда сессий было относительно немного, этот сценарий запускался раз в неделю, потом — раз в день, потом — несколько раз в день. Но удалять файлы сессий — не вариант. Представьте себя на месте пользователя или менеджера. Вы зашли на сайт, добавили товары в корзину, а корзина взяла и обнулилась — ведь информация о выбранных пользователем товарах хранится как раз в сессиях. Или же вы зашли в админку, полчаса тратите на редактирование описания товара, а при сохранении вас выбрасывает из админки. Изменения, естественно, не сохраняются. Частое удаление файлов сессий не очень хорошо сказывается на работе магазина.
Так уж получилось, что штатная файловая система ext4 плохо справляется со множеством мелких файлов. На помощь приходит файловая система reiserfs, которая позволяет в одном блоке хранить несколько мелких файлов.
Этим мы и воспользовались на одном из серверов наших клиентов. Был добавлен еще один жесткий диск небольшого размера (чтобы не переплачивать за пространство) и создана файловая система ReiserFs:
mkfs.reiserfs /dev/sdd2
После этого нужно добавить данный раздел в /etc/fstab для его автоматического монтирования:
/dev/sdd2 /media/
Точка монтирования может быть другой. В каталоге /media/
Ссылка на новый каталог с сессиями
Естественно, перед изменением каталога сессий нужно остановить
Что касается сценария удаления файлов сессий, то его можно запускать для профилактики, но уже не так часто, а, скажем, раз в месяц — ночью, когда активность пользователей низкая.