Tại sao lệnh mạng Ruby hoặc ADB của tôi rất chậm trong bộ chứa docker của tôi, nhưng tốt cho máy chủ?


0

Gần đây, hai lệnh không liên quan đã bắt đầu hoạt động rất kém trong một container Docker với mạng máy chủ:

Android adb mất khoảng 12 giây để kết nối với máy chủ adb của máy khác để sử dụng trình giả lập và Ruby mất hơn 2 phút để kết nối https: // rubygems, org .

Cả hai lệnh thường hoàn thành trong một phần của giây và vẫn thực hiện khi được thực thi trên máy chủ của bộ chứa hoặc khi được thực thi đối với các máy chủ đích khác nhau trên cùng một mạng.

Đặc biệt

ruby -ropen-uri -e 'p open("https://rubygems.org").read'|od -ta |head -2

mất 2m12 trên Ruby 2.1.2 và hết thời gian sau một phút với Ruby 2.5.1.

Câu trả lời:


0

Đối với các máy chủ nội bộ, ai đó đã phân bổ địa chỉ IPv6 cho họ, nhưng không bận tâm nói với máy về họ và ADB đã làm việc qua ba thời gian chờ IPv6 trước khi dùng thử IPv4.

Đối với các địa chỉ bên ngoài, cùng một người đã cho phép DNS trả về địa chỉ IPv6, mặc dù bộ định tuyến bên ngoài của chúng tôi đã bỏ các gói - nguyên tắc cơ bản tương tự với việc hết thời gian với IPv6 trước khi thử IPv4.

Đề xuất rõ ràng, tắt IPv6 cho máy chủ với các lệnh chậm không hoạt động vì không may Android ADB tìm thấy logic IPv6 trong HĐH và phát nổ khi HĐH nói rằng nó không khả dụng.


Đồng nghiệp của tôi vừa chỉ ra cho tôi rằng /etc/gai.conf có thể được sử dụng để ưu tiên cho IPv4.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.