阿里云CDN高性能Cache系统架构之道


阿里云CDN高性能Cache系统 架构之道 •  阿里云CDN事业部 – 张紫荣(千石) 议程 •  阿里云CDN介绍 •  高性能设计精要 •  Cache系统架构 •  软件性能调优 议程 •  阿里云CDN介绍 •  高性能设计精要 •  Cache系统架构 •  软件性能调优 阿里云CDN •  源于淘宝CDN,服务天猫,支付宝,AliExpress •  30+国家,300+节点,10Tbps带宽能力储备 •  国内访问量TOP 100的网站9家使用阿里云CDN 阿里云CDN系统架构 阿里云CDN节点架构 议程 •  阿里云CDN介绍 •  高性能设计精要 •  Cache系统架构 •  软件性能调优 设计原则 •  均衡使用CPU多核处理能力 •  高效合理地使用和控制内存 •  最大化SSD IOPS和吞吐 •  小包跑满万兆网卡,中断平衡 充分利用CPU •  多进程/多线程 •  异步化/无锁化 •  减少上下文切换 •  减少系统调用 高效管理内存 •  降低多线程分配带来的锁开销 •  避免小块内存分配引起碎片 •  应用层自身维护内存池 •  使用tcmalloc /jemalloc 发挥SSD特性 •  单线程按Block对齐写入 •  小数据写入在内存合并 •  DIRECT I/O写裸盘 •  读取不要小于一个Page 跑满万兆网卡 •  使用网卡硬件多队列 •  网卡中断和CPU绑定 •  使用SO_REUSEPORT •  连接在单个线程处理 议程 •  阿里云CDN介绍 •  高性能设计精要 •  Cache系统架构 •  软件性能调优 阿里云CDN Cache架构 •  PASS架构 •  Parallel •  Asynchronous •  Scalability •  Simple •  性能数据 •  整体服务能力是开 源软件的2.5倍。 多线程任务交互模型 TCOSS文件系统 •  DIRECT I/O写裸盘、绕过FS、不使用page cache •  顺序写/随机读,mem_buf 在内存做写合并 •  省去open和close系统调用 Hash Trie替换Hash table 无锁LRU链表 高性能目录刷新 •  支持百万级刷新能力 •  对RT的影响在1毫秒以下 议程 •  阿里云CDN介绍 •  高性能设计精要 •  Cache系统架构 •  软件性能调优 CPU优化 •  应用优化 •  基于Trie树的ACL优化 •  完美hash处理http header •  系统优化 •  CPU亲和性绑定 •  避免false sharing mpstat vmstat ps top pidstat taskset perf 内存优化 •  应用优化 •  索引优化 •  将索引压缩到一个cache line之内 •  哈希桶锁优化 •  固定个数把锁,按哈希桶取模 •  系统优化 •  关掉SWAP •  /proc/sys/vm/swappiness •  swapoff –a •  设置OOM策略 •  /proc/$pid/oom_adj •  /proc/sys/vm/overcommit_memory •  /proc/sys/vm/overcommit_ratio vmstat pmap top sar slabtop I/O优化 •  应用优化 •  小对象写在内存合并 •  304 响应不读硬盘 •  小对象读只需一个I/O •  关闭系统预读 •  系统优化 •  设置调度算法 •  /sys/block//queue/scheduler •  调整IO请求队列 •  /sys/block//queue/nr_requests iostat iotop pidstat MegaCli smartctl blktrace 网络优化 •  应用优化 •  合理使用TCP选项 •  TCP_DEFER_ACCEPT •  TCP_CORK •  TCP_QUICKACK •  系统优化 •  增加半连接队列 •  net.ipv4.tcp_max_syn_backlog •  net.core.somaxconn •  降低TCP开销 •  net.ipv4.tcp_sack •  net.ipv4.tcp_fack •  降低连接开销 •  net.ipv4.tcp_fin_timeout •  net.ipv4.tcp_tw_reuse netstat ifconfig sar ip nicstat mtr tcmdump 线上性能数据 指标 Swift 开源Cache 性能比 qps 160k 140k 114% rt 5ms 25ms 20% cpu 54% 73% 74% ioutil 150% 250% 60% load 8 14 57% 架构之道 变未知为已知, 站在已知的成功之上, 避免重复已知的失败。 推荐两本书 推荐资料 •  hp://exadat.co.uk/2015/01/29/cpus-memory-storage-and-database-engines- the-shape-of-things-to-come/ •  hp://mechanical-sympathy.blogspot.com/2013/02/cpu-cache-flushing- fallacy.html •  hp://duartes.org/gustavo/blog/post/what-your-computer-does-while-you- wait/ •  hps://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram •  hp://codecapsule.com/2014/02/12/coding-for-ssds-part-2-architecture-of-an- ssd-and-benchmarking/ •  hp://cd-docdb.fnal.gov/0019/001968/001/Linux-Pkt-Recv-Performance- Analysis-Final.pdf •  hp://www.slideshare.net/hisaki/x86-hardware-for-packet-processing •  hp://goog-perools.sourceforge.net/doc/tcmalloc.html •  hps://soware.intel.com/en-us/arcles/avoiding-and-idenfying-false- sharing-among-threads •  hp://brendangregg.com/books.html 求贤若渴 •  单机百万QPS的软件等你来打造 •  10Tbps带宽能力储备等你来调度 •  遍布全球的分发网络等你来优化 •  发送简历到:qianshi@taobao.com
还剩29页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

bger

贡献于2015-10-28

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf