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

Виртуальная машина Linux Azure отключается

Я создал виртуальную машину Linux в Azure, и на ней есть служба Postgres. Виртуальная машина работает нормально, но у меня возникают отключения.

Виртуальная машина отключает сеансы SSH - они просто прерываются - точно так же, как подключения к Postgres.

Postgres DB - это небольшая база данных для разработки, содержащая около 20 таблиц по 20-30 записей в каждой. ВМ делать нечего.

Раньше у меня не было такого поведения. Я несколько раз воссоздавал эту виртуальную машину с нуля, пробовал следующий для меня регион - Амстердам (находящийся в Германии), а также Дублин - в обоих регионах ситуация одинаковая.

В чем может быть проблема?

Отредактируйте / etc / sshd_config, который является файлом конфигурации на стороне сервера, добавьте эти две опции, если вы хотите предотвратить отключение всех ваших клиентов:

ClientAliveInterval 120

ClientAliveCountMax 720

Первый настраивает сервер на отправку нулевых пакетов клиентам каждые 120 секунд, а второй настраивает сервер на закрытие соединения, если клиент был неактивен в течение 720 интервалов, то есть 720 * 120 = 86400 секунд = 24 часа

На стороне клиента вы также можете включить

Хост *

ClientAliveInterval ...

ClientAliveCountMax ...

ServerAliveInterval ...

Вы можете посмотреть на https://unix.stackexchange.com/a/3027 для более подробного объяснения.

Другой случай может заключаться в том, что вам нужно настроить время простоя в Azure Load Balancer; вы можете прочитать больше на https://azure.microsoft.com/en-us/blog/new-configurable-idle-timeout-for-azure-load-balancer/

Примеры PowerShell

Настройте тайм-аут TCP для общедоступного IP-адреса уровня экземпляра на 15 минут.

Set-AzurePublicIP –PublicIPName webip –VM MyVM ldleTimeoutInMinutes 15

IdleTimeoutInMinutes не является обязательным. Если не задан, тайм-аут по умолчанию составляет 4 минуты. Теперь его значение можно установить от 4 до 30 минут.

Установка времени ожидания простоя при создании конечной точки Azure на виртуальной машине

Get-AzureVM -ServiceName «mySvc» -Name «MyVM1» | Добавить-> AzureEndpoint -Name "HttpIn" -Protocol "tcp" -PublicPort 80 -LocalPort 8080 -IdleTimeoutInMinutes 15 | Обновление-AzureVM