2014-01-30 3 views
2

Каково максимальное количество файлов, которые php может обрабатывать в каталоге «session.save_path», когда используется «session.save_handler = files»?Максимальное количество файлов сеанса php в «session.save_path»

На самом деле у нас были проблемы, когда количество файлов достигает высокого уровня. Я не могу сказать вам номер, который у нас был, потому что я очистил папку te.

Пользователи пытались войти в систему, но откуда вышли сразу после первого клика в приложении.

+0

PHP не накладывает ограничений на количество файлов сеанса, но у файловых систем есть ограничения, после которых производительность начинает снижаться. –

ответ

2

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

Вы, возможно, хотите, чтобы разделить ваши файлы сессий в подкаталогах, а the manual explains:

session.save_path string

session.save_path определяет аргумент , который передается в обработчик сохранения. Если вы выберете файлы по умолчанию , это путь создания файлов. См. Также session_save_path().

Существует дополнительный N аргумент этой директивы, которая определяет количество уровней каталогов файлы сеанс будет распространяться вокруг в Например, установке в. 5;/TMP 'может в конечном итоге создание файла сеанса и местоположение, подобное /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If.

Опасайтесь, что вам сначала нужно создать дерево каталогов самостоятельно. Нетрудно написать сценарий PHP для этого.

+0

Спасибо за подсказку! Предполагая, что вы правы, возможно, что файловая система ext4 столкнулась с проблемой обработки количества файлов в каталоге. – Andi

+0

BTW, в следующий раз, когда это произойдет, я предлагаю вам проверить дату изменения файлов сеанса. Я однажды нашел переполненный каталог сеанса из-за неправильно сконфигурированной системы, которая просто не удаляла старые данные. У меня были файлы сеанса, которые не были затронуты месяцами. –

+0

Привет, вы правы, вот что случилось. Я исправил его, установив session.gc_probability, session.gc_divisor, session.gc_maxlifetime. См.: http://stackoverflow.com/questions/654310/cleanup-php-session-files – Andi

Смежные вопросы