Недогрузка картинок + тормоза

Igor Sysoev is at rambler-co.ru
Tue Aug 22 15:24:54 MSD 2006


On Tue, 22 Aug 2006, Igor Sysoev wrote:

> On Tue, 22 Aug 2006, Igor Sysoev wrote:
>
>> On Tue, 22 Aug 2006, Mike Kolesnikov wrote:
>> 
>>> Igor Sysoev wrote:
>>>> On Mon, 21 Aug 2006, Mike Kolesnikov wrote:
>>>> 
>>>>> Что-нибудь удалось выяснить? А то похоже, что у меня те же проблемы: сам
>>>>> я не видел, но в логах редко, но встречаются ответы со статусом 400 и
>>>>> нулевой длиной, и в большинстве своем для очень маленьких картинок и
>>>>> иконок. Есть подозрение, что природа этих ошибок та же...
>>>>> Да, и соответствующих записей в error_log не обнаруживается.
>>>> 
>>>> Информация, почему случилось 400, пишется на уровне info.
>>> 
>>> Ага, вот что происходит в моем случае:
>>> 
>>> 2006/08/21 23:59:12 [info] 30300#0: *8772179 recv() failed (104:
>>> Connection reset by peer) while reading client request headers, client: 
>>> ....
>>> 2006/08/21 23:59:12 [info] 30300#0: *8772179 writev() failed (32: Broken
>>> pipe) while reading client request headers, client: ....
>>> 
>>> И все равно непонятно, почему в 90% случаев это происходит с маленькими
>>> картинками и мелкими .css (пока что максимальный размер файла, на
>>> котором происходит ошибка, равняется 15233 bytes).
>>> Иногда впрочем попадаются и ответы fastcgi backend.
>>> 
>>> Система RHEL4, kernel 2.6.9-42.ELsmp
>> 
>> В общем, это довольно странные ошибки.
>> 
>> 2006/08/21 23:59:12 [info] 30300#0: *8772179 recv() failed (104:
>> Connection reset by peer) while reading client request headers, client: 
>> ....
>> 
>> означает, что клиент послал запрос как минимум в двух и более пакетах
>> и в какой-то момент просто закрыл соединение с ошибкой. Это довольно
>> необычное поведение для браузера, скачивающего картинку.
>> 
>> Вторая строка
>> 
>> 2006/08/21 23:59:12 [info] 30300#0: *8772179 writev() failed (32: Broken
>> pipe) while reading client request headers, client: ....
>> 
>> ещё более необычна - какой может быть writev() при чтнии клиентского
>> запроса ?
>
> Ситуацию с writev() я воспроизвёл, буду смотреть.

Это ошибка оценки состояния соедиения. На обслуживание клиента
она никак не влияет - клиент сам закрыл соединение.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list