SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Анализ	
  производительности	
  
сетевой	
  подсистемы	
  
микроядерного	
  окружения	
  
Genode	
  	
  
	
  
Сартаков	
  Василий,	
  Александр	
  Тарасиков	
  	
  
{sartakov,tarasikov}@ksyslabs.org	
  
Tools	
  &	
  Methods	
  of	
  Program	
  Analysis,	
  2013	
  
Agenda	
  
•  Intro	
  
•  Микроядра	
  и	
  их	
  окружения	
  
•  Пример	
  использования	
  –	
  Шлюз	
  
•  Анализ	
  производительности	
  
•  Заключение	
  
Операционные	
  Систем	
  
•  Управляют	
  ресурсами	
  
– Hardware	
  	
  
– Somware	
  
•  Предоставляет	
  интерфейс	
  к	
  ресурсам	
  
•  Обеспечивает	
  изоляцию	
  и	
  совместное	
  
использование	
  ресурсов	
  
Монолитно-­‐модульный	
  Linux	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
MC	
   bash	
   WM	
   apache	
  
FLV	
   PIDN	
  PID6	
   PID10	
  
HAL	
  
System-­‐Call	
  interface	
  
FS	
   IPC	
   NET	
   Drivers	
   Scheduler	
   Mem	
   Swap	
  
Микроядро	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
MC	
   bash	
   WM	
   apache	
  
Hardware	
  access	
   System-­‐Call	
  interface	
  
FS	
  
IPC	
  
NET	
   Drivers	
  
Scheduler	
  
Mem	
  Swap	
  
AS	
  Isola•on	
  
История	
  
•  Первое	
  поколение:	
  Mach	
  (CMU	
  1985-­‐1994,	
  
GNU/Mach,	
  OS	
  X)	
  
•  Второе	
  поколение:	
  Minix3	
  (VU	
  Amsterdam)	
  
•  Третье	
  поколение:	
  Семейство	
  L4	
  
– L4Ka::Pistachio	
  
– L4/Fiasco	
  
– Fiasco.OC	
  
– SeL4	
  
….	
  	
  
Fiasco.OC	
  
•  C++	
  
•  Object-­‐capability	
  uKernel	
  
– Everything	
  is	
  an	
  object	
  
– Capabili•es	
  (контролируемые	
  ссылки	
  на	
  
объекты)	
  
•  Fiasco.OC	
  это	
  не	
  операционная	
  система,	
  она	
  
требует	
  окружения:	
  
– L4Re	
  
– Genode	
  
L4Re	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
uCLibc	
  
Sigma0	
   Moe	
  
Ned	
  
Hardware	
  access	
   System-­‐Call	
  interface	
  
Hello	
  world	
  
IPC	
  
IPC	
  FW	
  
Scheduler	
  
Libstdc++	
  
AS	
  Isola•on	
  
Genode	
  
Компоненты	
  Окружений	
  
•  «Стандартные»	
  библиотеки	
  (uCLibc,	
  stdc++)	
  
•  Драйвера:	
  iPXE_kit,	
  dde_kit	
  
•  Паравиртуализированный	
  L4Linux	
  	
  
•  Компоненты	
  системы	
  (Ned,	
  IO,	
  Moe,	
  Sigma,	
  
init)	
  
•  Портированные	
  приложения	
  –	
  Qt,	
  LwIP	
  
Gateway	
  
Безопасная сеть
Шлюз
Интернет
Gateway::Монолит	
  
•  Уязвимость	
  в	
  драйвере:	
  Специально	
  
сформированный	
  пакет	
  -­‐>	
  срыв	
  -­‐>	
  доступ	
  к	
  
памяти	
  ядра	
  
•  «Умное»	
  устройство:	
  специально	
  
сформированный	
  пакет	
  -­‐>	
  активация	
  
закладки	
  в	
  сетевом	
  устройств	
  -­‐>	
  кража	
  
данных	
  из	
  памяти	
  
•  И	
  это	
  все	
  не	
  смешно	
  
Gateway	
  
Eth1	
  
Fiasco.OC	
  
DRV	
  
DRV	
  
Eth0	
  
vEth	
   vEth	
  
Firewall	
  
Tcp/IP	
   App	
  
Безопасная	
  среда	
  Внешняя	
  среда	
  
Gateway	
  
Eth1	
  
Fiasco.OC	
  
DRV	
  DRV	
  
Eth0	
  
vEth	
   vEth	
  
Firewall	
  
Tcp/IP	
  
App	
  
Безопасная	
  среда	
  
App	
  
Tcp/IP	
  
L4Linux	
   L4Linux	
  
DRV	
   DRV	
  
Внешняя	
  среда	
  
Упрощенная	
  схема	
  
L4Linux	
  
DRV	
  DRV	
  
L4Linux	
  
L4Linux	
  
vEth	
  DRV	
   TCP/IP	
  
APP1	
   netperf	
   APP2	
  
L4Linux	
  kernel	
  
Netperf:	
  PC	
  <-­‐>	
  SRV	
  
PC1	
   SRV	
  
Подключение	
  –	
  1gbps	
  
704/703	
  
Netperf:	
  PC	
  <-­‐>	
  Linux	
  PC	
  <-­‐>SRV	
  
PC1	
   SRV	
  
Linux	
  
700/700	
  
DRV	
  DRV	
   TCP/IP	
  ip	
  route	
  
PC	
  <-­‐>	
  DRV<-­‐>	
  L4LInux	
  <-­‐>	
  L4Linux	
  <-­‐>	
  DRV	
  <-­‐>	
  SRV	
  
L4Linux	
  
DRV	
  DRV	
  
L4Linux	
  
PC1	
   SRV	
  
64	
  
Nic	
  Bridge	
  
185	
  
~320	
  
Первый	
  Анализ	
  
•  Отказ	
  от	
  Nic	
  Bridge.	
  Вместо	
  него	
  кольцевой	
  
буффер	
  с	
  передачей	
  сигналов	
  напрямую	
  
между	
  L4Linux.	
  
•  Одна	
  и	
  та	
  же	
  память	
  используется	
  в	
  
DDE_iPXE	
  для	
  приема	
  и	
  отправки	
  данных.	
  
PC	
  <-­‐>	
  DRV<-­‐>	
  L4LInux	
  <-­‐>	
  L4Linux	
  <-­‐>	
  DRV	
  <-­‐>	
  SRV	
  
L4Linux	
  
DRV	
  DRV	
  
L4Linux	
  
PC1	
   SRV	
  
402/89	
  
~700	
  
Профилирование	
  
•  Два	
  подхода	
  к	
  профилированию:	
  
– Oprofile,	
  Профилирование	
  на	
  уровне	
  ядра.	
  	
  
(kernel	
  +	
  userspace)	
  	
  
– Gprof,	
  профилирование	
  программ	
  (gcc	
  +	
  lib)	
  
•  Первый	
  затратный	
  по	
  реализации,	
  
бесполезен	
  (как	
  оказалось	
  в	
  будущем)	
  
•  Требует	
  POSIX	
  совместимости	
  
Профилирование	
  
•  Профилировщик	
  как	
  внутрисистемный	
  
(внутриядерный)	
  отладчик	
  –	
  измерение	
  частоты	
  
(количества)	
  и	
  продолжительности	
  	
  
•  Констатировал	
  частое	
  нахождения	
  в	
  функциях	
  
связанных	
  с	
  системными	
  вызовами	
  
•  Использование	
  памяти	
  ядра,	
  поскольку	
  
«микроядерный»	
  дизайн	
  профилировщика	
  
негативно	
  сказывался	
  на	
  производительности	
  
системы	
  –	
  вносил	
  большую	
  погрешность	
  	
  
•  Разработали	
  профилировщик	
  для	
  окружения:	
  
–  Линкуется	
  на	
  старте	
  
–  Сохраняет	
  данные	
  в	
  памяти,	
  выгружает	
  по	
  h£p,	
  
поскольку	
  в	
  системе	
  отсутствует	
  носитель	
  
Результаты	
  (в	
  тиках	
  процессора)	
  
Процедура	
   Тики	
  процессора	
   модуль	
  
dde_kit_sem_up	
  	
   13	
   lib/nic.c	
  [dde_ipxe]	
  
dde_kit_sem_down	
  	
   59	
   lib/nic.c	
  [dde_ipxe]	
  
memcpy	
  	
   23	
   lib/nic.c	
  [dde_ipxe]	
  
get_acked	
  	
   46	
   nic/component.h	
  [Nic]	
  
submit_packet	
  	
   190-­‐160k	
   nic/component.h	
  [Nic]	
  
packed_descriptor	
  	
   10	
   nic/component.h	
  [Nic]	
  
get_packet	
   8	
   lib/l4lx/genode_net.cc	
  [L4Linux]	
  
acknowledge_packet	
   254	
   lib/l4lx/genode_net.cc	
  [L4Linux]	
  
submit_packet	
   65	
   lib/l4lx/genode_net.cc	
  [L4Linux]	
  
memcpy	
   25	
   lib/l4lx/genode_net.cc	
  [L4Linux]	
  
Анализ	
  
•  submit_packet	
  -­‐	
  помещает	
  пакет	
  в	
  
циклический	
  буфер	
  и	
  делает	
  IPC	
  запрос	
  к	
  
другому	
  процессу.	
  
•  Спародически	
  может	
  увеличить	
  время	
  
выполнения	
  до	
  190K	
  
•  Возможные	
  причины	
  –	
  реализация	
  
драйвера,	
  управления	
  памятью,	
  
управление	
  процессами.	
  	
  
Причины::Драйвера	
  
•  Драйвера:	
  
– Не	
  поддерживает	
  MSI-­‐X,	
  как	
  следствие	
  
приходится	
  использовать	
  прерывание	
  PCIe,	
  
возникает	
  конкуренция	
  с	
  другими	
  
устройствами	
  	
  
– Не	
  объясняет	
  задержки	
  в	
  выполнении	
  
Причины::Память	
  
•  Netperf	
  последовательно	
  увеличивает	
  
размер	
  пакетов.	
  Чем	
  дольше	
  работает	
  тест,	
  
тем	
  больший	
  разброс	
  значений	
  в	
  
submit_packet.	
  	
  
•  Гипотеза:	
  
– Медленная	
  аллокация	
  памяти,	
  зависящая	
  от	
  
размеров	
  региона.	
  	
  
Genode::allocator	
  
•  SLAB	
  Allocator.	
  	
  
–  Список	
  регионов	
  по	
  1KB,	
  2KB,16KB	
  
•  Кольцевой	
  буфер	
  между	
  сервисами:	
  	
  
–  При	
  освобождении	
  памяти	
  одним	
  регионом	
  
происходит	
  добавление	
  его	
  в	
  список	
  свободных	
  
регионов,	
  в	
  частности	
  доступный	
  второму	
  сервису.	
  	
  	
  
•  При	
  передаче	
  данных	
  от	
  одного	
  сервиса	
  
другому	
  происходит	
  unmap	
  
•  И	
  в	
  этот	
  момент	
  показалось	
  что	
  проблема	
  
найдена	
  
Но	
  нет	
  	
  
•  Причиной	
  всему	
  оказались	
  блокировки.	
  
Genode::mutex	
  
•  SMP	
  реализация	
  отличается	
  от	
  реализации	
  
для	
  однопроцессорной	
  системы	
  
•  mutex	
  +	
  messaging	
  =	
  slow	
  	
  
•  	
  idle	
  30%	
  (?!?!)	
  
Решения	
  
•  Хорошие	
  решения:	
  
– Уменьшить	
  количество	
  threads	
  в	
  драйверах	
  	
  
– Lockless	
  environment	
  (WIP)	
  
•  Вместо	
  блокировок	
  –	
  использование	
  задержек	
  по	
  
времени	
  на	
  подобии	
  Read-­‐Copy-­‐Update	
  
	
  
•  Плохие	
  решения:	
  
•  Dataspace	
  (shared	
  memory)	
  
•  Прямой	
  доступ	
  L4Linux	
  к	
  устройству	
  
Lockless	
  L4Re	
  
L4Linux	
  
DRV	
  DRV	
  
L4Linux	
  
PC1	
   SRV	
  
880	
  
~2Gb	
  
910	
  
Выводы	
  
•  Сами	
  по-­‐себе	
  переключения	
  контекста,	
  
количество	
  которых	
  значительно	
  в	
  сравнении	
  с	
  
монолитно-­‐модульными	
  ядрами,	
  не	
  всегда	
  
приводят	
  к	
  деградации	
  производительности.	
  	
  
•  L4	
  окружения	
  требуют	
  адаптацию	
  прикладного	
  
ПО,	
  не	
  смотря	
  на	
  наличие	
  DDE	
  китов	
  	
  
•  Нет	
  предела	
  совершенству	
  	
  
Future	
  work	
  	
  
•  Lockless	
  окружение	
  
•  Custom	
  userspace	
  tcp/ip	
  stack,	
  virtual	
  switch,	
  
driver	
  kit	
  
Спасибо.	
  

Mais conteúdo relacionado

Mais procurados

Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Ontico
 
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Ontico
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...odnoklassniki.ru
 
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)Ontico
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Ontico
 
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)Ontico
 
Инкапсуляция сетевой топологии при помощи ПКС
Инкапсуляция сетевой топологии при помощи ПКСИнкапсуляция сетевой топологии при помощи ПКС
Инкапсуляция сетевой топологии при помощи ПКСARCCN
 
Тестирование QoS на экспериментальном стенде
Тестирование QoS на экспериментальном стендеТестирование QoS на экспериментальном стенде
Тестирование QoS на экспериментальном стендеARCCN
 
Использование Hadoop в Badoo, Валерий Старынин (Badoo)
Использование Hadoop в Badoo, Валерий Старынин (Badoo)Использование Hadoop в Badoo, Валерий Старынин (Badoo)
Использование Hadoop в Badoo, Валерий Старынин (Badoo)Ontico
 
Whats new in_mikro_tik_ros_6_(megis,_mosсow_2013)_(russian_translate_by_white...
Whats new in_mikro_tik_ros_6_(megis,_mosсow_2013)_(russian_translate_by_white...Whats new in_mikro_tik_ros_6_(megis,_mosсow_2013)_(russian_translate_by_white...
Whats new in_mikro_tik_ros_6_(megis,_mosсow_2013)_(russian_translate_by_white...sami_11
 
Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 3Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 3Aleksey Bragin
 
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Ontico
 
ReactOS Tech Talk (ВМК МГУ, ИСП РАН)
ReactOS Tech Talk (ВМК МГУ, ИСП РАН)ReactOS Tech Talk (ВМК МГУ, ИСП РАН)
ReactOS Tech Talk (ВМК МГУ, ИСП РАН)Aleksey Bragin
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиIBS
 
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан КупреевCRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан КупреевOpenVZ
 
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018GigaCloud
 
High performance computing принципы проектирования сети
High performance computing принципы проектирования сетиHigh performance computing принципы проектирования сети
High performance computing принципы проектирования сетиMUK Extreme
 
Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Aleksey Bragin
 
Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Ontico
 

Mais procurados (20)

Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
 
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
 
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
 
Инкапсуляция сетевой топологии при помощи ПКС
Инкапсуляция сетевой топологии при помощи ПКСИнкапсуляция сетевой топологии при помощи ПКС
Инкапсуляция сетевой топологии при помощи ПКС
 
Серверы стандартной архитектуры
Серверы стандартной архитектурыСерверы стандартной архитектуры
Серверы стандартной архитектуры
 
Тестирование QoS на экспериментальном стенде
Тестирование QoS на экспериментальном стендеТестирование QoS на экспериментальном стенде
Тестирование QoS на экспериментальном стенде
 
Использование Hadoop в Badoo, Валерий Старынин (Badoo)
Использование Hadoop в Badoo, Валерий Старынин (Badoo)Использование Hadoop в Badoo, Валерий Старынин (Badoo)
Использование Hadoop в Badoo, Валерий Старынин (Badoo)
 
Whats new in_mikro_tik_ros_6_(megis,_mosсow_2013)_(russian_translate_by_white...
Whats new in_mikro_tik_ros_6_(megis,_mosсow_2013)_(russian_translate_by_white...Whats new in_mikro_tik_ros_6_(megis,_mosсow_2013)_(russian_translate_by_white...
Whats new in_mikro_tik_ros_6_(megis,_mosсow_2013)_(russian_translate_by_white...
 
Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 3Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 3
 
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
 
ReactOS Tech Talk (ВМК МГУ, ИСП РАН)
ReactOS Tech Talk (ВМК МГУ, ИСП РАН)ReactOS Tech Talk (ВМК МГУ, ИСП РАН)
ReactOS Tech Talk (ВМК МГУ, ИСП РАН)
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан КупреевCRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
 
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
 
High performance computing принципы проектирования сети
High performance computing принципы проектирования сетиHigh performance computing принципы проектирования сети
High performance computing принципы проектирования сети
 
Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4
 
Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.
 

Destaque

TMPA-2013 Conference Proceedings
TMPA-2013 Conference ProceedingsTMPA-2013 Conference Proceedings
TMPA-2013 Conference ProceedingsIosif Itkin
 
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...Iosif Itkin
 
TMPA-2015: Lexical analysis of dynamically formed string expressions
TMPA-2015: Lexical analysis of dynamically formed string expressionsTMPA-2015: Lexical analysis of dynamically formed string expressions
TMPA-2015: Lexical analysis of dynamically formed string expressionsIosif Itkin
 
TMPA-2015: Software Engineering Education: The Messir Approach
TMPA-2015: Software Engineering Education: The Messir ApproachTMPA-2015: Software Engineering Education: The Messir Approach
TMPA-2015: Software Engineering Education: The Messir ApproachIosif Itkin
 
TMPA-2015: ClearTH: a Tool for Automated Testing of Post Trade Systems
TMPA-2015: ClearTH: a Tool for Automated Testing of Post Trade SystemsTMPA-2015: ClearTH: a Tool for Automated Testing of Post Trade Systems
TMPA-2015: ClearTH: a Tool for Automated Testing of Post Trade SystemsIosif Itkin
 
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentTMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentIosif Itkin
 
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...Iosif Itkin
 
TMPA-2015: Generation of Test Scenarios for Non Deterministic and Concurrent ...
TMPA-2015: Generation of Test Scenarios for Non Deterministic and Concurrent ...TMPA-2015: Generation of Test Scenarios for Non Deterministic and Concurrent ...
TMPA-2015: Generation of Test Scenarios for Non Deterministic and Concurrent ...Iosif Itkin
 
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesTMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesIosif Itkin
 
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...Iosif Itkin
 
TMPA-2015: Towards a Usable Defect Prediction Tool: Crossbreeding Machine Lea...
TMPA-2015: Towards a Usable Defect Prediction Tool: Crossbreeding Machine Lea...TMPA-2015: Towards a Usable Defect Prediction Tool: Crossbreeding Machine Lea...
TMPA-2015: Towards a Usable Defect Prediction Tool: Crossbreeding Machine Lea...Iosif Itkin
 
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...Iosif Itkin
 
TMPA-2015: Implementing the MetaVCG Approach in the C-light System
TMPA-2015: Implementing the MetaVCG Approach in the C-light SystemTMPA-2015: Implementing the MetaVCG Approach in the C-light System
TMPA-2015: Implementing the MetaVCG Approach in the C-light SystemIosif Itkin
 
TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...
TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...
TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...Iosif Itkin
 
TMPA-2015: The Verification of Functional Programs by Applying Statechart Dia...
TMPA-2015: The Verification of Functional Programs by Applying Statechart Dia...TMPA-2015: The Verification of Functional Programs by Applying Statechart Dia...
TMPA-2015: The Verification of Functional Programs by Applying Statechart Dia...Iosif Itkin
 
TMPA-2015: A Need To Specify and Verify Standard Functions
TMPA-2015: A Need To Specify and Verify Standard FunctionsTMPA-2015: A Need To Specify and Verify Standard Functions
TMPA-2015: A Need To Specify and Verify Standard FunctionsIosif Itkin
 
TMPA-2015: Formal Methods in Robotics
TMPA-2015: Formal Methods in RoboticsTMPA-2015: Formal Methods in Robotics
TMPA-2015: Formal Methods in RoboticsIosif Itkin
 
TMPA-2015: Automated process of creating test scenarios for financial protoco...
TMPA-2015: Automated process of creating test scenarios for financial protoco...TMPA-2015: Automated process of creating test scenarios for financial protoco...
TMPA-2015: Automated process of creating test scenarios for financial protoco...Iosif Itkin
 
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...Iosif Itkin
 
TMPA-2015: FPGA-Based Low Latency Sponsored Access
TMPA-2015: FPGA-Based Low Latency Sponsored AccessTMPA-2015: FPGA-Based Low Latency Sponsored Access
TMPA-2015: FPGA-Based Low Latency Sponsored AccessIosif Itkin
 

Destaque (20)

TMPA-2013 Conference Proceedings
TMPA-2013 Conference ProceedingsTMPA-2013 Conference Proceedings
TMPA-2013 Conference Proceedings
 
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
 
TMPA-2015: Lexical analysis of dynamically formed string expressions
TMPA-2015: Lexical analysis of dynamically formed string expressionsTMPA-2015: Lexical analysis of dynamically formed string expressions
TMPA-2015: Lexical analysis of dynamically formed string expressions
 
TMPA-2015: Software Engineering Education: The Messir Approach
TMPA-2015: Software Engineering Education: The Messir ApproachTMPA-2015: Software Engineering Education: The Messir Approach
TMPA-2015: Software Engineering Education: The Messir Approach
 
TMPA-2015: ClearTH: a Tool for Automated Testing of Post Trade Systems
TMPA-2015: ClearTH: a Tool for Automated Testing of Post Trade SystemsTMPA-2015: ClearTH: a Tool for Automated Testing of Post Trade Systems
TMPA-2015: ClearTH: a Tool for Automated Testing of Post Trade Systems
 
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentTMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
 
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...
 
TMPA-2015: Generation of Test Scenarios for Non Deterministic and Concurrent ...
TMPA-2015: Generation of Test Scenarios for Non Deterministic and Concurrent ...TMPA-2015: Generation of Test Scenarios for Non Deterministic and Concurrent ...
TMPA-2015: Generation of Test Scenarios for Non Deterministic and Concurrent ...
 
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesTMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
 
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...
 
TMPA-2015: Towards a Usable Defect Prediction Tool: Crossbreeding Machine Lea...
TMPA-2015: Towards a Usable Defect Prediction Tool: Crossbreeding Machine Lea...TMPA-2015: Towards a Usable Defect Prediction Tool: Crossbreeding Machine Lea...
TMPA-2015: Towards a Usable Defect Prediction Tool: Crossbreeding Machine Lea...
 
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
 
TMPA-2015: Implementing the MetaVCG Approach in the C-light System
TMPA-2015: Implementing the MetaVCG Approach in the C-light SystemTMPA-2015: Implementing the MetaVCG Approach in the C-light System
TMPA-2015: Implementing the MetaVCG Approach in the C-light System
 
TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...
TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...
TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...
 
TMPA-2015: The Verification of Functional Programs by Applying Statechart Dia...
TMPA-2015: The Verification of Functional Programs by Applying Statechart Dia...TMPA-2015: The Verification of Functional Programs by Applying Statechart Dia...
TMPA-2015: The Verification of Functional Programs by Applying Statechart Dia...
 
TMPA-2015: A Need To Specify and Verify Standard Functions
TMPA-2015: A Need To Specify and Verify Standard FunctionsTMPA-2015: A Need To Specify and Verify Standard Functions
TMPA-2015: A Need To Specify and Verify Standard Functions
 
TMPA-2015: Formal Methods in Robotics
TMPA-2015: Formal Methods in RoboticsTMPA-2015: Formal Methods in Robotics
TMPA-2015: Formal Methods in Robotics
 
TMPA-2015: Automated process of creating test scenarios for financial protoco...
TMPA-2015: Automated process of creating test scenarios for financial protoco...TMPA-2015: Automated process of creating test scenarios for financial protoco...
TMPA-2015: Automated process of creating test scenarios for financial protoco...
 
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
 
TMPA-2015: FPGA-Based Low Latency Sponsored Access
TMPA-2015: FPGA-Based Low Latency Sponsored AccessTMPA-2015: FPGA-Based Low Latency Sponsored Access
TMPA-2015: FPGA-Based Low Latency Sponsored Access
 

Semelhante a TMPA-2013 Sartakov: Genode

1. Sartakov. Virtualization. June 01, 2013
1. Sartakov. Virtualization. June 01, 20131. Sartakov. Virtualization. June 01, 2013
1. Sartakov. Virtualization. June 01, 2013ru-fedora-moscow-2013
 
Опыт внедрения OpenStack
Опыт внедрения OpenStackОпыт внедрения OpenStack
Опыт внедрения OpenStackYandex
 
Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора Yandex
 
RUNOS OpenFlow controller (ru)
RUNOS OpenFlow controller (ru)RUNOS OpenFlow controller (ru)
RUNOS OpenFlow controller (ru)Alexander Shalimov
 
Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...ARCCN
 
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Mikhail Kurnosov
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in productionAnatoly Popov
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoFDmitry Buzdin
 
Итак, оно тормозит
Итак, оно тормозитИтак, оно тормозит
Итак, оно тормозитVsevolod Polyakov
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Mikhail Kurnosov
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_drupalconf
 
Работа высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервераРабота высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервераudmlug
 
краткий, неполный и в основном неверный обзор сетевой подсистемы в Windows. а...
краткий, неполный и в основном неверный обзор сетевой подсистемы в Windows. а...краткий, неполный и в основном неверный обзор сетевой подсистемы в Windows. а...
краткий, неполный и в основном неверный обзор сетевой подсистемы в Windows. а...rit2011
 
Операционные системы
Операционные системыОперационные системы
Операционные системыyaevents
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)guest40e031
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Serversrit2010
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeARCCN
 
Qlogic: Технологии Ethernet
Qlogic: Технологии EthernetQlogic: Технологии Ethernet
Qlogic: Технологии EthernetExpolink
 
Solaris OS
Solaris OSSolaris OS
Solaris OSSSA KPI
 
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...Ontico
 

Semelhante a TMPA-2013 Sartakov: Genode (20)

1. Sartakov. Virtualization. June 01, 2013
1. Sartakov. Virtualization. June 01, 20131. Sartakov. Virtualization. June 01, 2013
1. Sartakov. Virtualization. June 01, 2013
 
Опыт внедрения OpenStack
Опыт внедрения OpenStackОпыт внедрения OpenStack
Опыт внедрения OpenStack
 
Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора
 
RUNOS OpenFlow controller (ru)
RUNOS OpenFlow controller (ru)RUNOS OpenFlow controller (ru)
RUNOS OpenFlow controller (ru)
 
Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...
 
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
 
Итак, оно тормозит
Итак, оно тормозитИтак, оно тормозит
Итак, оно тормозит
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_
 
Работа высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервераРабота высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервера
 
краткий, неполный и в основном неверный обзор сетевой подсистемы в Windows. а...
краткий, неполный и в основном неверный обзор сетевой подсистемы в Windows. а...краткий, неполный и в основном неверный обзор сетевой подсистемы в Windows. а...
краткий, неполный и в основном неверный обзор сетевой подсистемы в Windows. а...
 
Операционные системы
Операционные системыОперационные системы
Операционные системы
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Servers
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network Initiative
 
Qlogic: Технологии Ethernet
Qlogic: Технологии EthernetQlogic: Технологии Ethernet
Qlogic: Технологии Ethernet
 
Solaris OS
Solaris OSSolaris OS
Solaris OS
 
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
 

Mais de Iosif Itkin

Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Iosif Itkin
 
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...Iosif Itkin
 
Exactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test OraclesExactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test OraclesIosif Itkin
 
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX ProtocolExactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX ProtocolIosif Itkin
 
Operational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresOperational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresIosif Itkin
 
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday SeasonIosif Itkin
 
Testing the Intelligence of your AI
Testing the Intelligence of your AITesting the Intelligence of your AI
Testing the Intelligence of your AIIosif Itkin
 
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresEXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresIosif Itkin
 
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...Iosif Itkin
 
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiEXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiIosif Itkin
 
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenEXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenIosif Itkin
 
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...Iosif Itkin
 
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...Iosif Itkin
 
QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)Iosif Itkin
 
Machine Learning and RoboCop Testing
Machine Learning and RoboCop TestingMachine Learning and RoboCop Testing
Machine Learning and RoboCop TestingIosif Itkin
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileIosif Itkin
 
2018 - Exactpro Year in Review
2018 - Exactpro Year in Review2018 - Exactpro Year in Review
2018 - Exactpro Year in ReviewIosif Itkin
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyIosif Itkin
 
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing ChallengesFIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing ChallengesIosif Itkin
 
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)Iosif Itkin
 

Mais de Iosif Itkin (20)

Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4
 
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
 
Exactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test OraclesExactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test Oracles
 
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX ProtocolExactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
 
Operational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresOperational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market Infrastructures
 
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
 
Testing the Intelligence of your AI
Testing the Intelligence of your AITesting the Intelligence of your AI
Testing the Intelligence of your AI
 
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresEXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
 
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
 
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiEXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
 
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenEXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
 
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
 
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
 
QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)
 
Machine Learning and RoboCop Testing
Machine Learning and RoboCop TestingMachine Learning and RoboCop Testing
Machine Learning and RoboCop Testing
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibile
 
2018 - Exactpro Year in Review
2018 - Exactpro Year in Review2018 - Exactpro Year in Review
2018 - Exactpro Year in Review
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and Strategy
 
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing ChallengesFIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
 
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
 

TMPA-2013 Sartakov: Genode

  • 1. Анализ  производительности   сетевой  подсистемы   микроядерного  окружения   Genode       Сартаков  Василий,  Александр  Тарасиков     {sartakov,tarasikov}@ksyslabs.org   Tools  &  Methods  of  Program  Analysis,  2013  
  • 2. Agenda   •  Intro   •  Микроядра  и  их  окружения   •  Пример  использования  –  Шлюз   •  Анализ  производительности   •  Заключение  
  • 3. Операционные  Систем   •  Управляют  ресурсами   – Hardware     – Somware   •  Предоставляет  интерфейс  к  ресурсам   •  Обеспечивает  изоляцию  и  совместное   использование  ресурсов  
  • 4. Монолитно-­‐модульный  Linux   CPU    main    memory   I/O   devices   MC   bash   WM   apache   FLV   PIDN  PID6   PID10   HAL   System-­‐Call  interface   FS   IPC   NET   Drivers   Scheduler   Mem   Swap  
  • 5. Микроядро   CPU    main    memory   I/O   devices   MC   bash   WM   apache   Hardware  access   System-­‐Call  interface   FS   IPC   NET   Drivers   Scheduler   Mem  Swap   AS  Isola•on  
  • 6. История   •  Первое  поколение:  Mach  (CMU  1985-­‐1994,   GNU/Mach,  OS  X)   •  Второе  поколение:  Minix3  (VU  Amsterdam)   •  Третье  поколение:  Семейство  L4   – L4Ka::Pistachio   – L4/Fiasco   – Fiasco.OC   – SeL4   ….    
  • 7. Fiasco.OC   •  C++   •  Object-­‐capability  uKernel   – Everything  is  an  object   – Capabili•es  (контролируемые  ссылки  на   объекты)   •  Fiasco.OC  это  не  операционная  система,  она   требует  окружения:   – L4Re   – Genode  
  • 8. L4Re   CPU    main    memory   I/O   devices   uCLibc   Sigma0   Moe   Ned   Hardware  access   System-­‐Call  interface   Hello  world   IPC   IPC  FW   Scheduler   Libstdc++   AS  Isola•on  
  • 10. Компоненты  Окружений   •  «Стандартные»  библиотеки  (uCLibc,  stdc++)   •  Драйвера:  iPXE_kit,  dde_kit   •  Паравиртуализированный  L4Linux     •  Компоненты  системы  (Ned,  IO,  Moe,  Sigma,   init)   •  Портированные  приложения  –  Qt,  LwIP  
  • 12. Gateway::Монолит   •  Уязвимость  в  драйвере:  Специально   сформированный  пакет  -­‐>  срыв  -­‐>  доступ  к   памяти  ядра   •  «Умное»  устройство:  специально   сформированный  пакет  -­‐>  активация   закладки  в  сетевом  устройств  -­‐>  кража   данных  из  памяти   •  И  это  все  не  смешно  
  • 13. Gateway   Eth1   Fiasco.OC   DRV   DRV   Eth0   vEth   vEth   Firewall   Tcp/IP   App   Безопасная  среда  Внешняя  среда  
  • 14. Gateway   Eth1   Fiasco.OC   DRV  DRV   Eth0   vEth   vEth   Firewall   Tcp/IP   App   Безопасная  среда   App   Tcp/IP   L4Linux   L4Linux   DRV   DRV   Внешняя  среда  
  • 15. Упрощенная  схема   L4Linux   DRV  DRV   L4Linux  
  • 16. L4Linux   vEth  DRV   TCP/IP   APP1   netperf   APP2   L4Linux  kernel  
  • 17. Netperf:  PC  <-­‐>  SRV   PC1   SRV   Подключение  –  1gbps   704/703  
  • 18. Netperf:  PC  <-­‐>  Linux  PC  <-­‐>SRV   PC1   SRV   Linux   700/700   DRV  DRV   TCP/IP  ip  route  
  • 19. PC  <-­‐>  DRV<-­‐>  L4LInux  <-­‐>  L4Linux  <-­‐>  DRV  <-­‐>  SRV   L4Linux   DRV  DRV   L4Linux   PC1   SRV   64   Nic  Bridge   185   ~320  
  • 20. Первый  Анализ   •  Отказ  от  Nic  Bridge.  Вместо  него  кольцевой   буффер  с  передачей  сигналов  напрямую   между  L4Linux.   •  Одна  и  та  же  память  используется  в   DDE_iPXE  для  приема  и  отправки  данных.  
  • 21. PC  <-­‐>  DRV<-­‐>  L4LInux  <-­‐>  L4Linux  <-­‐>  DRV  <-­‐>  SRV   L4Linux   DRV  DRV   L4Linux   PC1   SRV   402/89   ~700  
  • 22. Профилирование   •  Два  подхода  к  профилированию:   – Oprofile,  Профилирование  на  уровне  ядра.     (kernel  +  userspace)     – Gprof,  профилирование  программ  (gcc  +  lib)   •  Первый  затратный  по  реализации,   бесполезен  (как  оказалось  в  будущем)   •  Требует  POSIX  совместимости  
  • 23. Профилирование   •  Профилировщик  как  внутрисистемный   (внутриядерный)  отладчик  –  измерение  частоты   (количества)  и  продолжительности     •  Констатировал  частое  нахождения  в  функциях   связанных  с  системными  вызовами   •  Использование  памяти  ядра,  поскольку   «микроядерный»  дизайн  профилировщика   негативно  сказывался  на  производительности   системы  –  вносил  большую  погрешность     •  Разработали  профилировщик  для  окружения:   –  Линкуется  на  старте   –  Сохраняет  данные  в  памяти,  выгружает  по  h£p,   поскольку  в  системе  отсутствует  носитель  
  • 24. Результаты  (в  тиках  процессора)   Процедура   Тики  процессора   модуль   dde_kit_sem_up     13   lib/nic.c  [dde_ipxe]   dde_kit_sem_down     59   lib/nic.c  [dde_ipxe]   memcpy     23   lib/nic.c  [dde_ipxe]   get_acked     46   nic/component.h  [Nic]   submit_packet     190-­‐160k   nic/component.h  [Nic]   packed_descriptor     10   nic/component.h  [Nic]   get_packet   8   lib/l4lx/genode_net.cc  [L4Linux]   acknowledge_packet   254   lib/l4lx/genode_net.cc  [L4Linux]   submit_packet   65   lib/l4lx/genode_net.cc  [L4Linux]   memcpy   25   lib/l4lx/genode_net.cc  [L4Linux]  
  • 25. Анализ   •  submit_packet  -­‐  помещает  пакет  в   циклический  буфер  и  делает  IPC  запрос  к   другому  процессу.   •  Спародически  может  увеличить  время   выполнения  до  190K   •  Возможные  причины  –  реализация   драйвера,  управления  памятью,   управление  процессами.    
  • 26. Причины::Драйвера   •  Драйвера:   – Не  поддерживает  MSI-­‐X,  как  следствие   приходится  использовать  прерывание  PCIe,   возникает  конкуренция  с  другими   устройствами     – Не  объясняет  задержки  в  выполнении  
  • 27. Причины::Память   •  Netperf  последовательно  увеличивает   размер  пакетов.  Чем  дольше  работает  тест,   тем  больший  разброс  значений  в   submit_packet.     •  Гипотеза:   – Медленная  аллокация  памяти,  зависящая  от   размеров  региона.    
  • 28. Genode::allocator   •  SLAB  Allocator.     –  Список  регионов  по  1KB,  2KB,16KB   •  Кольцевой  буфер  между  сервисами:     –  При  освобождении  памяти  одним  регионом   происходит  добавление  его  в  список  свободных   регионов,  в  частности  доступный  второму  сервису.       •  При  передаче  данных  от  одного  сервиса   другому  происходит  unmap   •  И  в  этот  момент  показалось  что  проблема   найдена  
  • 29. Но  нет     •  Причиной  всему  оказались  блокировки.  
  • 30. Genode::mutex   •  SMP  реализация  отличается  от  реализации   для  однопроцессорной  системы   •  mutex  +  messaging  =  slow     •   idle  30%  (?!?!)  
  • 31. Решения   •  Хорошие  решения:   – Уменьшить  количество  threads  в  драйверах     – Lockless  environment  (WIP)   •  Вместо  блокировок  –  использование  задержек  по   времени  на  подобии  Read-­‐Copy-­‐Update     •  Плохие  решения:   •  Dataspace  (shared  memory)   •  Прямой  доступ  L4Linux  к  устройству  
  • 32. Lockless  L4Re   L4Linux   DRV  DRV   L4Linux   PC1   SRV   880   ~2Gb   910  
  • 33. Выводы   •  Сами  по-­‐себе  переключения  контекста,   количество  которых  значительно  в  сравнении  с   монолитно-­‐модульными  ядрами,  не  всегда   приводят  к  деградации  производительности.     •  L4  окружения  требуют  адаптацию  прикладного   ПО,  не  смотря  на  наличие  DDE  китов     •  Нет  предела  совершенству    
  • 34. Future  work     •  Lockless  окружение   •  Custom  userspace  tcp/ip  stack,  virtual  switch,   driver  kit