Это распространенная проблема. Вероятно, вы столкнулись с проблемой блокировки сеанса. Обработчик сохранения сеанса по умолчанию, который использует PHP, обработчик файлов (и тот, который Zend_Session использует по умолчанию), использует системный вызов flock () для блокировки файлов сеанса.
Как вы выбираете, на какой сервер отправлять отдельные HTTP-запросы? Если это просто случайный случай, и любой данный запрос может быть обработан любым из серверов, то вы можете легко представить себе сценарий, когда сервер 1 обрабатывает первоначальный запрос, создает файл сеанса на общем ресурсе NFS, получает и сохраняет блокировку на этот файл.
Следующий запрос AJAX поступает на другой сервер, где процесс PHP на этом сервере считывает идентификатор сеанса из файла cookie клиента и пытается заблокировать файл сеанса на общем ресурсе NFS. Поскольку первый сервер все еще имеет блокировку файла, вы заблокированы и ждете.
Это может быть причиной этого. Это довольно часто, когда вы начинаете пытаться балансировать нагрузку PHP.
Некоторые балансировщики нагрузки имеют режим, который обеспечивает «липкие сеансы», когда балансировщик достаточно умен, чтобы просматривать идентификатор сеанса по проводам и гарантировать, что тот же физический сервер обрабатывает все запросы для данного сеанса. Это может сделать балансировку нагрузки менее эффективной, но оно того стоит, чтобы избавиться от проблемы.
Или проблема может быть связана с чем-то другим. Я не знаю.