Article ID: 115056, created on Nov 13, 2012, last review on Sep 16, 2014

  • Applies to:
  • Virtuozzo 6.0
  • Virtuozzo containers for Linux 4.7

Симптомы

Операции, связанные с резервным копированием, такие как создание, просмотр и восстановление резервных копий, создают очень высокую нагрузку на физическом сервере.

Причина

  1. В большинстве случаев такое поведение нормально.
  2. Иногда это может свидетельствовать о перерасходе процессорного времени на физическом сервере или о том, что сам сервер имеет очень низкий приоритет на составление графика выполнения своих процессов.

Решение

  1. Во время резервного копирования контейнера с помощью инструмента vzabackup или веб-интерфейса система использует модуль Acronis, чтобы получить данные из приватной области контейнера. Эта операция включает подготовку снимка памяти файловой системы и запуск средства отслеживания для сбора изменений в файлах во время резервного копирования.

    Это требует остановки процессов контейнера, чтобы избежать повреждения данных в резервной копии. Обычно этот этап занимает максимум несколько минут. В редких случаях - в зависимости от размера приватной области контейнера, размера раздела, где находится "/vz", объема свободной/доступной памяти в системе - этот этап может занять заметное количество времени (вплоть до часа, если контейнер очень большой).

    Процессы контейнера остановлены и не работают, они не обрабатывают никакие сетевые запросы, поэтому кажется, что службы отключены и не отвечают. Однако после завершения этого этапа все процессы будут возобновлены и продолжат работу без потери каких-либо данных.

    Технически процессы находятся в режиме сна, ожидая, пока ядро позволит им возобновить работу. Это состояния называется "uninterruptible sleep" (D-state). Оно учитывается при подсчете средней нагрузки вместе с состоянием "running state" (R-state). Таким образом, если в контейнере будет 300 процессов, то значения средней нагрузки для данного сервера вырастут до 300+.

    Во время создания резервной копии выполните на сервере следующую команду:

    ~# vzps axfww -o veid,pid,ppid,rsz,vsz,state,wchan=WIDE-WCHAN-COLUMN,cmd -E CTID
    

    где CTID - это идентификатор контейнера, который подвергается резервному копированию. Колонка wchan будет указывать на refrigerator, что означает, что этот контейнер находится в замороженном состоянии, чтобы обеспечить корректность резервной копии.

  2. Чтобы убедиться, что данная проблема не связана с перерасходом процессорного времени, проверьте приоритеты ЦП для физического сервера и контейнеров:

    ~# vzcpucheck -v
    

    Если на сервере имеет место перерасход ресурсов, вы увидите похожее сообщение:

    Предупреждение. hardware node is overcommited

    Установите более высокий приоритет ЦП для процессов физического сервера:

    ~# vzctl set 0 --save --cpuunits VALUE
    

    ПРИМЕЧАНИЕ. VALUE - это относительное число. Укажите его исходя их ваших потребностей и приоритетов других контейнеров.

    Более подробную информацию смотрите в этой статье:

    112588 Ограничения ЦП в Parallels Server Bare Metal 5 и Parallels Virtuozzo Containers для Linux

    Чтобы применить эти изменения на постоянной основе и сохранить заданный приоритет после перезагрузки, измените значение VE0CPUUNITS в /etc/vz/vz.conf:

    ~# grep CPU /etc/vz/vz.conf
    VE0CPUUNITS=25000
    

    Примечание. Значение CPUUNITS переводится в приоритет планировщика в CGroups по следующей формуле: schedprio = 500000 / CPUUNITS. Это определяет ограничения на минимальное и максимальное значение и определяет рекомендуемые значения CPUUNITS контейнеров в диапазоне от 1000 до 10000.

2897d76d56d2010f4e3a28f864d69223 d02f9caf3e11b191a38179103495106f e8e50b42231236b82df27684e7ec0beb 0c05f0c76fec3dd785e9feafce1099a9 0dd5b9380c7d4884d77587f3eb0fa8ef c62e8726973f80975db0531f1ed5c6a2

Email subscription for changes to this article
Save as PDF