Я написал приложение C # для отправки данных POST в сценарий на моем общем веб-сервере Linux GoDaddy. Приложение выполняет 100 запросов в цикле, и БЕЗ ОТКАЗА первый запрос ВСЕГДА истекает. Остальные 99 добиваются успеха. Общий процесс занимает около 45 секунд. Веб-сервер находится в США, я в Сингапуре.
Небольшое устранение неполадок, и кажется, что запросы, которые сразу же следуют за запросом, успешны. Но если я буду делать один запрос каждые 5 минут, все они терпят неудачу.
Я запустил тот же сценарий на другом веб-сервере (не GoDaddy, расположенном в Сингапуре), и он не только успешно завершился все 100 раз, но и завершился примерно за половину времени (21 секунду). Разница во времени может быть связана с географической близостью.
Я провел трассировку маршрута на моем хосте GoDaddy, и каждый раз получаю вот что:
1 1 ms <1 ms <1 ms 10.148.67.2
2 <1 ms <1 ms <1 ms 10.148.64.3
3 <1 ms <1 ms <1 ms 10.148.65.5
4 <1 ms <1 ms <1 ms 10.66.3.29
5 <1 ms <1 ms <1 ms 10.33.1.6
6 <1 ms <1 ms <1 ms 10.33.0.6
7 1 ms 3 ms 1 ms 203.202.234.194
8 1 ms <1 ms 1 ms 10.33.8.130
9 2 ms 2 ms 2 ms vlan33-fe3-18.br01.sin02.pccwbtn.net [63.218.165
.181]
10 266 ms 228 ms 219 ms te8-3.ccr02.sjc03.atlas.cogentco.com [154.54.11.
161]
11 294 ms 208 ms 210 ms te2-2.ccr02.sjc01.atlas.cogentco.com [66.28.4.77
]
12 174 ms 174 ms 174 ms te0-3-0-2.ccr22.lax01.atlas.cogentco.com [154.54
.2.149]
13 185 ms 185 ms 186 ms te8-7.ccr01.phx02.atlas.cogentco.com [154.54.80.
206]
14 187 ms 187 ms 187 ms 38.104.116.166
15 * * * Request timed out.
16 * * * Request timed out.
17 * * * Request timed out.
18 * * * Request timed out.
Всегда терпит неудачу после отскока 38.104.116.166
.
Неудачные запросы возникают, когда запрос выполняется в Сингапуре или даже в США, поэтому это не может быть проблемой брандмауэра / маршрутизатора на стороне клиента.
Короче говоря, я полностью озадачен, обслуживание клиентов GoDaddy не самое лучшее, когда у вас есть общий хост с ними, и я не могу диагностировать, в чем проблема.
Является ли проблема на стороне GoDaddy, и я могу / должен оказать на них некоторое давление, чтобы понять это. Кроме того, почему только первый запрос не выполняется, а все последующие успешны? Я не очень хорошо разбираюсь во внутренней работе веб-сервера, но это что-то вроде того, что сервер переходит в «спящий», а первый запрос служит пингом, который его разбудит?
Общий это вероятно ваша проблема здесь. Я хотел бы знать, что еще происходит на этом сервере.
Если бы это был мой сервер, я бы запустил tcpdump
на нем, делая запрос, который истекает. Если бы это выглядело хорошо, я бы использовал strace
на Apache.
Это мог быть сетевым, но это менее вероятно.
Если вы не можете сделать ничего из этого, потому что это общий хост, возможно, пришло время сказать своему боссу, что вам нужен как минимум VPS.
Если у вас есть трафик на вашем сайте, я бы порекомендовал вам приобрести VPS или выделенный хостинг. Вы построите свой сервер и все устроите. :)