Systemd рулит

Сабж.

Покупал тут для своего проекта виртуалочки на DO. Пытался уложиться в мелкий бюджет - 20$.

В итоге взял 3x512RAM + 1x1GRAM.

В таких условиях нужно ограничивать сервисы. Городить туда Mesos очень не хотелось. В итоге все нагрузочно протестировалось на локальной виртуалке, посчиталось на листочке, сколько какому сервису нужно по-минимуму памяти и проца, написаль шаблоны для юнитов systemd - теперь можно динамически менять ресурсы для каждого из сервисов. Будь то докер или нет. :)

Пример юнита /etc/systemd/system/some_service@.service:
[Unit]
Description=Some API
After=docker.service

[Service]
Type=simple
ExecStart=/usr/bin/docker run --name some_service%i some_service:latest --listen 0.0.0.0:15282 -d
ExecStop=/usr/bin/docker stop -t 0 some_service%i
ExecStopPost=/usr/bin/docker rm -f some_service%i
MemoryLimit=8M
Restart=always

[Install]
WantedBy=multi-user.target
Все, теперь после тестов известно какую нагрузку выдерживает сервис при таких ограничениях. Снимаем метрики, при достижении порога, просто стартуем еще один:
systemctl start some_service@2
А нагрузку отбалансировать можно nginx, тем более в нем уже давно есть стриминг и lua, так что haproxy больше ненужен.
Ответы на это сообщение: vit01 (2017-08-28 10:53:16)
Difrex (2017-08-28 09:00:22) [Ответить]
Предыдущее сообщение Следующее сообщение