Как узнать, из чего состоит время ожидания ответа от сервера?
Пишу скрипт для бэкапа сайта на одном малопопулярном движке. Для реализации бэкапа через кнопку в панели управления использую серию AJAX-запросов, каждый их которых вкладывает в архив сотню файлов. Таким образом решается проблема тайм-аута в работе скрипта и ответа от сервера, плюс у пользователя есть визуализация, которая не даёт ему нервничать.
Проблема в том, что время ожидания ответа на очередной запрос составляет от 5 до 15 секунд, в то время как сам скрипт выполняется меньше секунды. Время работы скрипта я замерял с помощью двух вызовов microtime(true) — в первой строке «точки входа» в движок и сразу после вывода моего плагина.
Вопрос в том, куда уходит оставшееся время? Как это проверить?
Сервер Apache 2.2.22, PHP 5.5.4, запускается через mod_php.
Суть в том, что я не там ставил microtime(). Для архивации я использовал ZipArchive, и измерял время, которое требуется для ZipArchive::addFile(), но не учёл ZipArchive::close(). А ведь именно в момент закрытия происходит запись в файл.
Именно от Firebug я узнал, что 10 секунд уходит именно на ожидание ответа от сервера. Подключение и получение данных занимает ничтожные микросекунды. Меня интересует, чем занимается сервер между установкой соединения и передачей данных.
@EnterSandman стоит microtime(true) в самой-самой первой строчке скрипта и в самой-самой последней. Разница между ними меньше секунды. Но, тем не менее, сервер думает гораздо дольше. И скорее уж sleep(random()), время ожидания колеблется))))