Увеличение скорости, которое вы, вероятно, видите здесь, на PHP с использованием NFS по memcached, является порядочным обманчивым. Хранилище сеансов PHP по умолчанию блокирует получение по принципу «первым пришел-первым-обслужен». Это означает, что два одновременных запроса, сделанных для PHP для одного и того же сеанса, заставят первый запрос заблокировать сеанс, пока не будет выполнен PHP, или вы явно вызываете session_write_close()
из своего кода, чтобы освободить блокировку.
Но в хранилище сеансов, основанном на файлах, PHP полагается на flock, который не работает в NFS.
Сервер NFS (версии 2 и 3) протокол не файл поддержки блокировки
See this answer on unix stackexchange
Так что для распределенной сессии магазине, вы редко хотите медленный замок на основе файловой системы. В любом случае большинство хранилищ в памяти работают быстрее. И поскольку NFS обычно не может обрабатывать вызовы flock, ваши сеансы будут повреждены, если два одновременных запроса попытаются записать в тот же файл сеанса. Другими словами, то, что вы видите как быстрее, - это в основном ваши запросы, потенциально искажающие их сеансы быстрее, потому что в сеансе для параллелизма нет блокировки.
Если ваши запросы занимают очень много времени и не требуют сеанса, лучше всего сразу позвонить по номеру session_write_close
в начале кода, когда вы закончите сеанс, чтобы любые другие входящие запросы могли попасть в сессия. Обычно это проблема, когда вы делаете много запросов на длительный опрос PHP (скажем, через AJAX).
Что я имею в виду: «страница замедляется»? Это визуальный эффект, или вы выполнили некоторые измерения? –