SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
Управление ресурсами
в 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

Más contenido relacionado

Destacado

La Publicidad en internet
La Publicidad en internetLa Publicidad en internet
La Publicidad en internetNancyeveline
 
SearchAmbition
SearchAmbitionSearchAmbition
SearchAmbitiongubbar
 
Presentación dos blogues na educación
Presentación dos blogues na educaciónPresentación dos blogues na educación
Presentación dos blogues na educaciónarabesca2003
 
香港六合彩图库
香港六合彩图库香港六合彩图库
香港六合彩图库google0214
 
Yakutsk - A Cidade Mais Fria Do Mundo
Yakutsk - A Cidade Mais Fria Do MundoYakutsk - A Cidade Mais Fria Do Mundo
Yakutsk - A Cidade Mais Fria Do Mundocarolina
 
Hanukah
HanukahHanukah
HanukahTorah
 
University Technology Solution
University Technology SolutionUniversity Technology Solution
University Technology Solutionajwinn
 
Giles Yokel's Portfolio
Giles Yokel's PortfolioGiles Yokel's Portfolio
Giles Yokel's PortfolioGiles Yokel
 
Fam soroptimist 24 november 2012
Fam soroptimist 24 november 2012Fam soroptimist 24 november 2012
Fam soroptimist 24 november 2012Jeanet Bathoorn ✓
 
Bajkonur Vs Adsense
Bajkonur Vs AdsenseBajkonur Vs Adsense
Bajkonur Vs Adsensematus gajdos
 
La Constitución para Infantil
La Constitución para InfantilLa Constitución para Infantil
La Constitución para Infantiljimeno72
 
Tombe La Neige
Tombe La NeigeTombe La Neige
Tombe La NeigeTina21
 
02 Citrus Systems S Pb
02 Citrus Systems S Pb02 Citrus Systems S Pb
02 Citrus Systems S PbLiudmila Li
 

Destacado (20)

La Publicidad en internet
La Publicidad en internetLa Publicidad en internet
La Publicidad en internet
 
SearchAmbition
SearchAmbitionSearchAmbition
SearchAmbition
 
Fotos
FotosFotos
Fotos
 
Presentación dos blogues na educación
Presentación dos blogues na educaciónPresentación dos blogues na educación
Presentación dos blogues na educación
 
Heramientas Educativas
Heramientas EducativasHeramientas Educativas
Heramientas Educativas
 
香港六合彩图库
香港六合彩图库香港六合彩图库
香港六合彩图库
 
Yakutsk - A Cidade Mais Fria Do Mundo
Yakutsk - A Cidade Mais Fria Do MundoYakutsk - A Cidade Mais Fria Do Mundo
Yakutsk - A Cidade Mais Fria Do Mundo
 
Euro Geography
Euro GeographyEuro Geography
Euro Geography
 
Hanukah
HanukahHanukah
Hanukah
 
University Technology Solution
University Technology SolutionUniversity Technology Solution
University Technology Solution
 
Giles Yokel's Portfolio
Giles Yokel's PortfolioGiles Yokel's Portfolio
Giles Yokel's Portfolio
 
Fam soroptimist 24 november 2012
Fam soroptimist 24 november 2012Fam soroptimist 24 november 2012
Fam soroptimist 24 november 2012
 
Ani
AniAni
Ani
 
Ogretmenim
OgretmenimOgretmenim
Ogretmenim
 
Social media award 050
Social media award 050Social media award 050
Social media award 050
 
Bajkonur Vs Adsense
Bajkonur Vs AdsenseBajkonur Vs Adsense
Bajkonur Vs Adsense
 
La Constitución para Infantil
La Constitución para InfantilLa Constitución para Infantil
La Constitución para Infantil
 
Thanksgiving
ThanksgivingThanksgiving
Thanksgiving
 
Tombe La Neige
Tombe La NeigeTombe La Neige
Tombe La Neige
 
02 Citrus Systems S Pb
02 Citrus Systems S Pb02 Citrus Systems S Pb
02 Citrus Systems S Pb
 

Similar 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
 
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
 
11 Ban Net Scaler Xa
11 Ban Net Scaler Xa11 Ban Net Scaler Xa
11 Ban Net Scaler XaLiudmila Li
 
Обеспечение безопасности web приложений
Обеспечение безопасности web приложенийОбеспечение безопасности web приложений
Обеспечение безопасности web приложенийSQALab
 

Similar 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
 
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 – открытая платформа разработки ПО
 
11 Ban Net Scaler Xa
11 Ban Net Scaler Xa11 Ban Net Scaler Xa
11 Ban Net Scaler Xa
 
Обеспечение безопасности web приложений
Обеспечение безопасности web приложенийОбеспечение безопасности web приложений
Обеспечение безопасности web приложений
 

Más 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
 
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
 

Más de Liudmila Li (20)

10 Dg Xd
10 Dg Xd10 Dg Xd
10 Dg Xd
 
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 снг
 
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

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
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 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Último (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

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