Как хранить файлы сессий на сервере где несколько сайтов.

На сервере сейчас 15-20 сайтов на битриксе, некоторые с авторизацией пользователей, плюс авторизация редакторам/админам.

Как продлить дефолтную сессию в 30 минут вроде понял, а вот как хранить все файлы сессий на сервере, каких накопиться очень-очень много для всех сайтов в одной папке /tmp/ наверное плохо для производительности?

Стоит ли для каждого сайта создавать отдельные папки /tmp/site1/, и есть ли возможность оставить сессии неавторизованых пользователей в 30 минут продлив лишь для авторизованых?
Какое вообще количество файлов сессий максимально, если поставить например срок жизни сессий 2 недели?

Спасибо.

1 ответов


Зачем неавторизованным пользователям сессии?

> Какое вообще количество файлов сессий максимально, если поставить например срок жизни сессий 2 недели?
сложный вопрос : ) если к тебе на 1 сайт зайдет миллион пользователей за один день, то максимальное числов файлов сессий будет 1миллион+, если каждый из этого миллиона зайдет на каждый из твоих 15-20 сайтов, то умножай... : )

>а вот как хранить все файлы сессий на сервере, каких накопиться очень-очень много для всех сайтов в одной папке /tmp/ наверное плохо для производительности?
на производительности сайтов может сказатся при удалении устаревших сессий и т.п. операциях

а так - время запроса к конкретному файлу на файловой системе будет одинаково для любого количества файлов в конкретной папке
другое дело, если ты часто делаешь листинг папки с сессиями. на том же миллионе файлов ls может встать колом
есть пара постов на хабре про "много файлов\инод на диске", как раз один из них про сессии

можно положить сессии в память, в memcached(не флашит на диск) или redis(флашит на диск и может загрузить данные с диска при ребуте сервера, например)