Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [apache-talk] php-cgi ??????????? ? ??????
Sergej Kandyla wrote:
>
> Господа, возник теоретический вопрос.
>
> Имем php в режиме cgi.
> При каждом запросе от клиента, апач поновой считывает с винта этот
> php-cgi бинарь в память, выполняет и закрывает.
>
> Мне утверждают, что апач считывает бинарь пхп в память при первом
> реквесте и дальше берет уже из кеша памяти, а не считывая его с винта.
>
> Как на самом деле происходит этот процесс? Может ли бинарь пхп
> прокешироваться в памяти и браться от туда. И завист ли это от того под
> каким пользователем идет запрос пхп(suexec).
>
> Буду благодарен за просвещение!(или за пинок на нужные линки ;)
> Спасибо!
Может зависеть от операционной системы. Операционки семейства BSD,
к примеру, вообще не "читают" бинарники с диска, они мапят файл бинарника
непосредственно в адресное пространство и запускают его оттуда.
Необходимые страницы кода (и только они) подкачиваются в физическую память
при первом обращении к ним системным пейджером и при достаточном количестве
памяти остаются в ней. При следующем (или даже одновременном) обращении
к коду эти страницы просто используются повторно, никакого повторного чтения
с носителя не будет. Всё это происходит для апача совершенно прозрачно,
он выполняет системый вызов execve(), всё остальное оптимизирует ядро.
|