Назад | Перейти на главную страницу

Сетевые таймауты: как отлаживать?

У меня возникают таймауты сети при попытке получить библиотеки из https://rubygems.org и я хотел бы понять почему.

Это влияет только на запросы, сделанные из моей домашней сети. Если я подключу свой компьютер к другой сети, я могу без проблем получать данные с rubygems.

Это также кажется несколько специфичным для rubygems.org - если я сделаю те же запросы к другому серверу gem (https://gems.ruby-china.org), Я могу получить без тайм-аута.

Я смотрел запросы / ответы при получении драгоценных камней (бегу bundle --verbose) и увидел несколько успешных запросов, за которыми последовали некоторые ошибки ограничения скорости (429 Too Many Requests), затем еще несколько успехов, прежде чем он зависнет и в конечном итоге истечет.

Я побежал ss --tcp --processes в то же время и видел постоянно повторяющиеся SYN-SENT статусы, связанные с bundle обработать.

State      Recv-Q  Send-Q      Peer Address:Port
SYN-SENT   0       1       [2a04:4e42::514]:https  users:(("bundle",pid=17701,fd=8))
SYN-SENT   0       1       [2a04:4e42::514]:https  users:(("bundle",pid=17701,fd=8))
...

Поскольку я все еще знаком с сетями, я мог смотреть на это с неправильной точки зрения. Приветствуются любые указатели.

Наблюдать ограничения скорости, которые устанавливает rubygems.org. Подсчитайте запросы с захватом пакетов и прокси-серверами, посмотрите, есть ли у вас сломанное программное обеспечение или много пользователей за NAT, что превышает пределы.

Соберите данные о производительности, запросив что-нибудь базовое из API (возможно, https://rubygems.org/api/v1/downloads.json) на регулярной основе с множества разных хостов в Интернете.

Существуют службы, которые помогают в этом. Тысяча глаз есть бесплатный уровень, вы можете развернуть веб-тест их API в своей сети и десятке облачных конечных точек. Графики визуализации пути могут быть поучительными.