Когда я пытаюсь подключиться к серверу моего друга, соединение время от времени замедляется, иногда это 50 мс, 40 мс, 60 мс, но иногда это занимает 1, 3 или 7 секунд.
time curl -vv 'http://ipaddress/foo.json'
* Hostname was NOT found in DNS cache
* Trying ipaddress... --> SLOW AT THIS LINE !!!
* Connected to ipaddress (ipaddress) port 80 (#0)
> GET /foo.json HTTP/1.1
> User-Agent: curl/7.37.0
> Host: ipaddress
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Tue, 24 Jun 2014 02:51:45 GMT
* Server Apache/2.2.27 (Unix) mod_ssl/2.2.27 OpenSSL/1.0.1e-fips mod_bwlimited/1.4 is not blacklisted
< Server: Apache/2.2.27 (Unix) mod_ssl/2.2.27 OpenSSL/1.0.1e-fips mod_bwlimited/1.4
< Last-Modified: Tue, 24 Jun 2014 02:42:12 GMT
< ETag: "2e8109e-871-4fc8be82affe4"
< Accept-Ranges: bytes
< Content-Length: 2161
< Content-Type: application/json
Как я могу узнать, какая часть системы вызывает это?
Я пробовал отключить mod_bwlimited, но задержка все равно была.
Я пробовал использовать другой веб-сервер (monkey) на другом порту, это все равно произошло
сервер:
Linux bar 2.6.32-042stab090.3 #1 SMP Fri Jun 6 09:35:21 MSK 2014 x86_64 x86_64 x86_64 GNU/Linux
Также, когда я попытался изменить /etc/sysctl.conf
и использовать sysctl -p
using root
:
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
fs.file-max = 524288
Это показывает:
error: permission denied on key 'net.ipv4.tcp_tw_recycle'
error: permission denied on key 'net.ipv4.tcp_tw_reuse'
error: permission denied on key 'fs.file-max'
Может быть, эти значения были ограничены хостинговой компанией?
решение1
Если у вас наблюдаются задержки, используйте mtr
для проверки соединения с сервером.
mtr
это программа traceroute на стероидах. Она работает непрерывно traceroute
и генерирует значимую сетевую статистику, такую как % потерянных пакетов и несколько метрик RTT.
Статистика генерируется для каждого соединения между вами и выбранной конечной точкой. Любые соединения, которые показывают высокий Loss%
или Avg
могут быть источником сетевых проблем для вашего соединения.