SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Управление ресурсами
в Linux и OpenVZ
Кирилл Колышкин
kir@openvz.org
http://openvz.org/
Повестка дня (aka Agenda)
    Зачем и какие ресурсы контролировать?
•
    Немного про контейнеры
•
    Существующие механизмы, их недостатки
•
    OpenVZ user beancounters, эксплойты
•
    CGroups и memory controller
•
    TODO
•
Повестка дня (aka Agenda)
    Зачем и какие ресурсы контролировать?
•
    Немного про контейнеры
•
    Существующие механизмы, их недостатки
•
    OpenVZ user beancounters, эксплойты
•
    CGroups и memory controller
•
    TODO
•
Ресурсы: зачем контролировать?
    Ресурсы не бесконечны
•
    Сервер один, задач и пользователей много
•
    Нужна статистика по использованию
•
    Нужна защита от DoS атак
•
    Нужно обеспечить качество сервиса
•
     – не только лимиты, но и гарантии
Ресурсы: что контролировать?
    Процессор
•
    Оперативная память и подкачка (swap)
•
    Дисковое пространство
•
    Дисковый ввод-вывод (I/O bandwidth)
•
    Сеть (сокеты, буфера, bandwidth и т.п.)
•
    Прочее
•
Процессор
  Процессорное время раздаётся процессам
     маленькими временными отрезками
• Приоритеты (веса)
• Ограничения сверху (лимиты)
• Привязка к конкретным процессорам
  (для многопроцессорных систем)
Оперативная память
• Память уровня пользователя
  – Виртуальная (VM) и физическая (RSS)
  – page cache
• Память ядра
  – Различные объекты / механизмы выделения
  – Особый случай: сетевые буфера
• Пространство подкачки (swap)
Диск
• Место
• Пропускная способность ввода-вывода
  – Чтение и запись
  – Отображения памяти (mmap)
  – Подкачка (swapin/swapout)
• Статистика ввода-вывода
Сеть
• Тут всё уже решено, говорить не о чем
  – ...более или менее
• TC: traffic control
  – Шейпинг, шедалинг, политики, ...
• iptables
Повестка дня (aka Agenda)
    Зачем и какие ресурсы контролировать?
•
    Немного про контейнеры
•
    Существующие механизмы, их недостатки
•
    OpenVZ user beancounters, эксплойты
•
    CGroups и memory controller
•
    TODO
•
Контейнеры — это ...
• такая легковесная виртуализация
• много контейнеров поверх единого ядра
• совсем как VM, только
  – одна ОС (хотя м.б. разные дистрибутивы)
  – «родная» производительность
  – высокая плотность размещения
  – динамическое управление ресурсами
Примеры контейнеров
    OpenVZ
•
    Parallels Virtuozzo Containers
•
    FreeBSD jails
•
    Linux-VServer
•
    Solaris Containers/Zones
•
    IBM AIX6 WPARs (Workload Partitions)
•
HP labs: OpenVZ vs Xen
• Накладные расходы Xen больше
• Накладными расходами OpenVZ
  зачастую можно пренебречь
• Под Xen работало 4 копии интернет-
  магазина и сервер уже был перегружен,
  под OpenVZ заработало 6 без перегрузки
Контейнеры: шаг в эволюции ОС
• Многозадачные ОС
• Многопользовательские ОС
• Многоконтейнерные ОС
Контейнеры
     и управление ресурсами
• Обеспечить мирное сосуществование
  множества контейнеров
• С точки зрения управления ресурсами,
  контейнеры — это просто группы
  процессов!
Повестка дня (aka Agenda)
    Зачем и какие ресурсы контролировать?
•
    Немного про контейнеры
•
    Существующие механизмы, их недостатки
•
    OpenVZ user beancounters, эксплойты
•
    CGroups и memory controller
•
    TODO
•
Процессор
• Каждый процесс имеет nice value,
  можно менять «по дороге» (nice/renice)
• Есть приоритет реального времени и
  отдельная очередь процессов для него
• Жёсткий лимит на процессорное время
  процесса (ulimit -c)
Место на диске
• Стандартные UNIX квоты очень хороши
  – квоты на точку монтирования
  – для пользователей и для групп
  – мягкие и жёсткие лимиты, грейс-период
  – можно узнать текущие значения
  – можно менять лимиты «по дороге»
  – приложения ожидают отказов (или должны)
Всё остальное: ulimit
• Реализован системными вызовами
  setrlimit() и getrlimit()
• Контролирует 16 разных параметров:
 core file size, data segment size, scheduling priority, file size, pending signals,
 max locked memory, max memory size, number of open files, pipe size,
 POSIX message queues, real-time priority, stack size, cpu time, max user processes,
 virtual memory, file locks

• Есть «мягкие» и «жёсткие» лимиты
ulimit
$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 38400
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
У ulimit много проблем
    Далеко не все ресурсы учитываются
•
    Нельзя посмотреть текущее использование
•
    Лимиты выставляются в текущем контексте
•
    Все лимиты выставляются на процесс
•
    – кроме NPROC, который на пользователя
• Лимиты на память в основном игнорируются
Повестка дня (aka Agenda)
    Зачем и какие ресурсы контролировать?
•
    Немного про контейнеры
•
    Существующие механизмы, их недостатки
•
    OpenVZ user beancounters, эксплойты
•
    CGroups и memory controller
•
    TODO
•
OpenVZ beancounters
    Контролирует группы процессов
•
    20 различных параметров
•
    Все можно менять во время выполнения
•
    Для каждого параметра можно видеть:
•
    – Текущее значение, пиковое значение
    – Счётчик отказов в выделении ресурса
UBC DEMO
cat /proc/user_beancounters
       uid resource            held   maxheld    barrier      limit   failcnt
      123: kmemsize         1736835   5504975    5505024    5872024        43
            lockedpages           0         0         32         32         0
            privvmpages        7550     29061     256000     270000         0
            shmpages             45        45       8192       8192         0
            dummy                 0         0          0          0         0
            numproc              27        28         75         75         0
            physpages          4167      5318          0 2147483647         0
            vmguarpages           0         0       6144 2147483647         0
            oomguarpages       4167      5318       6144 2147483647         0
            numtcpsock            4         5         80         80         0
            numflock              3         4        100        110         0
            numpty                2         2         16         16         0
            numsiginfo            0         2        256        256         0
            tcpsndbuf             0     29212     319488     524288         0
            tcprcvbuf             0      8552     319488     524288         0
            othersockbuf      26736     74712   15000000   16000000         0
            dgramrcvbuf           0         0     132096     132096         0
            numothersock         22        24         80         80         0
            dcachesize       130340   2097676    2097152    2195456         1
            numfile             616       656       4096       4096         0
            numiptent             0         0        128        128         0
Exploit 1: dcache eater
while(1) {
       mkdir(“somedir”, S_IRWXU);
       cd(“somedir”);
}
Exploit 2: vmarea eater
prot = PROT_READ;
for (start = 0; start < 10000; start +=
4096) {
   mmap((void *)start, 4096, prot,
        MAP_PRIVATE | MAP_ANON, 0, 0);
   prot = (prot == PROT_READ)?
          PROT_WRITE : PROT_READ;
}
for (i=1; i < 1024; i++)
     fork();
Другие механизмы OpenVZ
• “Честный” планировщик процессов
  – веса (приоритеты) и жёсткие лимиты
• Двухуровневая дисковая квота
  – I уровень: квоты на контейнер
  – II уровень: квоты внутри контейнера
• Приоритет дискового ввода-вывода
Повестка дня (aka Agenda)
    Зачем и какие ресурсы контролировать?
•
    Немного про контейнеры
•
    Существующие механизмы, их недостатки
•
    OpenVZ user beancounters, эксплойты
•
    CGroups и memory controller
•
    TODO
•
Control Groups aka CGroups
• Универсальный механизм для группировки
  процессов в иехархические группы
• Различные контроллеры ресурсов
• Можно иметь разные группы для разных
  контроллеров
• Управляется через файловую систему
Control Groups: управление
mkdir /dev/cgroup
mount -t cgroup none /dev/cgroup
mkdir /dev/cgroup/0
cd /dev/cgroup/0
echo $$ > tasks
cat /proc/self/cgroup
/etc/init.d/httpd start
Control Groups: история
• Вначале были cpusets от Bull/SGI
  – Для привязки групп задач к NUMA узлам
• Paul Menage из Google разделил cpusets
  на инфраструктуру (группировки) и
  контроллеры
  – сpusets теперь просто один из контроллеров
  – можно добавлять другие
Memory Controller
• Контролирует память пользователя и page
  cache
• Reclamation (утилизация? Переработка?)
  – как в try_to_free_pages()
• Out-of-memory killer
MemCtrl: интерфейс
# echo 4M > memory.limit_in_bytes
# cat memory.limit_in_bytes
4194304
# cat memory.usage_in_bytes
172032
# cat memory.max_usage_in_bytes
294912
# cat memory.failcnt
0
# cat memory.stat
....
Память пользователя
                                 Длина маппингов
                           RSS


            Адресное пространство процесса

Возвраща-      Неисполь-         Исполь-     Невозвра-
емые VMA       зуемые            зуемые      щаемые
(mmap'ed       страницы          страницы    VMA
files)                                       (private and
                                             anon)
Повестка дня (aka Agenda)
    Зачем и какие ресурсы контролировать?
•
    Немного про контейнеры
•
    Существующие механизмы, их недостатки
•
    OpenVZ user beancounters, эксплойты
•
    CGroups и memory controller
•
    TODO
•
Светлое будущее (TODO)
    Kernel memory controller (уже в -mm)
•
    Учёт длины маппингов
•
    «Честный» учёт разделяемых страниц
•
    Чекпоинтинг
•
    I/O controller
•
    Всё, что есть в OpenVZ, портировать в Linux
•
Вопросы?

        kir@openvz.org
  http://wiki.openvz.org/UBC
containers@linux-foundation.org

Mais conteúdo relacionado

Destaque

Xwi7xwa Library: Looking Forward
Xwi7xwa Library: Looking ForwardXwi7xwa Library: Looking Forward
Xwi7xwa Library: Looking ForwardUBC Library
 
10 Social Enterprises in Hong Kong
10 Social Enterprises in Hong Kong 10 Social Enterprises in Hong Kong
10 Social Enterprises in Hong Kong impact100EFG
 
Cvc2009 Moscow Repeater+Ica Fabian Kienle Final
Cvc2009 Moscow Repeater+Ica  Fabian Kienle FinalCvc2009 Moscow Repeater+Ica  Fabian Kienle Final
Cvc2009 Moscow Repeater+Ica Fabian Kienle FinalLiudmila Li
 
The UBC Library Digitization Centre: Our equipment and its uses.
The UBC Library Digitization Centre: Our equipment and its uses.The UBC Library Digitization Centre: Our equipment and its uses.
The UBC Library Digitization Centre: Our equipment and its uses.UBC Library
 
UBC Library Blog Squad Meeting
UBC Library Blog Squad MeetingUBC Library Blog Squad Meeting
UBC Library Blog Squad MeetingUBC Library
 
Ubc vancouver 2016_lib_qual_results
Ubc vancouver 2016_lib_qual_resultsUbc vancouver 2016_lib_qual_results
Ubc vancouver 2016_lib_qual_resultsUBC Library
 
Rising Stars of Research 2010 - Workshop: Becoming a successful graduate student
Rising Stars of Research 2010 - Workshop: Becoming a successful graduate studentRising Stars of Research 2010 - Workshop: Becoming a successful graduate student
Rising Stars of Research 2010 - Workshop: Becoming a successful graduate studentUniversity of British Columbia (UBC)
 
11 Ban Net Scaler Xa
11 Ban Net Scaler Xa11 Ban Net Scaler Xa
11 Ban Net Scaler XaLiudmila Li
 

Destaque (11)

Xwi7xwa Library: Looking Forward
Xwi7xwa Library: Looking ForwardXwi7xwa Library: Looking Forward
Xwi7xwa Library: Looking Forward
 
10 Social Enterprises in Hong Kong
10 Social Enterprises in Hong Kong 10 Social Enterprises in Hong Kong
10 Social Enterprises in Hong Kong
 
Cvc2009 Moscow Repeater+Ica Fabian Kienle Final
Cvc2009 Moscow Repeater+Ica  Fabian Kienle FinalCvc2009 Moscow Repeater+Ica  Fabian Kienle Final
Cvc2009 Moscow Repeater+Ica Fabian Kienle Final
 
The UBC Library Digitization Centre: Our equipment and its uses.
The UBC Library Digitization Centre: Our equipment and its uses.The UBC Library Digitization Centre: Our equipment and its uses.
The UBC Library Digitization Centre: Our equipment and its uses.
 
UBC Library Blog Squad Meeting
UBC Library Blog Squad MeetingUBC Library Blog Squad Meeting
UBC Library Blog Squad Meeting
 
Ubc vancouver 2016_lib_qual_results
Ubc vancouver 2016_lib_qual_resultsUbc vancouver 2016_lib_qual_results
Ubc vancouver 2016_lib_qual_results
 
Rising Stars of Research 2010 - Workshop: Becoming a successful graduate student
Rising Stars of Research 2010 - Workshop: Becoming a successful graduate studentRising Stars of Research 2010 - Workshop: Becoming a successful graduate student
Rising Stars of Research 2010 - Workshop: Becoming a successful graduate student
 
Library resources
Library resourcesLibrary resources
Library resources
 
Putting the kids first, Jan Pryor
Putting the kids first, Jan PryorPutting the kids first, Jan Pryor
Putting the kids first, Jan Pryor
 
11 Ban Net Scaler Xa
11 Ban Net Scaler Xa11 Ban Net Scaler Xa
11 Ban Net Scaler Xa
 
10 Dg Xd
10 Dg Xd10 Dg Xd
10 Dg Xd
 

Semelhante a Resource control in Linux and OpenVZ containers

11 Net Scaler Xa1
11 Net Scaler Xa111 Net Scaler Xa1
11 Net Scaler Xa1Liudmila Li
 
Intro To RDBMS And SQL Server 2005 - Svetlin Nakov
Intro To RDBMS And SQL Server 2005 - Svetlin NakovIntro To RDBMS And SQL Server 2005 - Svetlin Nakov
Intro To RDBMS And SQL Server 2005 - Svetlin NakovSvetlin Nakov
 
Владимир Пузанов - JailBreak: Разработка без лимитов
Владимир Пузанов - JailBreak: Разработка без лимитовВладимир Пузанов - JailBreak: Разработка без лимитов
Владимир Пузанов - JailBreak: Разработка без лимитовPavel Bashmakov
 
OO Design with C++: 1. Inheritance, part 1
OO Design with C++: 1. Inheritance, part 1OO Design with C++: 1. Inheritance, part 1
OO Design with C++: 1. Inheritance, part 1Dmitry Stillermann
 
vSphere Launch Business Keynote - Москва, 26 мая
vSphere Launch Business Keynote - Москва, 26 маяvSphere Launch Business Keynote - Москва, 26 мая
vSphere Launch Business Keynote - Москва, 26 маяAnton Antich
 
Delivery of media content of IIS Media Services
Delivery of media content of  IIS Media ServicesDelivery of media content of  IIS Media Services
Delivery of media content of IIS Media ServicesSQALab
 
Принцип Парето в стандартизации ИБ
Принцип Парето в стандартизации ИБПринцип Парето в стандартизации ИБ
Принцип Парето в стандартизации ИБAleksey Lukatskiy
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701Azerbaijan Laws
 
Что такое ASP.NET MVC?
Что такое ASP.NET MVC?Что такое ASP.NET MVC?
Что такое ASP.NET MVC?Dima Pasko
 
Как сделать контрибут в Ruby on Rails
Как сделать контрибут в Ruby on RailsКак сделать контрибут в Ruby on Rails
Как сделать контрибут в Ruby on RailsYaroslav Markin
 
Social Bookmarks, Folksonomies–Complex Networks
Social Bookmarks, Folksonomies–Complex NetworksSocial Bookmarks, Folksonomies–Complex Networks
Social Bookmarks, Folksonomies–Complex NetworksOleg Nazarevych
 
Taleb's Black Swan - SG 20090520
Taleb's Black Swan - SG 20090520Taleb's Black Swan - SG 20090520
Taleb's Black Swan - SG 20090520beewolf
 
Jazz – открытая платформа разработки ПО
Jazz – открытая платформа разработки ПОJazz – открытая платформа разработки ПО
Jazz – открытая платформа разработки ПОSQALab
 
Обеспечение безопасности web приложений
Обеспечение безопасности web приложенийОбеспечение безопасности web приложений
Обеспечение безопасности web приложенийSQALab
 
Minsk Web Appl 190509
Minsk Web Appl 190509Minsk Web Appl 190509
Minsk Web Appl 190509sef2009
 

Semelhante a Resource control in Linux and OpenVZ containers (20)

20070329 Phpconf2007 Training
20070329 Phpconf2007 Training20070329 Phpconf2007 Training
20070329 Phpconf2007 Training
 
11 Net Scaler Xa1
11 Net Scaler Xa111 Net Scaler Xa1
11 Net Scaler Xa1
 
Intro To RDBMS And SQL Server 2005 - Svetlin Nakov
Intro To RDBMS And SQL Server 2005 - Svetlin NakovIntro To RDBMS And SQL Server 2005 - Svetlin Nakov
Intro To RDBMS And SQL Server 2005 - Svetlin Nakov
 
Владимир Пузанов - JailBreak: Разработка без лимитов
Владимир Пузанов - JailBreak: Разработка без лимитовВладимир Пузанов - JailBreak: Разработка без лимитов
Владимир Пузанов - JailBreak: Разработка без лимитов
 
OpenSPARC
OpenSPARCOpenSPARC
OpenSPARC
 
OO Design with C++: 1. Inheritance, part 1
OO Design with C++: 1. Inheritance, part 1OO Design with C++: 1. Inheritance, part 1
OO Design with C++: 1. Inheritance, part 1
 
vSphere Launch Business Keynote - Москва, 26 мая
vSphere Launch Business Keynote - Москва, 26 маяvSphere Launch Business Keynote - Москва, 26 мая
vSphere Launch Business Keynote - Москва, 26 мая
 
Delivery of media content of IIS Media Services
Delivery of media content of  IIS Media ServicesDelivery of media content of  IIS Media Services
Delivery of media content of IIS Media Services
 
Принцип Парето в стандартизации ИБ
Принцип Парето в стандартизации ИБПринцип Парето в стандартизации ИБ
Принцип Парето в стандартизации ИБ
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701
 
Hasql in practice (Russian)
Hasql in practice (Russian)Hasql in practice (Russian)
Hasql in practice (Russian)
 
Что такое ASP.NET MVC?
Что такое ASP.NET MVC?Что такое ASP.NET MVC?
Что такое ASP.NET MVC?
 
Как сделать контрибут в Ruby on Rails
Как сделать контрибут в Ruby on RailsКак сделать контрибут в Ruby on Rails
Как сделать контрибут в Ruby on Rails
 
за Ruby
за Rubyза Ruby
за Ruby
 
Social Bookmarks, Folksonomies–Complex Networks
Social Bookmarks, Folksonomies–Complex NetworksSocial Bookmarks, Folksonomies–Complex Networks
Social Bookmarks, Folksonomies–Complex Networks
 
kakvo e sniffer
kakvo e snifferkakvo e sniffer
kakvo e sniffer
 
Taleb's Black Swan - SG 20090520
Taleb's Black Swan - SG 20090520Taleb's Black Swan - SG 20090520
Taleb's Black Swan - SG 20090520
 
Jazz – открытая платформа разработки ПО
Jazz – открытая платформа разработки ПОJazz – открытая платформа разработки ПО
Jazz – открытая платформа разработки ПО
 
Обеспечение безопасности web приложений
Обеспечение безопасности web приложенийОбеспечение безопасности web приложений
Обеспечение безопасности web приложений
 
Minsk Web Appl 190509
Minsk Web Appl 190509Minsk Web Appl 190509
Minsk Web Appl 190509
 

Mais de Liudmila Li

09 Ban Branch Repeater1
09 Ban Branch Repeater109 Ban Branch Repeater1
09 Ban Branch Repeater1Liudmila Li
 
07 Ibm System X And Blade Center For Citrix Forum(Ekatirenburg)
07 Ibm System X And Blade Center For Citrix Forum(Ekatirenburg)07 Ibm System X And Blade Center For Citrix Forum(Ekatirenburg)
07 Ibm System X And Blade Center For Citrix Forum(Ekatirenburg)Liudmila Li
 
04 Cvc2009 Yekaterinburg Xa5 Fp1 Sergey Kh
04 Cvc2009 Yekaterinburg Xa5 Fp1 Sergey Kh04 Cvc2009 Yekaterinburg Xa5 Fp1 Sergey Kh
04 Cvc2009 Yekaterinburg Xa5 Fp1 Sergey KhLiudmila Li
 
05 чэс описание решения V3
05  чэс описание решения V305  чэс описание решения V3
05 чэс описание решения V3Liudmila Li
 
01 Ap еKaterinburg
01 Ap еKaterinburg01 Ap еKaterinburg
01 Ap еKaterinburgLiudmila Li
 
09 Branch Repeater1
09 Branch Repeater109 Branch Repeater1
09 Branch Repeater1Liudmila Li
 
06 03 Gazprombank Success Story
06 03 Gazprombank Success Story06 03 Gazprombank Success Story
06 03 Gazprombank Success StoryLiudmila Li
 
06 02 C I S Citrix Final
06 02 C I S Citrix Final06 02 C I S Citrix Final
06 02 C I S Citrix FinalLiudmila Li
 
06 01 сертифицированные продукты
06 01 сертифицированные продукты06 01 сертифицированные продукты
06 01 сертифицированные продуктыLiudmila Li
 
05 Bykov Citrix Last
05 Bykov Citrix Last05 Bykov Citrix Last
05 Bykov Citrix LastLiudmila Li
 
04 Xa5 Fp1 Sergey Kh
04 Xa5 Fp1 Sergey Kh04 Xa5 Fp1 Sergey Kh
04 Xa5 Fp1 Sergey KhLiudmila Li
 
02 Citrus Systems S Pb
02 Citrus Systems S Pb02 Citrus Systems S Pb
02 Citrus Systems S PbLiudmila Li
 
01 Sk Cvc 2009 Key Note St P
01 Sk   Cvc 2009 Key Note St P01 Sk   Cvc 2009 Key Note St P
01 Sk Cvc 2009 Key Note St PLiudmila Li
 

Mais de Liudmila Li (20)

09 Ban Branch Repeater1
09 Ban Branch Repeater109 Ban Branch Repeater1
09 Ban Branch Repeater1
 
08 Xenserver Dg
08 Xenserver Dg08 Xenserver Dg
08 Xenserver Dg
 
07 Ibm System X And Blade Center For Citrix Forum(Ekatirenburg)
07 Ibm System X And Blade Center For Citrix Forum(Ekatirenburg)07 Ibm System X And Blade Center For Citrix Forum(Ekatirenburg)
07 Ibm System X And Blade Center For Citrix Forum(Ekatirenburg)
 
04 Cvc2009 Yekaterinburg Xa5 Fp1 Sergey Kh
04 Cvc2009 Yekaterinburg Xa5 Fp1 Sergey Kh04 Cvc2009 Yekaterinburg Xa5 Fp1 Sergey Kh
04 Cvc2009 Yekaterinburg Xa5 Fp1 Sergey Kh
 
06 [хост]
06 [хост]06 [хост]
06 [хост]
 
05 чэс описание решения V3
05  чэс описание решения V305  чэс описание решения V3
05 чэс описание решения V3
 
03 Bcc суэк
03 Bcc суэк03 Bcc суэк
03 Bcc суэк
 
01 Ap еKaterinburg
01 Ap еKaterinburg01 Ap еKaterinburg
01 Ap еKaterinburg
 
09 Branch Repeater1
09 Branch Repeater109 Branch Repeater1
09 Branch Repeater1
 
10 Xs Dg
10 Xs Dg10 Xs Dg
10 Xs Dg
 
08 Dg Xd
08 Dg Xd08 Dg Xd
08 Dg Xd
 
07 Ws08 R2 Virt
07 Ws08 R2 Virt07 Ws08 R2 Virt
07 Ws08 R2 Virt
 
06 03 Gazprombank Success Story
06 03 Gazprombank Success Story06 03 Gazprombank Success Story
06 03 Gazprombank Success Story
 
06 02 C I S Citrix Final
06 02 C I S Citrix Final06 02 C I S Citrix Final
06 02 C I S Citrix Final
 
06 01 сертифицированные продукты
06 01 сертифицированные продукты06 01 сертифицированные продукты
06 01 сертифицированные продукты
 
05 Bykov Citrix Last
05 Bykov Citrix Last05 Bykov Citrix Last
05 Bykov Citrix Last
 
04 Xa5 Fp1 Sergey Kh
04 Xa5 Fp1 Sergey Kh04 Xa5 Fp1 Sergey Kh
04 Xa5 Fp1 Sergey Kh
 
03 Bcc снг
03 Bcc снг03 Bcc снг
03 Bcc снг
 
02 Citrus Systems S Pb
02 Citrus Systems S Pb02 Citrus Systems S Pb
02 Citrus Systems S Pb
 
01 Sk Cvc 2009 Key Note St P
01 Sk   Cvc 2009 Key Note St P01 Sk   Cvc 2009 Key Note St P
01 Sk Cvc 2009 Key Note St P
 

Último

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

Último (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

Resource control in Linux and OpenVZ containers

  • 1. Управление ресурсами в Linux и OpenVZ Кирилл Колышкин kir@openvz.org http://openvz.org/
  • 2. Повестка дня (aka Agenda) Зачем и какие ресурсы контролировать? • Немного про контейнеры • Существующие механизмы, их недостатки • OpenVZ user beancounters, эксплойты • CGroups и memory controller • TODO •
  • 3. Повестка дня (aka Agenda) Зачем и какие ресурсы контролировать? • Немного про контейнеры • Существующие механизмы, их недостатки • OpenVZ user beancounters, эксплойты • CGroups и memory controller • TODO •
  • 4. Ресурсы: зачем контролировать? Ресурсы не бесконечны • Сервер один, задач и пользователей много • Нужна статистика по использованию • Нужна защита от DoS атак • Нужно обеспечить качество сервиса • – не только лимиты, но и гарантии
  • 5. Ресурсы: что контролировать? Процессор • Оперативная память и подкачка (swap) • Дисковое пространство • Дисковый ввод-вывод (I/O bandwidth) • Сеть (сокеты, буфера, bandwidth и т.п.) • Прочее •
  • 6. Процессор Процессорное время раздаётся процессам маленькими временными отрезками • Приоритеты (веса) • Ограничения сверху (лимиты) • Привязка к конкретным процессорам (для многопроцессорных систем)
  • 7. Оперативная память • Память уровня пользователя – Виртуальная (VM) и физическая (RSS) – page cache • Память ядра – Различные объекты / механизмы выделения – Особый случай: сетевые буфера • Пространство подкачки (swap)
  • 8. Диск • Место • Пропускная способность ввода-вывода – Чтение и запись – Отображения памяти (mmap) – Подкачка (swapin/swapout) • Статистика ввода-вывода
  • 9. Сеть • Тут всё уже решено, говорить не о чем – ...более или менее • TC: traffic control – Шейпинг, шедалинг, политики, ... • iptables
  • 10. Повестка дня (aka Agenda) Зачем и какие ресурсы контролировать? • Немного про контейнеры • Существующие механизмы, их недостатки • OpenVZ user beancounters, эксплойты • CGroups и memory controller • TODO •
  • 11. Контейнеры — это ... • такая легковесная виртуализация • много контейнеров поверх единого ядра • совсем как VM, только – одна ОС (хотя м.б. разные дистрибутивы) – «родная» производительность – высокая плотность размещения – динамическое управление ресурсами
  • 12. Примеры контейнеров OpenVZ • Parallels Virtuozzo Containers • FreeBSD jails • Linux-VServer • Solaris Containers/Zones • IBM AIX6 WPARs (Workload Partitions) •
  • 13. HP labs: OpenVZ vs Xen • Накладные расходы Xen больше • Накладными расходами OpenVZ зачастую можно пренебречь • Под Xen работало 4 копии интернет- магазина и сервер уже был перегружен, под OpenVZ заработало 6 без перегрузки
  • 14. Контейнеры: шаг в эволюции ОС • Многозадачные ОС • Многопользовательские ОС • Многоконтейнерные ОС
  • 15. Контейнеры и управление ресурсами • Обеспечить мирное сосуществование множества контейнеров • С точки зрения управления ресурсами, контейнеры — это просто группы процессов!
  • 16. Повестка дня (aka Agenda) Зачем и какие ресурсы контролировать? • Немного про контейнеры • Существующие механизмы, их недостатки • OpenVZ user beancounters, эксплойты • CGroups и memory controller • TODO •
  • 17. Процессор • Каждый процесс имеет nice value, можно менять «по дороге» (nice/renice) • Есть приоритет реального времени и отдельная очередь процессов для него • Жёсткий лимит на процессорное время процесса (ulimit -c)
  • 18. Место на диске • Стандартные UNIX квоты очень хороши – квоты на точку монтирования – для пользователей и для групп – мягкие и жёсткие лимиты, грейс-период – можно узнать текущие значения – можно менять лимиты «по дороге» – приложения ожидают отказов (или должны)
  • 19. Всё остальное: ulimit • Реализован системными вызовами setrlimit() и getrlimit() • Контролирует 16 разных параметров: core file size, data segment size, scheduling priority, file size, pending signals, max locked memory, max memory size, number of open files, pipe size, POSIX message queues, real-time priority, stack size, cpu time, max user processes, virtual memory, file locks • Есть «мягкие» и «жёсткие» лимиты
  • 20. ulimit $ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 38400 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 1024 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
  • 21. У ulimit много проблем Далеко не все ресурсы учитываются • Нельзя посмотреть текущее использование • Лимиты выставляются в текущем контексте • Все лимиты выставляются на процесс • – кроме NPROC, который на пользователя • Лимиты на память в основном игнорируются
  • 22. Повестка дня (aka Agenda) Зачем и какие ресурсы контролировать? • Немного про контейнеры • Существующие механизмы, их недостатки • OpenVZ user beancounters, эксплойты • CGroups и memory controller • TODO •
  • 23. OpenVZ beancounters Контролирует группы процессов • 20 различных параметров • Все можно менять во время выполнения • Для каждого параметра можно видеть: • – Текущее значение, пиковое значение – Счётчик отказов в выделении ресурса
  • 24. UBC DEMO cat /proc/user_beancounters uid resource held maxheld barrier limit failcnt 123: kmemsize 1736835 5504975 5505024 5872024 43 lockedpages 0 0 32 32 0 privvmpages 7550 29061 256000 270000 0 shmpages 45 45 8192 8192 0 dummy 0 0 0 0 0 numproc 27 28 75 75 0 physpages 4167 5318 0 2147483647 0 vmguarpages 0 0 6144 2147483647 0 oomguarpages 4167 5318 6144 2147483647 0 numtcpsock 4 5 80 80 0 numflock 3 4 100 110 0 numpty 2 2 16 16 0 numsiginfo 0 2 256 256 0 tcpsndbuf 0 29212 319488 524288 0 tcprcvbuf 0 8552 319488 524288 0 othersockbuf 26736 74712 15000000 16000000 0 dgramrcvbuf 0 0 132096 132096 0 numothersock 22 24 80 80 0 dcachesize 130340 2097676 2097152 2195456 1 numfile 616 656 4096 4096 0 numiptent 0 0 128 128 0
  • 25. Exploit 1: dcache eater while(1) { mkdir(“somedir”, S_IRWXU); cd(“somedir”); }
  • 26. Exploit 2: vmarea eater prot = PROT_READ; for (start = 0; start < 10000; start += 4096) { mmap((void *)start, 4096, prot, MAP_PRIVATE | MAP_ANON, 0, 0); prot = (prot == PROT_READ)? PROT_WRITE : PROT_READ; } for (i=1; i < 1024; i++) fork();
  • 27. Другие механизмы OpenVZ • “Честный” планировщик процессов – веса (приоритеты) и жёсткие лимиты • Двухуровневая дисковая квота – I уровень: квоты на контейнер – II уровень: квоты внутри контейнера • Приоритет дискового ввода-вывода
  • 28. Повестка дня (aka Agenda) Зачем и какие ресурсы контролировать? • Немного про контейнеры • Существующие механизмы, их недостатки • OpenVZ user beancounters, эксплойты • CGroups и memory controller • TODO •
  • 29. Control Groups aka CGroups • Универсальный механизм для группировки процессов в иехархические группы • Различные контроллеры ресурсов • Можно иметь разные группы для разных контроллеров • Управляется через файловую систему
  • 30. Control Groups: управление mkdir /dev/cgroup mount -t cgroup none /dev/cgroup mkdir /dev/cgroup/0 cd /dev/cgroup/0 echo $$ > tasks cat /proc/self/cgroup /etc/init.d/httpd start
  • 31. Control Groups: история • Вначале были cpusets от Bull/SGI – Для привязки групп задач к NUMA узлам • Paul Menage из Google разделил cpusets на инфраструктуру (группировки) и контроллеры – сpusets теперь просто один из контроллеров – можно добавлять другие
  • 32. Memory Controller • Контролирует память пользователя и page cache • Reclamation (утилизация? Переработка?) – как в try_to_free_pages() • Out-of-memory killer
  • 33. MemCtrl: интерфейс # echo 4M > memory.limit_in_bytes # cat memory.limit_in_bytes 4194304 # cat memory.usage_in_bytes 172032 # cat memory.max_usage_in_bytes 294912 # cat memory.failcnt 0 # cat memory.stat ....
  • 34. Память пользователя Длина маппингов RSS Адресное пространство процесса Возвраща- Неисполь- Исполь- Невозвра- емые VMA зуемые зуемые щаемые (mmap'ed страницы страницы VMA files) (private and anon)
  • 35. Повестка дня (aka Agenda) Зачем и какие ресурсы контролировать? • Немного про контейнеры • Существующие механизмы, их недостатки • OpenVZ user beancounters, эксплойты • CGroups и memory controller • TODO •
  • 36. Светлое будущее (TODO) Kernel memory controller (уже в -mm) • Учёт длины маппингов • «Честный» учёт разделяемых страниц • Чекпоинтинг • I/O controller • Всё, что есть в OpenVZ, портировать в Linux •
  • 37. Вопросы? kir@openvz.org http://wiki.openvz.org/UBC containers@linux-foundation.org