分布式块存储系统性能优化之路
亓武强分布式存储架构师
关于华云网际
国内首个超融合(FusionStack®)应用案例SPC(存储性能理事会)4家中国成员之一SPC认证全球性价比最高的分布式存储FusionStor®
基于SPDK的fusionstor的spc1性能
衡量存储产品好坏的标准?
高可用功能性能
HDD时代fusionstor主要的性能优化方法
HDD随机写性能慢
增加raid卡cache
千兆网带宽低
升级到万兆
换上SSD,就能获得高性能表现?
NVMESSD比SATASSD的性能又大幅提升
PCI-E接口消除了硬件上的延时NVMe协议大幅降低了协议开销
存储软件又该如何应对???
与内核相关的两个性能杀手
上下文切换内存复制
上下文切换的时间消耗
2Mtask,10cpucore,contextswitching需要消耗多少时间
影响上下文切换的因素
时间片用完,CPU正常调度下一个任务被其他优先级更高的任务抢占(无节制使用线程)执行任务碰到IO阻塞,调度器挂起当前任务,切换执行下一个任务(阻塞性系统调用)用户代码主动挂起当前任务让出CPU时间多任务抢占资源,由于没有抢到被挂起(互斥锁)硬件中断
任务阻塞
内存复制的时间消耗
2Miops,4kblocksize,10cpucore,memcpy需要消耗多少时间?
.
网络层内存复制
影响性能的其他因素
•软件算法•锁•Cpu(cache,tlb,分支预测)•内存(pagefault,numa)•编译器
避免使用互斥锁(无锁架构)避免使用阻塞io系统调用(所有io操作全部设置为非阻塞)避免使用过多的线程(主io路径的线程数和设定的cpu数量相同)尽量减少io路径下的内存复制(rdma/dpdkzerocopy)尽量降低硬件中断数量(rdma/dpdk)
Thekernelisn’tthesolution.Thekernelistheproblem
编程模型:同步非阻塞
任务调度:coroutine事件处理:polling多核同步:sessionbasedhash
数据路径:kernel-bypass
Network:RDMA/DPDKFlash:libaioMem:hugepage
基于rdma的存储架构
libaio
IO
ETHRDMATiSarCgSeItFusionStor
IB
(iser)
stack
Blocklayerkernel
NVMe
Userspace
MEMDriver
DDR
完美支持DPDK网卡、NVMe闪存硬件,基于IntelSDPK软件架构用户态运行设备驱动,零拷贝机制,大幅降低内外切换性能损耗Polling定点轮循驱动,降低中断开销,高效并发IO处理
IO在KERNEL时间消耗
Fusionstoraio处理流程
Kernel-bypass架构释放NVMe闪存极致性能
NVMeDriver
NVMe
(SPDK)
IO
ETHRDMATiSarCgSeItFusionStor
IB(iser)stackMEMDriverDDR
Userspace
完美支持RDMA、NVMe闪存硬件,基于IntelSDPK软件架构用户态运行设备驱动,零拷贝机制,大幅降低内核上下文切换性能损耗Polling定点轮循驱动,降低中断开销,高效并发IO处理
SPDK用户态NVMe驱动性能对比
Fusionstor使用SPDK处理IO的流程
Fusionstor启动Spdk和不启动spdk性能对比
编程模型:同步非阻塞
任务调度:coroutine事件处理:polling多核同步:sessionbasedhash
数据路径:kernel-bypass
Network:RDMA/DPDKFlash:SPDKMem:hugepage
完全消除上下文切换
Kernel-bypass带来的实际性能表现
THANKYOU
声明:
该资讯来自于互联网网友发布,如有侵犯您的权益请联系我们。