Не удается установить memory.memsw.limit_in_bytes в cgroup на сервере Ubuntu с использованием cgm.

Вопрос или проблема

Я пытаюсь ограничить использование ресурсов для cgroup, не имея доступа к root.

Я могу установить memory.limit_in_bytes, используя cgm setvalue memory memory.limit_in_bytes 150G

Но я не могу установить memsw.limit_in_bytes таким же образом, независимо от того, больше ли memsw.limit_in_bytes, чем memory.limit_in_bytes (это необходимо, потому что опция memsw устанавливает максимальные пределы памяти + свопа)

Все, что я получаю: Ошибка org.freedesktop.DBus.Error.InvalidArgs: недействительный запрос

Есть идеи?

При использовании cgm имейте в виду, что cgm chown $controller $cgroup $uid $gid только изменяет владельца директории /sys/fs/cgroup/$controller/$cgroup и ее файлов cgroup.procs и tasks. Пользователи без привилегий, которые не могут записывать в эти файлы, получат сообщение вызов cgmanager_set_value_sync завершился неудачей: недействительный запрос, как вы обнаружили.

Еще одной возможностью является отсутствие файла, например, из-за отсутствия поддержки свопа в ядре. Если ваше ядро не настроено с CONFIG_MEMCG_SWAP_ENABLED, то вам нужно передать параметр swapaccount=1 в командной строке.

Ответ или решение

Ошибка при установке memsw.limit_in_bytes в cgroup на Ubuntu Server с использованием cgm

Если вы сталкиваетесь с проблемой при попытке установить memsw.limit_in_bytes в cgroup на сервере Ubuntu, это может быть связано с несколькими факторами, особенно если у вас нет доступа к правам суперпользователя. Давайте рассмотрим возможные причины возникновения ошибки и предложим пути ее решения.

1. Ограничения прав доступа

Как вы уже указали, использование команды cgm chown $controller $cgroup $uid $gid изменяет владельца директории cgroup, однако, это не дает прав на запись для всех файлов в данной директории. Чтобы действительно установить значение memsw.limit_in_bytes, вам необходимо убедиться, что у вас есть необходимые разрешения на запись в соответствующие файлы.

Если у вас нет достаточных прав, вы получите ошибку call to cgmanager_set_value_sync failed: invalid request. Важно убедиться, что пользователь, от имени которого выполняются команды, имеет все необходимые права на запись как в файлы cgroup.procs, так и в файлы настроек.

2. Поддержка свопа в ядре

Другая возможная причина заключается в том, что в вашем ядре может отсутствовать поддержка свопа для cgroup. Чтобы проверить это, выполните следующие шаги:

  • Убедитесь, что ваша система работает с включенной поддержкой swap accounting. Это можно сделать, проверив загрузку необходимых параметров ядра. Убедитесь, что в загрузочной конфигурации GRUB добавлен параметр swapaccount=1.

Для проверки можно воспользоваться командой:

cat /proc/cmdline

Если параметр swapaccount=1 отсутствует, добавьте его в конфигурацию GRUB:

  1. Откройте файл /etc/default/grub для редактирования.
  2. Найдите строку GRUB_CMDLINE_LINUX_DEFAULT и добавьте swapaccount=1 к существующим параметрам.
  3. Сохраните изменения и обновите конфигурацию загрузчика:
sudo update-grub
  1. Перезагрузите систему.

После перезагрузки убедитесь, что параметр установлен, снова проверив командой cat /proc/cmdline.

3. Недостаток Swap в системе

Также стоит отметить, что если у вас не настроен swap в системе, создание параметра memsw.limit_in_bytes может быть невозможным. Убедитесь, что у вас настроен и активирован swap.

Вы можете проверить наличие swap, используя команду:

swapon --show

Если нет активного swap, его можно создать, например, с помощью следующей последовательности команд:

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Не забудьте добавить строку в /etc/fstab, чтобы сделать изменения постоянными:

/swapfile none swap sw 0 0

Заключение

В случае, если вы по-прежнему получаете ошибку при установке memsw.limit_in_bytes, обратитесь к администратору системы с просьбой проверить правами доступа и настройками ядра. Вы также можете рассмотреть возможность получения временного доступа к правам суперпользователя, чтобы выполнить необходимые настройки на уровне системы.

Следуя вышеуказанным рекомендациям, вы сможете настроить параметры cgroup должным образом и управлять ресурсами системы более эффективно.

Оптимизация для SEO

Используйте ключевые слова, такие как memsw.limit_in_bytes, cgroup, Ubuntu Server, ошибка, и настройка ресурсов, в заголовках и содержании, чтобы улучшить видимость в поисковых системах.

Оцените материал
Добавить комментарий

Капча загружается...