@Bone

Нагруженный сервис в облаке. Как ограничить ресурсы для каждого отдельного пользователя?

Здравствуйте!
Вопрос вот в чем: я делаю сервис, в котором пользователи смогут создавать задачи, выполняющиеся в фоновом режиме. Задачи все примерно одного типа, но могут (и будут) сильно отличаться по затратам ресурсов, в зависимости от того, что захочет получить пользователь. Таким образом кто-то из пользователей может потреблять мало ресурсов, а кто-то крайне много, соответственно я вижу два решения:
1. У каждого пользователя стоит свой лимит на потребление CPU, RAM и дискового пространства. Этот вариант предпочтительнее. Ещё желательно, чтобы отдельным пользователям можно было безболезненно увеличивать лимиты.
2. Пользователь пополняет внутренний счет и оттуда списываются деньги в зависимости от потребленных ресурсов.

Всё это дело должно находиться в облаке, чтобы можно было легко масштабироваться под растущие потребности.

Собственно говоря, вот и вопрос. Есть ли какие-то стандартные практики, как управлять нагрузкой, создаваемой каждым отдельным пользователем в облаке? Что можно по этому поводу почитать, куда посмотреть?
Если это поможет, то сервис использует python, flask, celery, mysql.
  • Вопрос задан
  • 211 просмотров
Решения вопроса 1
@nikolayvaganov
Смотря какой доступ у Вас есть в облаке. Если рутовый, то cgroups/docker вполне нормально.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы