SlideShare a Scribd company logo
1 of 31
Download to read offline
Анализ производительности
        Краткий путеводитель




                 Антон Павленко
       Руководитель экспертной группы


                      20 Сентябрь, 2012
Вы знаете ответы на эти вопросы?


 Сколько пользователей у вашей системы?
 Сколько из них заходят одновременно?
 Какой запас по прочности?
 Вы знаете когда он закончится?
 Какое время отклика устраивает ваших клиентов?
 Вы мониторите превышение времени отклика?
 ….......




 Сервисный центр                       © 2012 Инфосистемы Джет
О чем хочу рассказать

 Анализ производительности :
 
   повышает предсказуемость работы системы
 
   позволяет оценить запас прочности
 
   помогает планировать финансы
 
   позволяет выявить узкие места

 И самое главное:
 Выявив и устранив узкое место можно существенно
 сэкономить




 Сервисный центр                      © 2012 Инфосистемы Джет
Bottleneck и все все все




 Узкое место — явление, при котором производительность или пропускная способность
 системы ограничена одним или несколькими компонентами или ресурсами. (с) WikiPedia


 Сервисный центр                                                  © 2012 Инфосистемы Джет
Время отклика системы


                   типичый график зависимости времени
                   отклика от нагрузки.




                    График зависимости хорошо
                    спроектированной системы




 Сервисный центр                        © 2012 Инфосистемы Джет
Производительность системы




 Сервисный центр             © 2012 Инфосистемы Джет
У разных приложений разные требования



 Приложения бывают :
 - CPU bound
 - IO bound ( Network, Disk )

 При этом ключевым фактором может быть :
 - latency
 - throughput




 Сервисный центр                © 2012 Инфосистемы Джет
Теперь о CPU




 Сервисный центр   © 2012 Инфосистемы Джет
Что важно знать про CPU
Так ли важна частота CPU?

Возможности масштабирования значительно отличаются
( как и latency при обращении к «чужой» памяти )

Процессор это не только CPU но и интегрированные
элементы ( сеть, интерфейс к памяти, модуль
шифрования )

Каждый процессор обладает уникальными свойствами,
использование которых позволяет повысить
производительность приложения ( SSE 4.2, prefetch
инструкции, out-of-order execution, branch prediction, … )

  Сервисный центр                            © 2012 Инфосистемы Джет
SMP и NUMA




 Сервисный центр   © 2012 Инфосистемы Джет
Давайте поговорим про RAM




 Сервисный центр            © 2012 Инфосистемы Джет
цепочка обращений к памяти




                Regs         L1
Processor                               Unified
                           d-cache       Unified
                                          L2
                                           L2       Memory
                                                    Memory                disk
                                                                           disk
                               L1       Cache
                                         Cache
                            i-cache


size:          200 B         8-64 KB   1-4MB SRAM 128 MB DRAM          30 GB
speed:         3 ns          3 ns      6 ns       60-70 ns             8-10 ms
line size:     8B            32 B      32 B       8 KB



                    Быстрее, выше, сильнее Больше, медленее, дешевле


  Сервисный центр                                         © 2012 Инфосистемы Джет
Что нужно знать про RAM

 
     Как соотносятся времена доступа

 
     Память работает не байтами

 
     Существует L1/L2 кеш

 
     Кеш вымывается

 
     Обращения к памяти стоит выравнивать

 
     Существует ( и даже иногда работает ) префетч


 Сервисный центр                           © 2012 Инфосистемы Джет
Время доступа к RAM

 Bandwidth. линейное чтение
 4.6 GB/sec на лаптопе, ~12.7 GB/sec на сервере
 * На серверах можно настраивать interleaving, который повышает
 скорость линейного чтения


 Latency.
 Читаем 100M блоком int32, шаг 4096
 195 MB/sec, 2.14 sec/100M, ~49 Mreads/sec
 последовательный доступ ~1-2 такта
 случайный доступ ~40-60 тактов


 Почему так?

 Сервисный центр                                  © 2012 Инфосистемы Джет
RAM и L1 cache

 Потому что существует L1/L2 cache


 Скачем с шагом N => кеш-миссы => тормоза


 Шаг 4..64, ~4400..330 MB/sec, ~2x/шаг
 Шаг 64..1024, ~330..195 MB/sec




 P.S: для CPU с размером L1 кеш-линии 64 байта

 Сервисный центр                         © 2012 Инфосистемы Джет
RAM и L2 cache

 Фиксируем шаг 1024, уменьшаем данные
 100M, …, 4M, 3M, 2.3M == 195 MB/sec
 2M == 648 MB/sec
 1M == 1688 MB/sec
 512K == 1724 MB/sec
 Все сходится, размер L2 cache 2MB



 При чём тут выравнивание?



 Сервисный центр                       © 2012 Инфосистемы Джет
RAM и L3 cache




                   Ну вы поняли




 Сервисный центр                  © 2012 Инфосистемы Джет
Параметры cpu cache
Коэфициент промаха
       Доля обращений к памяти, не найденных в кеше
        (misses/references)
       Средние часла:
         3-10% для L1
         Может быть очень маленьким ( < 1%) для L2, зависит от
           размера, и т.д..
Hit Time
       Время “доставки” линии кеша в “процессор” (включает время
        определения есть ли данные в кеше)
       Типичные цифры:
         1 clock cycle для L1
         3-8 clock cycles для L2

Miss Penalty
       Необходимо дополнительное время в случае промаха
         25-100 cycles для основной памяти (RAM )
 Сервисный центр                                  © 2012 Инфосистемы Джет
Совсем немного о дисках

Диски, они механические => медленные




 Сервисный центр                   © 2012 Инфосистемы Джет
И еще чуть чуть о дисках

Размер не имеет значения ( чаще всего )

Для большинства приложений важным показателем
является количетсво IOPS'ов а не Mb/s

Latency напрямую зависит от размера блока

Несколько различных профилей нагрузки увеличивает
время отклика для каждого обращения

Диски иногда ломаются

SSD бывают разные ( MLC и SLC NAND, DRAM, etc )
 Сервисный центр                     © 2012 Инфосистемы Джет
Что же делать с IO?

Учитывать требования при проектировании :
Если для приложения критично latency то данные не
должны читаться с диска ( Oracle SGA, in memory database,
etc, etc, etc )

Если же критично throughput то важно помнить про
выравнивание, использовать memory intterleaving, работать
с данными парралельно ( striping )




  Сервисный центр                         © 2012 Инфосистемы Джет
Что же делать с IO?
Если все уже спроектировано до нас?

Оптимизировать!
- Использовать большие страницы для уменьшения cache miss
- Менять параметры выделения памяти для БД на серверах с
архитектурой NUMA
- Использовать специализированные аллокаторы памяти для
многопоточных приложений
- и так далее. Приёмов очень много.




  Сервисный центр                          © 2012 Инфосистемы Джет
О чём я сейчас рассказывал?




Сервисный центр                  © 2012 Инфосистемы Джет
Для разных задач …




 Сервисный центр     © 2012 Инфосистемы Джет
… разные инструменты




 Сервисный центр       © 2012 Инфосистемы Джет
Выводы


Не все сервера одинаково полезны

Понимание узких мест приложения поможет выбрать
правильную конфигурацию

Даже небольшие изменения могут привести к
существенному росту/падению производительности




 Сервисный центр                      © 2012 Инфосистемы Джет
Вопросы?



   Антон Павленко
  http://jetservice.ru
pavlenko@jet.msk.su
Запасные слайды




 Сервисный центр   © 2012 Инфосистемы Джет
Intel Core architecture
                          L1 cache : 64kb на ядро
                          L2 cache : 1-8Mb (общий)
                          L3 cache : 8-16Mb (общий)
                          и не во всех процессорах
                          Нет HT
                          Потомок архитектуры
                          Pentium Pro :-)

                          4 ядра ( 6 в одной
                          реализации )




 Сервисный центр                  © 2012 Инфосистемы Джет
Intel Nehalem architecture
                             L1 cache : 64kb на ядро
                             L2 cache : 256Kb на ядро
                             L3 cache : 4-12Mb (общий)
                             Снова появился Hiper-threading!
                             Появился QuickPath (до 8
                             ядер )
                             Стал NUMA
                             Появился TLB! ( 512 ), но только
                             для «маленьких» страниц ( 4K )
                             Доступ к «чужой» памяти
                             дороже в 1.5 раза

                             В Sandy Bridge :
                             Больше L3 cache ( до 20 Мб )
                             Доступ до L1 — 3 тика,
                             До L2 - 8
 Сервисный центр                          © 2012 Инфосистемы Джет
Power 7

                   L1 cache 64 Кб на ядро
                   L2 cache 256 Кб на ядро
                   L3 cache 32 Мб ( разделен,
                   но доступ есть у всех ядер )
                   До 8 ядер по 4 потока на
                   ядро
                   L3 реализован через eDRAM
                   Возможен интерконнект до
                   32 процессоров
                   TLB size = 512 items 4-WAY

                   Power 6 был двухядерный
                   Sparc T4 :L1 - 32Kb для ядра
                   L2 — 128Kb на ядро
                   L3 - 4Mb
 Сервисный центр                    © 2012 Инфосистемы Джет

More Related Content

What's hot

Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камерБыстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камерMSU GML VideoGroup
 
Белнетэксперт - СХД
Белнетэксперт - СХДБелнетэксперт - СХД
Белнетэксперт - СХДSergey Polazhenko
 
Доклад Майкла Ноэла на SPCUA 2012
Доклад Майкла Ноэла на SPCUA 2012Доклад Майкла Ноэла на SPCUA 2012
Доклад Майкла Ноэла на SPCUA 2012Lizard Soft
 
SPCUA - Virtual SharePoint (Russian version)
SPCUA - Virtual SharePoint (Russian version)SPCUA - Virtual SharePoint (Russian version)
SPCUA - Virtual SharePoint (Russian version)Michael Noel
 
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003Andrey Beshkov
 
Обзор решений резервного копированя и восстановления от EМС
Обзор решений резервного копированя и восстановления от EМСОбзор решений резервного копированя и восстановления от EМС
Обзор решений резервного копированя и восстановления от EМСMUK
 
Методы оптимизации вычислений на CPU
Методы оптимизации вычислений на CPUМетоды оптимизации вычислений на CPU
Методы оптимизации вычислений на CPUMSU GML VideoGroup
 
Обзор продуктов Unified Access
Обзор продуктов Unified AccessОбзор продуктов Unified Access
Обзор продуктов Unified AccessCisco Russia
 

What's hot (11)

Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камерБыстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
 
Efficiency vvv
Efficiency vvvEfficiency vvv
Efficiency vvv
 
Белнетэксперт - СХД
Белнетэксперт - СХДБелнетэксперт - СХД
Белнетэксперт - СХД
 
Доклад Майкла Ноэла на SPCUA 2012
Доклад Майкла Ноэла на SPCUA 2012Доклад Майкла Ноэла на SPCUA 2012
Доклад Майкла Ноэла на SPCUA 2012
 
SPCUA - Virtual SharePoint (Russian version)
SPCUA - Virtual SharePoint (Russian version)SPCUA - Virtual SharePoint (Russian version)
SPCUA - Virtual SharePoint (Russian version)
 
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
 
Обзор решений резервного копированя и восстановления от EМС
Обзор решений резервного копированя и восстановления от EМСОбзор решений резервного копированя и восстановления от EМС
Обзор решений резервного копированя и восстановления от EМС
 
Методы оптимизации вычислений на CPU
Методы оптимизации вычислений на CPUМетоды оптимизации вычислений на CPU
Методы оптимизации вычислений на CPU
 
Windows Azure Internals
Windows Azure InternalsWindows Azure Internals
Windows Azure Internals
 
Информатика (устройство ПК)
Информатика (устройство ПК)Информатика (устройство ПК)
Информатика (устройство ПК)
 
Обзор продуктов Unified Access
Обзор продуктов Unified AccessОбзор продуктов Unified Access
Обзор продуктов Unified Access
 

Viewers also liked

Powerline for installers show
Powerline for installers showPowerline for installers show
Powerline for installers showdgebala
 
Prezintation
PrezintationPrezintation
Prezintationsstory
 
Global shapers hub Kaliningrad Projects presentation
Global shapers hub Kaliningrad Projects presentationGlobal shapers hub Kaliningrad Projects presentation
Global shapers hub Kaliningrad Projects presentationDiana Jarovskih
 
Varnish Web Accelerator
Varnish Web AcceleratorVarnish Web Accelerator
Varnish Web AcceleratorRahul Ghose
 
Big sea vocab review 1
Big sea vocab review 1Big sea vocab review 1
Big sea vocab review 1nikster55
 
Hadoop и все, все, все
Hadoop и все, все, всеHadoop и все, все, все
Hadoop и все, все, всеAntony Pavlenko
 
Motivasidirikita 090521083732-phpapp02
Motivasidirikita 090521083732-phpapp02Motivasidirikita 090521083732-phpapp02
Motivasidirikita 090521083732-phpapp02Ikhsan Moslem
 
Ineffable Shopping Guide 结构化搜索
Ineffable Shopping Guide 结构化搜索Ineffable Shopping Guide 结构化搜索
Ineffable Shopping Guide 结构化搜索dj3141592653
 
NCOI Module Opdracht Lerend Veranderen NCOI
NCOI Module Opdracht Lerend Veranderen NCOINCOI Module Opdracht Lerend Veranderen NCOI
NCOI Module Opdracht Lerend Veranderen NCOIrichardheyne
 
[21] Aug 2009 [E Rep] Ongov.Pblo Fall 2009
[21] Aug 2009 [E Rep] Ongov.Pblo Fall 2009[21] Aug 2009 [E Rep] Ongov.Pblo Fall 2009
[21] Aug 2009 [E Rep] Ongov.Pblo Fall 2009ROSEMARYJN DECAIRES
 
Cv June 09
Cv June 09Cv June 09
Cv June 09condies
 

Viewers also liked (20)

Powerline for installers show
Powerline for installers showPowerline for installers show
Powerline for installers show
 
Couchsurfing magic
Couchsurfing magicCouchsurfing magic
Couchsurfing magic
 
онцгой нэгэн
онцгой нэгэнонцгой нэгэн
онцгой нэгэн
 
Prezintation
PrezintationPrezintation
Prezintation
 
Global shapers hub Kaliningrad Projects presentation
Global shapers hub Kaliningrad Projects presentationGlobal shapers hub Kaliningrad Projects presentation
Global shapers hub Kaliningrad Projects presentation
 
Varnish Web Accelerator
Varnish Web AcceleratorVarnish Web Accelerator
Varnish Web Accelerator
 
Big sea vocab review 1
Big sea vocab review 1Big sea vocab review 1
Big sea vocab review 1
 
Hadoop и все, все, все
Hadoop и все, все, всеHadoop и все, все, все
Hadoop и все, все, все
 
Motivasidirikita 090521083732-phpapp02
Motivasidirikita 090521083732-phpapp02Motivasidirikita 090521083732-phpapp02
Motivasidirikita 090521083732-phpapp02
 
Audiosophia
AudiosophiaAudiosophia
Audiosophia
 
Daddy Monkey
Daddy MonkeyDaddy Monkey
Daddy Monkey
 
Ineffable Shopping Guide 结构化搜索
Ineffable Shopping Guide 结构化搜索Ineffable Shopping Guide 结构化搜索
Ineffable Shopping Guide 结构化搜索
 
NCOI Module Opdracht Lerend Veranderen NCOI
NCOI Module Opdracht Lerend Veranderen NCOINCOI Module Opdracht Lerend Veranderen NCOI
NCOI Module Opdracht Lerend Veranderen NCOI
 
Geo powerpoint
Geo powerpointGeo powerpoint
Geo powerpoint
 
MEPS - Studiu de eficacitate manageriala
MEPS - Studiu de eficacitate managerialaMEPS - Studiu de eficacitate manageriala
MEPS - Studiu de eficacitate manageriala
 
[21] Aug 2009 [E Rep] Ongov.Pblo Fall 2009
[21] Aug 2009 [E Rep] Ongov.Pblo Fall 2009[21] Aug 2009 [E Rep] Ongov.Pblo Fall 2009
[21] Aug 2009 [E Rep] Ongov.Pblo Fall 2009
 
LSI 2 - Stiluri si valori individuale - Descrierea Celorlalti
LSI 2 - Stiluri si valori individuale - Descrierea CelorlaltiLSI 2 - Stiluri si valori individuale - Descrierea Celorlalti
LSI 2 - Stiluri si valori individuale - Descrierea Celorlalti
 
planilha
planilhaplanilha
planilha
 
planilha
planilhaplanilha
planilha
 
Cv June 09
Cv June 09Cv June 09
Cv June 09
 

Similar to Performance optimisations

Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...Mikhail Kurnosov
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиIBS
 
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктурыОбработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктурыVsevolod Shabad
 
Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)
Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)
Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)Mikhail Kurnosov
 
Hl2008 Wtf Hl 169
Hl2008 Wtf Hl 169Hl2008 Wtf Hl 169
Hl2008 Wtf Hl 169Media Gorod
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
Обзор TimesTen In-Memory Database
Обзор TimesTen In-Memory DatabaseОбзор TimesTen In-Memory Database
Обзор TimesTen In-Memory DatabaseAndrey Akulov
 
Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"Дмитрий Костюк
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeIosif Itkin
 
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)Ontico
 
Флеш в серверах: работа со скоростью вспышки
Флеш в серверах: работа со скоростью вспышкиФлеш в серверах: работа со скоростью вспышки
Флеш в серверах: работа со скоростью вспышкиКРОК
 
Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Alexander Syrotenko
 
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктурыГидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктурыVsevolod Shabad
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoFDmitry Buzdin
 
CUDA Course 2010 at MSU
CUDA Course 2010 at MSUCUDA Course 2010 at MSU
CUDA Course 2010 at MSUlarhat
 
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)Ontico
 
44
4444
44JIuc
 
Презентация HPE
Презентация HPE Презентация HPE
Презентация HPE BairRadnaev
 

Similar to Performance optimisations (20)

Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктурыОбработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
 
Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)
Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)
Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)
 
Hl2008 Wtf Hl 169
Hl2008 Wtf Hl 169Hl2008 Wtf Hl 169
Hl2008 Wtf Hl 169
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
Обзор TimesTen In-Memory Database
Обзор TimesTen In-Memory DatabaseОбзор TimesTen In-Memory Database
Обзор TimesTen In-Memory Database
 
Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
 
Флеш в серверах: работа со скоростью вспышки
Флеш в серверах: работа со скоростью вспышкиФлеш в серверах: работа со скоростью вспышки
Флеш в серверах: работа со скоростью вспышки
 
Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?
 
Prez osob mikroproc
Prez osob mikroprocPrez osob mikroproc
Prez osob mikroproc
 
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктурыГидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
 
CUDA Course 2010 at MSU
CUDA Course 2010 at MSUCUDA Course 2010 at MSU
CUDA Course 2010 at MSU
 
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
 
44
4444
44
 
Презентация HPE
Презентация HPE Презентация HPE
Презентация HPE
 

Performance optimisations

  • 1. Анализ производительности Краткий путеводитель Антон Павленко Руководитель экспертной группы 20 Сентябрь, 2012
  • 2. Вы знаете ответы на эти вопросы? Сколько пользователей у вашей системы? Сколько из них заходят одновременно? Какой запас по прочности? Вы знаете когда он закончится? Какое время отклика устраивает ваших клиентов? Вы мониторите превышение времени отклика? …....... Сервисный центр © 2012 Инфосистемы Джет
  • 3. О чем хочу рассказать Анализ производительности :  повышает предсказуемость работы системы  позволяет оценить запас прочности  помогает планировать финансы  позволяет выявить узкие места И самое главное: Выявив и устранив узкое место можно существенно сэкономить Сервисный центр © 2012 Инфосистемы Джет
  • 4. Bottleneck и все все все Узкое место — явление, при котором производительность или пропускная способность системы ограничена одним или несколькими компонентами или ресурсами. (с) WikiPedia Сервисный центр © 2012 Инфосистемы Джет
  • 5. Время отклика системы типичый график зависимости времени отклика от нагрузки. График зависимости хорошо спроектированной системы Сервисный центр © 2012 Инфосистемы Джет
  • 6. Производительность системы Сервисный центр © 2012 Инфосистемы Джет
  • 7. У разных приложений разные требования Приложения бывают : - CPU bound - IO bound ( Network, Disk ) При этом ключевым фактором может быть : - latency - throughput Сервисный центр © 2012 Инфосистемы Джет
  • 8. Теперь о CPU Сервисный центр © 2012 Инфосистемы Джет
  • 9. Что важно знать про CPU Так ли важна частота CPU? Возможности масштабирования значительно отличаются ( как и latency при обращении к «чужой» памяти ) Процессор это не только CPU но и интегрированные элементы ( сеть, интерфейс к памяти, модуль шифрования ) Каждый процессор обладает уникальными свойствами, использование которых позволяет повысить производительность приложения ( SSE 4.2, prefetch инструкции, out-of-order execution, branch prediction, … ) Сервисный центр © 2012 Инфосистемы Джет
  • 10. SMP и NUMA Сервисный центр © 2012 Инфосистемы Джет
  • 11. Давайте поговорим про RAM Сервисный центр © 2012 Инфосистемы Джет
  • 12. цепочка обращений к памяти Regs L1 Processor Unified d-cache Unified L2 L2 Memory Memory disk disk L1 Cache Cache i-cache size: 200 B 8-64 KB 1-4MB SRAM 128 MB DRAM 30 GB speed: 3 ns 3 ns 6 ns 60-70 ns 8-10 ms line size: 8B 32 B 32 B 8 KB Быстрее, выше, сильнее Больше, медленее, дешевле Сервисный центр © 2012 Инфосистемы Джет
  • 13. Что нужно знать про RAM  Как соотносятся времена доступа  Память работает не байтами  Существует L1/L2 кеш  Кеш вымывается  Обращения к памяти стоит выравнивать  Существует ( и даже иногда работает ) префетч Сервисный центр © 2012 Инфосистемы Джет
  • 14. Время доступа к RAM Bandwidth. линейное чтение 4.6 GB/sec на лаптопе, ~12.7 GB/sec на сервере * На серверах можно настраивать interleaving, который повышает скорость линейного чтения Latency. Читаем 100M блоком int32, шаг 4096 195 MB/sec, 2.14 sec/100M, ~49 Mreads/sec последовательный доступ ~1-2 такта случайный доступ ~40-60 тактов Почему так? Сервисный центр © 2012 Инфосистемы Джет
  • 15. RAM и L1 cache Потому что существует L1/L2 cache Скачем с шагом N => кеш-миссы => тормоза Шаг 4..64, ~4400..330 MB/sec, ~2x/шаг Шаг 64..1024, ~330..195 MB/sec P.S: для CPU с размером L1 кеш-линии 64 байта Сервисный центр © 2012 Инфосистемы Джет
  • 16. RAM и L2 cache Фиксируем шаг 1024, уменьшаем данные 100M, …, 4M, 3M, 2.3M == 195 MB/sec 2M == 648 MB/sec 1M == 1688 MB/sec 512K == 1724 MB/sec Все сходится, размер L2 cache 2MB При чём тут выравнивание? Сервисный центр © 2012 Инфосистемы Джет
  • 17. RAM и L3 cache Ну вы поняли Сервисный центр © 2012 Инфосистемы Джет
  • 18. Параметры cpu cache Коэфициент промаха  Доля обращений к памяти, не найденных в кеше (misses/references)  Средние часла: 3-10% для L1 Может быть очень маленьким ( < 1%) для L2, зависит от размера, и т.д.. Hit Time  Время “доставки” линии кеша в “процессор” (включает время определения есть ли данные в кеше)  Типичные цифры: 1 clock cycle для L1 3-8 clock cycles для L2 Miss Penalty  Необходимо дополнительное время в случае промаха 25-100 cycles для основной памяти (RAM ) Сервисный центр © 2012 Инфосистемы Джет
  • 19. Совсем немного о дисках Диски, они механические => медленные Сервисный центр © 2012 Инфосистемы Джет
  • 20. И еще чуть чуть о дисках Размер не имеет значения ( чаще всего ) Для большинства приложений важным показателем является количетсво IOPS'ов а не Mb/s Latency напрямую зависит от размера блока Несколько различных профилей нагрузки увеличивает время отклика для каждого обращения Диски иногда ломаются SSD бывают разные ( MLC и SLC NAND, DRAM, etc ) Сервисный центр © 2012 Инфосистемы Джет
  • 21. Что же делать с IO? Учитывать требования при проектировании : Если для приложения критично latency то данные не должны читаться с диска ( Oracle SGA, in memory database, etc, etc, etc ) Если же критично throughput то важно помнить про выравнивание, использовать memory intterleaving, работать с данными парралельно ( striping ) Сервисный центр © 2012 Инфосистемы Джет
  • 22. Что же делать с IO? Если все уже спроектировано до нас? Оптимизировать! - Использовать большие страницы для уменьшения cache miss - Менять параметры выделения памяти для БД на серверах с архитектурой NUMA - Использовать специализированные аллокаторы памяти для многопоточных приложений - и так далее. Приёмов очень много. Сервисный центр © 2012 Инфосистемы Джет
  • 23. О чём я сейчас рассказывал? Сервисный центр © 2012 Инфосистемы Джет
  • 24. Для разных задач … Сервисный центр © 2012 Инфосистемы Джет
  • 25. … разные инструменты Сервисный центр © 2012 Инфосистемы Джет
  • 26. Выводы Не все сервера одинаково полезны Понимание узких мест приложения поможет выбрать правильную конфигурацию Даже небольшие изменения могут привести к существенному росту/падению производительности Сервисный центр © 2012 Инфосистемы Джет
  • 27. Вопросы? Антон Павленко http://jetservice.ru pavlenko@jet.msk.su
  • 28. Запасные слайды Сервисный центр © 2012 Инфосистемы Джет
  • 29. Intel Core architecture L1 cache : 64kb на ядро L2 cache : 1-8Mb (общий) L3 cache : 8-16Mb (общий) и не во всех процессорах Нет HT Потомок архитектуры Pentium Pro :-) 4 ядра ( 6 в одной реализации ) Сервисный центр © 2012 Инфосистемы Джет
  • 30. Intel Nehalem architecture L1 cache : 64kb на ядро L2 cache : 256Kb на ядро L3 cache : 4-12Mb (общий) Снова появился Hiper-threading! Появился QuickPath (до 8 ядер ) Стал NUMA Появился TLB! ( 512 ), но только для «маленьких» страниц ( 4K ) Доступ к «чужой» памяти дороже в 1.5 раза В Sandy Bridge : Больше L3 cache ( до 20 Мб ) Доступ до L1 — 3 тика, До L2 - 8 Сервисный центр © 2012 Инфосистемы Джет
  • 31. Power 7 L1 cache 64 Кб на ядро L2 cache 256 Кб на ядро L3 cache 32 Мб ( разделен, но доступ есть у всех ядер ) До 8 ядер по 4 потока на ядро L3 реализован через eDRAM Возможен интерконнект до 32 процессоров TLB size = 512 items 4-WAY Power 6 был двухядерный Sparc T4 :L1 - 32Kb для ядра L2 — 128Kb на ядро L3 - 4Mb Сервисный центр © 2012 Инфосистемы Джет

Editor's Notes

  1. Для большинства систем производительность меняется в экспоненциальной зависимостью. Редко и в хорошо спроектированных системах по параболе. Как себя ведет ваша система?
  2. А где находится ваша система?