Highload осень 2012 лекция 5

192 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
192
On SlideShare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Производители процессоров и разработчики ОС делают очень много хороший оптимизаций, но чтобы они сработали нужна некоторая помощь со стороны программиста.
  • Сегодня эффективные по цене решения как правило достигаются с использованием горизонтального масштабирования, а именно сборки систем из множества обычных серверов вместо дорогих специализированных решений.
  • DMA – Direct Memory Access (конкурирует с процессором за шину)AGP – Advanced Graphic Port (подключался к северному мосту потому что южный тогда был медленный)
  • NUMA – Non-Uniform Memory AccessAMD – OpteronIntel – NehalemПамять общая но доступ к ней неоднороден20% задержка при обращении к «чужой» памяти
  • RAM – Random Access Memory6 Транзисторов на ячейкуИспользуется в кеш-памяти на процессоре
  • 1 запирающий транзистор + 1 небольшой конденсаторКонденсаторы небольшие чтобы можно было много запихнуть в чипПоэтому они быстро разряжаются (leackage) и их надо часто обновлять (refresh)Цикл обновлениясовременных чипов: 64 мс
  • Synchronous Dynamic RAM64 bit (8 bytes) Databus
  • Synchronous Dynamic RAM64 bit (8 bytes) Databus
  • Thread-ыимеют только регистры и то не всеЯдра имеют все отдельное кроме больших кешейВсе данные которые обрабатывает процессор проходят через кешВ кеше хранятся cache lines размером 64 байта (64 бита шины данных х 8 передач)AMD, VIA – Exclusive cacheIntel – Inclusive cacheCache coherency
  • Dirty lines - только в одном процессореClean lines – могут быть во всехСинхронизация с главной памятью,инвалидация когда видна команда записи на строку в своем кеше сделанную в другом процессоре
  • Последовательный доступ, ускоряется процессором как прямой так и обратный
  • Последовательный доступ, ускоряется процессором как прямой так и обратный
  • Последовательный доступ, ускоряется процессором как прямой так и обратный
  • Prefetching ухудшает ситуацию
  • Prefetching ухудшает ситуацию
  • Highload осень 2012 лекция 5

    1. 1. Ulrich Drepper, Red Hat Inc., November 21, 2007
    2. 2. $ 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
    3. 3. # 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
    4. 4. • • • • •
    5. 5. • • • • • •
    6. 6. 64 bit (8 bytes) - data bus DDR SDRAM: Dual-pumped 200MHz bus = 3.2GB/s DDR2 SDRAM: Quad-pumped 200MHz bus = 6.4GB/s
    7. 7. • • •
    8. 8. O – Смещение внутри строки S – Идентификатор строки в кеше T – Метка внутри строки кеша для привязки к полному адресу

    ×