HTTP-запрос иногда не попадает на сервер.Зачем? - PullRequest
1 голос
/ 18 января 2010

Мы размещаем наш веб-сервис на выделенном сервере. Иногда (я бы сказал, 1 из 20) ответ не получен с сервера. Это делает браузер резервным с ошибкой тайм-аута.

Важная деталь: в этом случае Apache не регистрирует запрос.

На Apache нет нагрузки, осталось много свободной памяти и мощности процессора.

[ОБНОВЛЕНО] Я описал проблему с помощью утилиты tcpdump. Это хорошие и плохие сеансы, отслеживаемые tcpdump. Запрос одинаков в обоих экспериментах. Хорошо - сервер возвращает ответ. Плохо - нет ответа, ошибка времени ожидания.

Вы видите, почему проблема возникает из-за этих данных? Как я могу двигаться дальше, чтобы приблизиться к источнику ошибки?

Я заменил свой реальный IP-адрес на 123.45.67.890

---- Bad ----
12:23:36.366292 IP 123.45.67.890.61749 > myserver.superbservers.com.www: S 2125316338:2125316338(0) win 8192 <mss 1460,nop,wscale 2,nop,nop,sackOK>
12:23:39.362394 IP 123.45.67.890.61749 > myserver.superbservers.com.www: S 2125316338:2125316338(0) win 8192 <mss 1460,nop,wscale 2,nop,nop,sackOK>
12:23:45.365567 IP 123.45.67.890.61749 > myserver.superbservers.com.www: S 2125316338:2125316338(0) win 8192 <mss 1460,nop,nop,sackOK>
--------

---- Good ----
12:27:07.632229 IP 123.45.67.890.63914 > myserver.superbservers.com.www: S 3581365570:3581365570(0) win 8192 <mss 1460,nop,wscale 2,nop,nop,sackOK>
12:27:10.620946 IP 123.45.67.890.63914 > myserver.superbservers.com.www: S 3581365570:3581365570(0) win 8192 <mss 1460,nop,wscale 2,nop,nop,sackOK>
12:27:10.620969 IP myserver.superbservers.com.www > 123.45.67.890.63914: S 2654770980:2654770980(0) ack 3581365571 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 6>
12:27:10.838747 IP 123.45.67.890.63914 > myserver.superbservers.com.www: . ack 1 win 4380
12:27:10.957143 IP 123.45.67.890.63914 > myserver.superbservers.com.www: P 1:213(212) ack 1 win 4380
12:27:10.957152 IP myserver.superbservers.com.www > 123.45.67.890.63914: . ack 213 win 108
12:27:10.965543 IP myserver.superbservers.com.www > 123.45.67.890.63914: P 1:630(629) ack 213 win 108
12:27:10.965621 IP myserver.superbservers.com.www > 123.45.67.890.63914: F 630:630(0) ack 213 win 108
12:27:11.183540 IP 123.45.67.890.63914 > myserver.superbservers.com.www: . ack 631 win 4222
12:27:11.185657 IP 123.45.67.890.63914 > myserver.superbservers.com.www: F 213:213(0) ack 631 win 4222
12:27:11.185663 IP myserver.superbservers.com.www > 123.45.67.890.63914: . ack 214 win 108
--------

Хостинг: SuperbHosting ОС: Ubuntu

Ответы [ 3 ]

1 голос
/ 22 января 2010

Пакеты падают где-то вдоль пути. Интернет - это одна очень большая сеть, и каждая ссылка является потенциальной точкой, где пакеты могут быть отброшены. Tcpdump ничего вам не сообщает, за исключением того, что с сервера не приходит ответ.

Вы можете попробовать traceroute в UNIX или tracert в Windows, чтобы найти проблему с маршрутизацией. Вы также можете попробовать использовать размещенный инструмент, такой как http://network -tools.com / , чтобы увидеть, имеет ли он те же отбрасывания пакетов. Если этого не произойдет, то это будет указывать на проблему с исходной сетью, а не с сетью вашего веб-сервера.

1 голос
/ 18 января 2010

Я не думаю, что это тот вопрос, который вы задаете на SO или любом другом форуме - вы должны сначала задать этот вопрос себе.

Я бы предложил выполнить несколько тестов: 1) простойпинг в течение более длительного промежутка времени 2) запустите сниффер на вашем компьютере и на сервере - посмотрите, что там происходит.

В зависимости от результатов вы можете попробовать другие вещи.

0 голосов
/ 13 мая 2011

Я бы сказал, что это тот случай, когда вам нужно связаться с вашим хостинг-провайдером. Скорее всего, они попросят вас начать трассировку, но они должны быть в состоянии помочь вам в дальнейшем.

Как указывает hwatkins, это определенно проблема с сетью. К сожалению, «проблема с сетью» может означать стек TCP / IP внутри хоста вашего сервера, связь между вашим сервером и Интернетом или какой-либо другой магистральный компонент где-либо.

Это классический случай "вам нужно вызвать кавалерию". :)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...