SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Проектирование
высоконагруженных
систем



Лекция №5
Быков Александр
HighLoad. Лекция №5
2
Пока процессоры становятся все быстрее и
многочисленнее ограничивающим фактором для
быстродействия большинства программ остается доступ
к памяти.=
Для получения максимальной производительности при
проектировании программ необходимо учитывать
структуру аппаратного обеспечения и его тесной связки с
функциями ОС.
What Every Programmer Should Know About Memory
Ulrich Drepper, Red Hat Inc., November 21, 2007
HighLoad. Лекция №5
3
▪ 16 CPU: 2 (Sockets) x 4 (Cores) x 2 (Threads per Core)=
▪ 64 CPU: 4 (Sockets) x 8 (Cores) x 2 (Threads per Core)=
=
▪ 16 Gb MEM: 8 Gb x 2 (Channels)=
▪ 192 Gb MEM: 16 Gb х 6 (Channels) x 2 (per Channel)=
=
▪ 2 SATA x 2Tb=
▪ 16 SAS x 300 Gb=
=
▪ 2 NIC x 4 pools=
▪ 4 NIC x 8 pools
Конфигурация типичного сервера
HighLoad. Лекция №5
4
$ lscpu!
=
Architecture: x86_64!
CPU op-mode(s): 32-bit, 64-bit!
Byte Order: Little Endian!
CPU(s): 16!
On-line CPU(s) list: 0-15!
Thread(s) per core: 2!
Core(s) per socket: 4!
CPU socket(s): 2!
NUMA node(s): 2!
Vendor ID: GenuineIntel!
CPU family: 6!
Model: 44!
Stepping: 2!
CPU MHz: 1600.000!
BogoMIPS: 4799.88!
Virtualization: VT-x!
L1d cache: 32K!
L1i cache: 32K!
L2 cache: 256K!
L3 cache: 12288K!
NUMA node0 CPU(s): 0-3,8-11!
NUMA node1 CPU(s): 4-7,12-15!
$ cat /proc/cpuinfo!
=
processor : 0!
vendor_id : GenuineIntel!
cpu family : 6!
model : 44!
model name : Intel(R) Xeon(R) CPU
E5620 @ 2.40GHz!
stepping : 2!
cpu MHz : 1600.000!
cache size : 12288 KB!
physical id : 0!
siblings : 8!
core id : 0!
cpu cores : 4!
apicid : 0!
initial apicid : 0!
fpu : yes!
fpu_exception : yes!
cpuid level : 11!
wp : yes!
bogomips : 4800.59!
clflush size : 64!
cache_alignment : 64!
address sizes : 40 bits physical, 48 bits virtual
HighLoad. Лекция №5
5
# dmidecode!
=
Memory Device!
Array Handle: 0x0035!
Total Width: 72 bits!
Data Width: 64 bits!
Size: 8192 MB!
Form Factor: DIMM!
Set: None!
Locator: DIMM A1!
Bank Locator: CHANNEL A!
Type: Other!
Type Detail: Other!
Speed: 1333 MHz!
Manufacturer: NOT SUPPORT!
Serial Number: NOT SUPPORT!
Asset Tag: NOT SUPPORT!
Part Number: NOT SUPPORT!
# dmidecode!
=
Memory Device!
Array Handle: 0x0035!
Total Width: 72 bits!
Data Width: 64 bits!
Size: 8192 MB!
Form Factor: DIMM!
Set: None!
Locator: DIMM A2!
Bank Locator: CHANNEL A!
Type: Other!
Type Detail: Other!
Speed: 1333 MHz!
Manufacturer: NOT SUPPORT!
Serial Number: NOT SUPPORT!
Asset Tag: NOT SUPPORT!
Part Number: NOT SUPPORT!
=
HighLoad. Лекция №5
6
Отдельно-стоящий контроллер памяти
HighLoad. Лекция №5
7
Контроллер памяти встроенный в процессор
HighLoad. Лекция №5
8
Static RAM
• Транзисторная память=
• Моментальный доступ к ячейке=
• Простой интерфейс доступа к ячейке=
• Дорогая в производстве=
• Потребляет много энергии
HighLoad. Лекция №5
9
Dynamic RAM
• Конденсаторная память=
• Долгая запись/считывание=
• Разрядка при считывании=
• Необходимость обновления ячеек=
• Дешевая в производстве=
• Потребляет немного энергии
HighLoad. Лекция №5
10
Dynamic RAM
HighLoad. Лекция №5
11
SDRAM: Read Timing
64 bit (8 bytes) - data bus=
=
DDR SDRAM:=
Dual-pumped 200MHz bus = 3.2GB/s=
=
DDR2 SDRAM:=
Quad-pumped 200MHz bus = 6.4GB/s=
HighLoad. Лекция №5
12
SDRAM: RAS Precharge
HighLoad. Лекция №5
13
Возможности ускорения
• Читать последовательно данные с запасом=
• Читать без перескоков между рядами=
• Prefetching
HighLoad. Лекция №5
14
CPU Cache: Общий вид
HighLoad. Лекция №5
15
Внутреннее устройство
O – Смещение внутри строки=
S – Идентификатор строки в кеше=
T – Метка внутри строки кеша для привязки к полному адресу =
HighLoad. Лекция №5
16
Скорость доступа
HighLoad. Лекция №2
17
Latency numbers every programmer should know (Jeff Dean)
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns
Mutex lock/unlock 25 ns
Main memory reference 100 ns
Compress 1K bytes with Zippy 3,000 ns
Send 2K bytes over 1 Gbps network 20,000 ns
SSD random read 150,000 ns
Read 1 MB sequentially from memory 250,000 ns
Round trip within same datacenter 500,000 ns 0.5 ms
Read 1 MB sequentially from SSD* 1,000,000 ns 1 ms
Disk seek 10,000,000 ns 10 ms
Read 1 MB sequentially from disk 20,000,000 ns 20 ms
Send packet CA->Netherlands->CA 150,000,000 ns 150 ms
HighLoad. Лекция №5
18
Экспериментальное измерение
HighLoad. Лекция №5
19
Последовательный доступ
HighLoad. Лекция №5
20
Случайный доступ
HighLoad. Лекция №5
21
Литература
▪ What Every Programmer Should Know About Memory

http://people.redhat.com/drepper/cpumemory.pdf
HighLoad. Лекция №5
22
Домашнее задание №3
=
• Экспериментально измерить размер кешей разных уровней,
время последовательного и случайного доступа к ним.

Сравнить со спецификацией процессора.
=
• Предоставить отчет с результатами и программу для
измерения на ближайшем семинаре.
СПАСИБО ЗА ВНИМАНИЕ
Быков АлександрH
bykov@corp.mail.ru

Weitere ähnliche Inhalte

Was ist angesagt?

Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Ontico
 
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Ontico
 
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Ontico
 
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Ontico
 
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Ontico
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Ontico
 

Was ist angesagt? (20)

Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
 
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
 
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
 
SECON.Посиделки #16: Cassandra (презентация)
SECON.Посиделки #16: Cassandra (презентация) SECON.Посиделки #16: Cassandra (презентация)
SECON.Посиделки #16: Cassandra (презентация)
 
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)
 
SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)
 
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
 
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
 
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
 
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
 
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
 
Cautious: IPv6 is here / Александр Азимов (Qrator Labs)
Cautious: IPv6 is here / Александр Азимов (Qrator Labs)Cautious: IPv6 is here / Александр Азимов (Qrator Labs)
Cautious: IPv6 is here / Александр Азимов (Qrator Labs)
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
 

Andere mochten auch

Бизнес весна 2014 лекция 4
Бизнес весна 2014 лекция 4Бизнес весна 2014 лекция 4
Бизнес весна 2014 лекция 4
Technopark
 
Разработка веб-сервисов осень 2013 лекция 7
Разработка веб-сервисов осень 2013 лекция 7Разработка веб-сервисов осень 2013 лекция 7
Разработка веб-сервисов осень 2013 лекция 7
Technopark
 
C++ осень 2012 лекция 3
C++ осень 2012 лекция 3C++ осень 2012 лекция 3
C++ осень 2012 лекция 3
Technopark
 
Бизнес весна 2014 лекция 3
Бизнес весна 2014 лекция 3Бизнес весна 2014 лекция 3
Бизнес весна 2014 лекция 3
Technopark
 
Бизнес весна 2014 лекция 2
Бизнес весна 2014 лекция 2Бизнес весна 2014 лекция 2
Бизнес весна 2014 лекция 2
Technopark
 
Разработка веб-сервисов осень 2013 лекция 12
Разработка веб-сервисов осень 2013 лекция 12Разработка веб-сервисов осень 2013 лекция 12
Разработка веб-сервисов осень 2013 лекция 12
Technopark
 
Java весна 2014 лекция 5
Java весна 2014 лекция 5Java весна 2014 лекция 5
Java весна 2014 лекция 5
Technopark
 
Java осень 2012 лекция 4
Java осень 2012 лекция 4Java осень 2012 лекция 4
Java осень 2012 лекция 4
Technopark
 
C++ осень 2013 лекция 1
C++ осень 2013 лекция 1C++ осень 2013 лекция 1
C++ осень 2013 лекция 1
Technopark
 
углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]
Technopark
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2
Technopark
 

Andere mochten auch (20)

Бизнес весна 2014 лекция 4
Бизнес весна 2014 лекция 4Бизнес весна 2014 лекция 4
Бизнес весна 2014 лекция 4
 
Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
 
Rb
RbRb
Rb
 
Мы - хорошие, а они - плохие. Почему так происходит и что с этим делать
Мы - хорошие, а они - плохие. Почему так происходит и что с этим делатьМы - хорошие, а они - плохие. Почему так происходит и что с этим делать
Мы - хорошие, а они - плохие. Почему так происходит и что с этим делать
 
Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...
Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...
Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...
 
Классификация стейкхолдеров
Классификация стейкхолдеровКлассификация стейкхолдеров
Классификация стейкхолдеров
 
управление заинтересованными сторонами
управление заинтересованными сторонамиуправление заинтересованными сторонами
управление заинтересованными сторонами
 
Разработка веб-сервисов осень 2013 лекция 7
Разработка веб-сервисов осень 2013 лекция 7Разработка веб-сервисов осень 2013 лекция 7
Разработка веб-сервисов осень 2013 лекция 7
 
C++ осень 2012 лекция 3
C++ осень 2012 лекция 3C++ осень 2012 лекция 3
C++ осень 2012 лекция 3
 
Бизнес весна 2014 лекция 3
Бизнес весна 2014 лекция 3Бизнес весна 2014 лекция 3
Бизнес весна 2014 лекция 3
 
Бизнес весна 2014 лекция 2
Бизнес весна 2014 лекция 2Бизнес весна 2014 лекция 2
Бизнес весна 2014 лекция 2
 
Разработка веб-сервисов осень 2013 лекция 12
Разработка веб-сервисов осень 2013 лекция 12Разработка веб-сервисов осень 2013 лекция 12
Разработка веб-сервисов осень 2013 лекция 12
 
Java весна 2014 лекция 5
Java весна 2014 лекция 5Java весна 2014 лекция 5
Java весна 2014 лекция 5
 
Java осень 2012 лекция 4
Java осень 2012 лекция 4Java осень 2012 лекция 4
Java осень 2012 лекция 4
 
стейкхолдеры
стейкхолдерыстейкхолдеры
стейкхолдеры
 
C++ осень 2013 лекция 1
C++ осень 2013 лекция 1C++ осень 2013 лекция 1
C++ осень 2013 лекция 1
 
Заинтересованные лица: классификация, выявление, анализ, техники
Заинтересованные лица: классификация, выявление, анализ, техникиЗаинтересованные лица: классификация, выявление, анализ, техники
Заинтересованные лица: классификация, выявление, анализ, техники
 
углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2
 
Корпоративный эгоизм Фридмана 2013
Корпоративный эгоизм Фридмана 2013Корпоративный эгоизм Фридмана 2013
Корпоративный эгоизм Фридмана 2013
 

Ähnlich wie HighLoad весна 2014 лекция 5

Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Ontico
 
Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)
Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)
Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)
Mikhail Kurnosov
 
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данныхОлег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
Siel01
 
Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора
Yandex
 
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктурыОбработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Vsevolod Shabad
 
Реактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicРеактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/music
Vadim Tsesko
 
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктурыГидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Vsevolod Shabad
 
Ловим шеллкоды под ARM
Ловим шеллкоды под ARMЛовим шеллкоды под ARM
Ловим шеллкоды под ARM
Positive Hack Days
 

Ähnlich wie HighLoad весна 2014 лекция 5 (20)

Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
 
Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)
Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)
Лекция 4: Оптимизация доступа к памяти (Memory access optimization, caches)
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данныхОлег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
 
Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора
 
Hl2008 Wtf Hl 169
Hl2008 Wtf Hl 169Hl2008 Wtf Hl 169
Hl2008 Wtf Hl 169
 
Platov
PlatovPlatov
Platov
 
Флеш в серверах: работа со скоростью вспышки
Флеш в серверах: работа со скоростью вспышкиФлеш в серверах: работа со скоростью вспышки
Флеш в серверах: работа со скоростью вспышки
 
apparatnoe_obespechenie
apparatnoe_obespechenieapparatnoe_obespechenie
apparatnoe_obespechenie
 
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктурыОбработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
 
Обратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructОбратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai Struct
 
Низкоуровневые оптимизации. Андрей Аксенов. Unigine Open Air 2013
Низкоуровневые оптимизации. Андрей Аксенов. Unigine Open Air 2013Низкоуровневые оптимизации. Андрей Аксенов. Unigine Open Air 2013
Низкоуровневые оптимизации. Андрей Аксенов. Unigine Open Air 2013
 
Реактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicРеактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/music
 
Hitachi FMD. Новый подход к старой задаче
Hitachi FMD. Новый подход к старой задачеHitachi FMD. Новый подход к старой задаче
Hitachi FMD. Новый подход к старой задаче
 
Как Linux работает с памятью — Вячеслав Бирюков
Как Linux работает с памятью — Вячеслав БирюковКак Linux работает с памятью — Вячеслав Бирюков
Как Linux работает с памятью — Вячеслав Бирюков
 
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктурыГидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
 
Ловим шеллкоды под ARM
Ловим шеллкоды под ARMЛовим шеллкоды под ARM
Ловим шеллкоды под ARM
 
Современные флэш-технологии – от концепции к преимуществам использования // А...
Современные флэш-технологии – от концепции к преимуществам использования // А...Современные флэш-технологии – от концепции к преимуществам использования // А...
Современные флэш-технологии – от концепции к преимуществам использования // А...
 
A O E Stripped
A O E StrippedA O E Stripped
A O E Stripped
 
Aoe Stripped
Aoe StrippedAoe Stripped
Aoe Stripped
 

Mehr von Technopark

СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
Technopark
 
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
Technopark
 

Mehr von Technopark (20)

Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
 

HighLoad весна 2014 лекция 5

  • 2. HighLoad. Лекция №5 2 Пока процессоры становятся все быстрее и многочисленнее ограничивающим фактором для быстродействия большинства программ остается доступ к памяти.= Для получения максимальной производительности при проектировании программ необходимо учитывать структуру аппаратного обеспечения и его тесной связки с функциями ОС. What Every Programmer Should Know About Memory Ulrich Drepper, Red Hat Inc., November 21, 2007
  • 3. HighLoad. Лекция №5 3 ▪ 16 CPU: 2 (Sockets) x 4 (Cores) x 2 (Threads per Core)= ▪ 64 CPU: 4 (Sockets) x 8 (Cores) x 2 (Threads per Core)= = ▪ 16 Gb MEM: 8 Gb x 2 (Channels)= ▪ 192 Gb MEM: 16 Gb х 6 (Channels) x 2 (per Channel)= = ▪ 2 SATA x 2Tb= ▪ 16 SAS x 300 Gb= = ▪ 2 NIC x 4 pools= ▪ 4 NIC x 8 pools Конфигурация типичного сервера
  • 4. HighLoad. Лекция №5 4 $ lscpu! = Architecture: x86_64! CPU op-mode(s): 32-bit, 64-bit! Byte Order: Little Endian! CPU(s): 16! On-line CPU(s) list: 0-15! Thread(s) per core: 2! Core(s) per socket: 4! CPU socket(s): 2! NUMA node(s): 2! Vendor ID: GenuineIntel! CPU family: 6! Model: 44! Stepping: 2! CPU MHz: 1600.000! BogoMIPS: 4799.88! Virtualization: VT-x! L1d cache: 32K! L1i cache: 32K! L2 cache: 256K! L3 cache: 12288K! NUMA node0 CPU(s): 0-3,8-11! NUMA node1 CPU(s): 4-7,12-15! $ cat /proc/cpuinfo! = processor : 0! vendor_id : GenuineIntel! cpu family : 6! model : 44! model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz! stepping : 2! cpu MHz : 1600.000! cache size : 12288 KB! physical id : 0! siblings : 8! core id : 0! cpu cores : 4! apicid : 0! initial apicid : 0! fpu : yes! fpu_exception : yes! cpuid level : 11! wp : yes! bogomips : 4800.59! clflush size : 64! cache_alignment : 64! address sizes : 40 bits physical, 48 bits virtual
  • 5. HighLoad. Лекция №5 5 # dmidecode! = Memory Device! Array Handle: 0x0035! Total Width: 72 bits! Data Width: 64 bits! Size: 8192 MB! Form Factor: DIMM! Set: None! Locator: DIMM A1! Bank Locator: CHANNEL A! Type: Other! Type Detail: Other! Speed: 1333 MHz! Manufacturer: NOT SUPPORT! Serial Number: NOT SUPPORT! Asset Tag: NOT SUPPORT! Part Number: NOT SUPPORT! # dmidecode! = Memory Device! Array Handle: 0x0035! Total Width: 72 bits! Data Width: 64 bits! Size: 8192 MB! Form Factor: DIMM! Set: None! Locator: DIMM A2! Bank Locator: CHANNEL A! Type: Other! Type Detail: Other! Speed: 1333 MHz! Manufacturer: NOT SUPPORT! Serial Number: NOT SUPPORT! Asset Tag: NOT SUPPORT! Part Number: NOT SUPPORT! =
  • 7. HighLoad. Лекция №5 7 Контроллер памяти встроенный в процессор
  • 8. HighLoad. Лекция №5 8 Static RAM • Транзисторная память= • Моментальный доступ к ячейке= • Простой интерфейс доступа к ячейке= • Дорогая в производстве= • Потребляет много энергии
  • 9. HighLoad. Лекция №5 9 Dynamic RAM • Конденсаторная память= • Долгая запись/считывание= • Разрядка при считывании= • Необходимость обновления ячеек= • Дешевая в производстве= • Потребляет немного энергии
  • 11. HighLoad. Лекция №5 11 SDRAM: Read Timing 64 bit (8 bytes) - data bus= = DDR SDRAM:= Dual-pumped 200MHz bus = 3.2GB/s= = DDR2 SDRAM:= Quad-pumped 200MHz bus = 6.4GB/s=
  • 13. HighLoad. Лекция №5 13 Возможности ускорения • Читать последовательно данные с запасом= • Читать без перескоков между рядами= • Prefetching
  • 14. HighLoad. Лекция №5 14 CPU Cache: Общий вид
  • 15. HighLoad. Лекция №5 15 Внутреннее устройство O – Смещение внутри строки= S – Идентификатор строки в кеше= T – Метка внутри строки кеша для привязки к полному адресу =
  • 17. HighLoad. Лекция №2 17 Latency numbers every programmer should know (Jeff Dean) L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns Mutex lock/unlock 25 ns Main memory reference 100 ns Compress 1K bytes with Zippy 3,000 ns Send 2K bytes over 1 Gbps network 20,000 ns SSD random read 150,000 ns Read 1 MB sequentially from memory 250,000 ns Round trip within same datacenter 500,000 ns 0.5 ms Read 1 MB sequentially from SSD* 1,000,000 ns 1 ms Disk seek 10,000,000 ns 10 ms Read 1 MB sequentially from disk 20,000,000 ns 20 ms Send packet CA->Netherlands->CA 150,000,000 ns 150 ms
  • 21. HighLoad. Лекция №5 21 Литература ▪ What Every Programmer Should Know About Memory
 http://people.redhat.com/drepper/cpumemory.pdf
  • 22. HighLoad. Лекция №5 22 Домашнее задание №3 = • Экспериментально измерить размер кешей разных уровней, время последовательного и случайного доступа к ним.
 Сравнить со спецификацией процессора. = • Предоставить отчет с результатами и программу для измерения на ближайшем семинаре.
  • 23. СПАСИБО ЗА ВНИМАНИЕ Быков АлександрH bykov@corp.mail.ru