硬件体系结构
——关注硬件分类,性能杭研后台-何登成微博:@何_登成
OutlineCPU内存HDD/SSD网卡RAID卡虚拟化
CPU-ArchitectureCPUarchitecture
CPU-组件与性能指标CPU主频: CPU的时钟频率,内核工作的时钟频率外频: 系统总线的工作频率倍频: CPU外频与主频相差的倍数前端总线: 将CPU连接到北桥芯片的总线总线频率: 与外频相同或者是外频的倍数总线数据带宽: (总线频率*数据位宽)/8L1,L2,L3cache(缓存数据与指令)L1,L2: core独占;带宽:20-80GB/S;延时:1-5nsL3: core之间共享;带宽:10-20GB/S;延时:10nsCachelinesize: 64BytesInterfaceQPIIntel中,连接一个CPU中的多个处理器(processors),直接互联QPI带宽:~20GB/s
CPU-程序设计优化Cache-conscious目的:提高L1/L2/L3cache命中率,降低访问内存的概率,降低系统响应时间手段:降低Cache冲突概率提高Cache利用率——数据结构重整False-sharing多线程程序,当不同的线程同时读写同一cacheline上的不同数据时发生;危害:False-sharing会导致L1/L2cachemiss,增加系统延时例如:intthreadArray[2];系统监控对程序做性能测试时,善用系统性能监控命令,定位瓶颈例如:top
MemoryCpu与外部沟通的桥梁,计算机所有程序在内存中运行。其作用是用于暂时存放cpu中的运算数据,以及与硬盘等外部存储器交换的数据.(From百度百科)MemoryRAM: 随机存取存储器SRAM: 静态随机存储器 CPUCacheDRAM: 动态随机存储器SDRAM: 同步动态随机存储器 与谁同步?——理论上速度可达到与CPU同步 DDRSDRAM: 双倍数据传输率SDRAM DDRDDR2DDR3Memory-种类随机定位;易失存储;容量有限(单块容量小,插槽少)Memory特性
Memory-性能指标Memory-性能指标核心频率(F1):内存的工作频率倍增系数:(预读位宽/2)*2(上升下降沿均可传输)时钟频率(F2):核心频率通过倍频技术得到(倍频,既为预读位宽,基准为2bits)DDR:F2=F1;DDR2:F2=2F1;DDR3:F2=4F1F2=F1*倍增系数/2数据传输频率(F3):传输数据的频率DDR:F3=2F1;DDR2:F3=4F1;DDR3:F3=8F1F3=F1*倍增系数ThroughputThroughput=F1*(内存总线位数/8)*倍增系数=F3*(内存总线位数/8)Latency30–100nsDDR400DDR3-800(singlechannel,64-bit)400800?400,800数字,指的是数据传输频率F3;对应的F1为200,100带宽DDR400: 200*64/8*2=400*64/8=3.2GB/sDDR3-800:100*64/8*8=800*64/8=6.4GB/s双通道带宽*2
Memory-性能指标(续)
Memory-定位虚拟地址(VirtualAddress)为了区分不同进程的存储空间,每个进程的虚拟地址空间是连续的,但对应的物理地址空间不一定连续32位系统:32位指针=4GBytes64位系统:64位指针=16EBytes页表(PageTable)虚拟地址到物理地址的映射表TLB(Translationlookasidebuffer)缓存Virtualaddress到Physicaladdress的映射关系,加快查找大页(Hugepages)降低页表空间消耗固定内存空间,防止swap
Memoryconscious所有提供L1/L2/L3cache命中率的方法,在memory中同样适用(MemoryLatencyHDD)经常访问数据,常驻内存Memory-编程指导
服务器体系结构SMP/UMA-SymmetricMultiProcessing/UniformMemoryArchitecture服务器中多CPU对称工作,无主次关系。各CPU共享相同的物理内存,访问内存任何地址所需时间相同。程序设计简单。缺点:Scale-up,难以扩展;内存访问冲突NUMA-Non-UniformMemoryAccess多CPU