У меня есть дата-центры облачного хранилища под управлением Ubuntu 16.04 lts и NextCloud / OwnCloud, которые не требуют круглосуточной работы и нуждаются в решениях по управлению питанием. Серверы Dell PowerEdge 1950 Gen II и Dell PowerEdge 2950 Gen II
Общая цель
Серверы облачных хранилищ Hibernate превышают время простоя, например, на 20 минут, и имеют такую де-спячку с WOL, чтобы сократить 6272,09 килограмма углекислого газа в год, что составляет 6680 кВт только от нашего центра обработки данных, что было достигнуто за счет подробного энергетического аудита.
Неэффективное решение попыталось
Пейзаж
Ландшафтные работы в помещениях / cron предлагают только запланированные запуск и выключение, что неэффективно для нашего достижимого.
PowerNap
powernap, кажется, подходит, но служба не запускается в Ubuntu 16.04
XXXXXXX ~ $ sudo service powernap status ● powernap.service - PowerNap Загружен: загружен (/lib/systemd/system/powernap.service; отключен; предустановка поставщика Активный: неактивный (мертвый)
ponwernap, похоже, использует устаревшие сервисы, такие как network.service, которые больше не доступны в Ubuntu 16.04
Достижимые цели
Wake on LAN (WOL)
Включить WOL легко, следуя ручной настройке по этой ссылке . или с использованием Powewake
Спящий режим сервера
До сих пор мне удавалось только переводить серверы в спящий режим, используя sudo systemctl hibernate
иsudo systemctl hibernate-sleep
- powernap - я подаю отчеты об ошибках, чтобы удалить истощенные зависимости
- systemctl - может привести куда-то
- pm-utils - может привести к чему-то тоже
Модернизация оборудования
Я обновил процессоры Dell 1950 Gen II dual Xeon E5335 с процессорами Xeon X5365. X5365 обеспечивает управление питанием и настройку управления питанием из BIOS. Честно говоря, я не был сторонником такого обновления, поскольку X5365 потребляет на 70 Вт на процессор больше, чем E5335, но сделал это в пользу тестирования гибернации.
Обновление 1
На данный момент pm-utils
это единственный способ отделиться от wol
суеты. В настоящее время я изучаю оптимальную конфигурацию для создания перемычки питания для настроек переменного тока для простоя.
Любые рекомендации, пожалуйста.
Ответы:
Я собрал небольшой скрипт, который вы можете запускать в cronjob каждые 15 минут или используя таймеры systemd:
Сначала он получает количество пользователей, вошедших в систему, и среднюю загрузку за последние 15 минут. Вы должны быть в состоянии узнать среднюю загрузку системы в режиме ожидания, используя
cat /proc/loadavg
. Третье число с плавающей запятой дает среднее значение за последние 15 минут. Это значение полезно для определения порога, установленного в переменнойAvgLoadThresh
. Это, безусловно, потребуется тюнинг. Другая вещь, которую вы можете определить, это то, сколько пользователей может войти в систему, и система все равно перейдет в спящий режим. Это установлено вActiveUsersThresh
. Просто чтобы убедиться, что система не всегда находится в спящем режиме, когда вы выполняете техническое обслуживание или что-то еще.Я думаю, можно было бы придумать более разумные проверки, так что воспринимайте это как первый простой подход. Например, я не знаю, какая база данных или веб-сервер используется в вашей собственной установке облака, но вы можете попытаться остановить их изящно перед командой hibernate, чтобы никто не потерял соединение.
источник