У меня Ubuntu 14.04 работает на экземпляре вычислительного движка f1-micro. Раз в несколько недель сервер зависает из-за всплеска операций ввода-вывода.
Я не могу использовать SSH для подключения, когда это происходит.
Этот сервер зависал в определенное время каждый день, я обнаружил, что это автоматическое обновление apt.
Теперь конфигурация автообновления:
$/etc/apt/apt.conf.d# cat 10periodic
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "1";
$/etc/apt/apt.conf.d# cat 20auto-upgrades
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";
Есть ли способ отслеживать и определять причину всплеска ввода-вывода, даже если SSH не может быть подключен?
Cloud Console предлагает базовый мониторинг ввода-вывода для экземпляров GCE (вы уже видели это на своем снимке экрана). Однако также можно обеспечить более расширенный мониторинг с помощью Агент мониторинга Stackdriver, который представляет собой процесс на вашем компьютере, который собирает различные метрики и отправляет их в Stackdriver мониторинг.
Еще одно преимущество этого подхода заключается в том, что его можно использовать вместе с Оповещения Stackdriver чтобы вы знали, когда дела идут плохо с определенным показателем. Однако одним из недостатков может быть дополнительная нагрузка на ресурсы, связанная с сбором метрик агентом в вашей системе, особенно с учетом размера машины.
В качестве альтернативы вы можете использовать Пакет Sysstats для сбора показателей внутри машины через sar
(и родственники) с помощью простого CronJob.
Единственным недостатком является то, что метрическая информация по умолчанию сохраняется на том же компьютере, поэтому это может быть больше похоже на вскрытие данные, чем профилактический данные.
Наконец, не указано, что выполняется на вашем компьютере, но, если возможно, вы могли бы также рассмотреть другой размер машины для ваших рабочих нагрузок, не являющийся столь ограниченным в ресурсах.