У меня возникают таймауты сети при попытке получить библиотеки из 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 в своей сети и десятке облачных конечных точек. Графики визуализации пути могут быть поучительными.