Как диагностировать странные network проблемы на AWS серваках?
Всем привет, не эксперт в AWS или нетворке, но наблюдаю странную ситуацию:
Используются М4 или М5 ЕС2 сервера с виндой, 10гбит проводимостью, несколькими нетворк интерфейсами, несколькими IP.
На серваках работает несколько нетворк интенсив апликах, которые подключаются к разным другим сервакам и сервисам по веб сокетам и другим протоколам. Обычно я вижу, что весь нетворк занимает где-то 30-50мбпс
Случаются такие ситуации, что одна из программ начинает испытывать серьезные нетворк лаги, например получает сообщения с задержкой или не получает их вовсе. Например:
10 аппов, все жрут по чуть чуть, один резко начинает жрать больше нетворка, в целом вся система жрет 100мбпс (обычно 30-50), 1-2 других аппа начинают страдать, помогает рестарт первого аппа c отключением некоторых соединений у этого аппа. Будет снижена нагрузка на нетворк и cpu.
Еще замечал, что похожее случается если один из аппов начинает жрать больше cpu, например 20-30% (всего система жрет 50% где-то в таком случае), тоже нетворк других аппов будет страдать и рестарт этого аппа может помочь.
Вообщем не понимаю почему использование 100 мбпс из 10гбпс может создавать такие проблемы.
Как такое может быть и где искать проблему?
С практически 99.9% вероятностью AWS тут совершенно ни при чем.
1. Смотрите сетевой стек на проблемных серверах(хоть отмониторьте его что ли, вы же смотрите в мониторинг?) Например, довольно часто встречающаяся проблема - незакрывающиеся tcp close_wait. Оптимизируйте настройки сети под ваше приложение.
2. мониторьте само приложение - что меняется в моменты залипаний. Попробуйте какой нибудь APM(NewRelic, Datadog и другие) если приложение позволит.
Вообще, если бы у вас были данные для анализа - можно было бы что-то предполагать.
Делайте мониторинг, если он еще не сделан. Смотрите в мониторинг.