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 колышкин Rootconf 2009 Openvz

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
 
Jazz – открытая платформа разработки ПО
Jazz – открытая платформа разработки ПОJazz – открытая платформа разработки ПО
Jazz – открытая платформа разработки ПОSQALab
 
Minsk Web Appl 190509
Minsk Web Appl 190509Minsk Web Appl 190509
Minsk Web Appl 190509sef2009
 
Обеспечение безопасности web приложений
Обеспечение безопасности web приложенийОбеспечение безопасности web приложений
Обеспечение безопасности web приложенийSQALab
 
20080424 Cdb2008 Postgresql News Bartunov
20080424 Cdb2008 Postgresql News Bartunov20080424 Cdb2008 Postgresql News Bartunov
20080424 Cdb2008 Postgresql News BartunovNikolay Samokhvalov
 

Semelhante a колышкин Rootconf 2009 Openvz (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
 
Jazz – открытая платформа разработки ПО
Jazz – открытая платформа разработки ПОJazz – открытая платформа разработки ПО
Jazz – открытая платформа разработки ПО
 
Minsk Web Appl 190509
Minsk Web Appl 190509Minsk Web Appl 190509
Minsk Web Appl 190509
 
Обеспечение безопасности web приложений
Обеспечение безопасности web приложенийОбеспечение безопасности web приложений
Обеспечение безопасности web приложений
 
20080424 Cdb2008 Postgresql News Bartunov
20080424 Cdb2008 Postgresql News Bartunov20080424 Cdb2008 Postgresql News Bartunov
20080424 Cdb2008 Postgresql News Bartunov
 

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

Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Skynet Technologies
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityVictorSzoltysek
 
Navigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiNavigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiRaviKumarDaparthi
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...ScyllaDB
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfAnubhavMangla3
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfalexjohnson7307
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxFIDO Alliance
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxFIDO Alliance
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxFIDO Alliance
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxMasterG
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...ScyllaDB
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data SciencePaolo Missier
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireExakis Nelite
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)Wonjun Hwang
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTopCSSGallery
 

Último (20)

Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Navigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiNavigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi Daparthi
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 

колышкин Rootconf 2009 Openvz

  • 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