Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] ap_rwrite() problems



On Wed, 8 Aug 2001, alex wrote:

> Я получаю данные для своего модуля от другой программы через SysV shared memory.
> В модуле с помощью ap_rwrite() отдаю все сразу клиенту, а затем отключаюсь от
> разделяемой памяти с помощью shmdt().
> 
> При этом запрос недообрабатывается, а клиент ждет-не дождется резудьтата и
> говорить server down.
> 
> Я проверил и выяснил, что, если между вызовом ap_rwrite() и shmdt() поставить
> задержку, то все работает. При размере выдаваемого контента около 30kB требуется
> ~50мс не меньше. Такое ощущение, будто ap_rwrite() работает не синхронно. Все это
> приводит к тормозам при большом количестве запросов и вообще как-то напрягает
> меня.

Сам ap_rwrite() работает синхронно. В том смысле, что всё что ему передали
он либо успешно всунет в ядро или в BUFF. Или вернёт ошибку.
Никаких partial writes. Если, конечно, сокет блокирующий.

А как делается вывод - сначала ap_send_http_header(), а потом
один ap_rwrite() ? 

Тогда ситуация такая - хедер весь уходит в BUFF, а после ap_rwrite()
два куска отдаются ядру через writev() (если writev() поддерживается,
что сейчас почти везде).

А вот, что ядро делает с тем буферами, которые ему передали через
writev() - не знаю. OS depended.

> Есть ли выход?

Наверное, не надо детачить. Зачем всё время атачить/детачить ?

Игорь Сысоев

=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.