iVasya
14.10.2013 - 12:16
В манах для новичков, которые я читал, нигде не говорилось о том, как работает php. Везде кратко описывают модель "пришел запрос на сервер, сервер вызвал пхп скрипт, который отработал и отдал ответ серверу, а сервер послал его клиенту (браузеру).
Но тут нету объяснения самого главного, а именно:
Римское один:
Вася зашел на ololo.php
Этот ololo.php отрабатывает дооолго. Вася сиди ждет, ждет...
А в это время (пока Васин запрос всё еще обрабатывается скриптом ololo.php) Петя тоже запросил ololo.php
И вот что происходит в этот момент? Нигде про это ни слова.
1) Петин запрос становится в очередь и ждет, пока закончит отрабатывать Васин запрос?
2) Петин запрос стартует в отдельном процессе (потоке? не знаю как тут правильно с терминологией) и соответсвенно Петя не ждет, пока отработает Васин запрос?
Римское два:
И на сколько я понимаю, ответ на мой вопрос может быть разным, в зависимости от того, синхронный или асинхронный (daemon io, например) код находится в ololo.php, да?
TranceIT
14.10.2013 - 12:37
Запросы не становятся в очередь, а обрабатываются параллельно, пока хватает оперативной памяти на сервере.
Для некоторых задач бывают исключения. Например запросы на запись в файл обычно ставят в очередь.
_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать. Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!
FatCat
14.10.2013 - 14:33
Цитата (TranceIT @ 14.10.2013 - 11:37) |
Запросы не становятся в очередь, а обрабатываются параллельно, пока хватает оперативной памяти на сервере |
Именно для того, чтобы памяти хватало всегда, мы и конфигурируем апач: сколько максимально может быть параллельных запросов (MaxClients); разрешена ли постановка в очередь, если количество запросов превысило допустимое (KeepAlive), максимальное количество запросов в очереди (MaxKeepAliveRequests), время ожидания в очереди (KeepAliveTimeout), максимальное время ожидания, после которого отдается 502-я страница (Timeout).
_____________
Бесплатному сыру в дырки не заглядывают...
Invis1ble
14.10.2013 - 14:39
Цитата (FatCat @ 14.10.2013 - 13:33) |
Цитата (TranceIT @ 14.10.2013 - 11:37) | Запросы не становятся в очередь, а обрабатываются параллельно, пока хватает оперативной памяти на сервере |
Именно для того, чтобы памяти хватало всегда, мы и конфигурируем апач: сколько максимально может быть параллельных запросов (MaxClients); разрешена ли постановка в очередь, если количество запросов превысило допустимое (KeepAlive), максимальное количество запросов в очереди (MaxKeepAliveRequests), время ожидания в очереди (KeepAliveTimeout), максимальное время ожидания, после которого отдается 502-я страница (Timeout).
|
KeepAlive вроде про другое (поддержка постоянных соединений), хотя утверждать не буду
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль