-
理论
-
性能数字
- * L1 cache reference 0.5 ns
- * Branch mispredict 5 ns
- * L2 cache reference 7 ns
- * Mutex lock/unlock 100 ns
- * Main memory reference 100 ns
- * Compress 1K bytes with Zippy 10,000 ns
- * Send 2K bytes over 1 Gbps network 20,000 ns
- * Read 1 MB sequentially from memory 250,000 ns
- * Round trip within same datacenter 500,000 ns
- * Disk seek 10,000,000 ns
- * Read 1 MB sequentially from network 10,000,000 ns
- * Read 1 MB sequentially from disk 30,000,000 ns
- * Send packet CA->Netherlands->CA 150,000,000 ns
-
缓存替换策略
- LRU
- LFU
- GDSF (greedy dual-size frequency)
-
系统
-
TFS (Taobao FileSystem)
-
原理:
- 针对小文件存储(<1M)
- 将小文件合成为一个大文件(Block,一般为64M)
- 客户端维护实际文件名和TFS ID的映射
- 同一文件只能有一个客户端更新,使用Lease管理
-
实现:
- 架构
- 元数据
- 文件名
- 1.0架构
- 1.3 架构
- [TODO] 代码:
-
Taobao CDN
-
架构
-
老架构(2010年前)
- 问题1:NetScaler流量限制
- 问题2: NetScaler 在转发规则较多时的性能问题
- 问题3: 在改动NetScaler时,有可能引起全站当机。
-
新架构 (2010年)
- L4 Switch在TCP/UDP层 (一般针对HTTP,所以是TCP)
- L4 负责负载均衡几个HAProxy,从而可以得到很高的ThroughPut(单VIP 100G)
- HAProxy再负责应用层的转发
- 风险分担,改动单个HaProxy影响不大
- 所有频道同一调度,提交命中率
-
性能
- 节点规模:30台 DELL PowerEdge 2950服务器
- • 逻辑结构:2 LVS + 30 Haproxy + 60 Squid
- • 时间:2010年5月上线运行
- • 理论最大负载能力:12Gbps
- • 单台2950服务器可到400Mbps的吞吐率
-
• 单台存储:160G SSD + 143G SAS * 4 + 1T SATA
- • 按对象访问热点进行迁移:最热的进SSD,中等热度
的放SAS,轻热度的存SATA
- • 单squid最大object数目:3000万
- • Cache请求命中率:97.5%
- • Cache字节命中率:97.5%
-
Squid
- [TODO] Storage: COSS, AUFS, DiskD
-
Replace Policy
- greedy dual-size frequency (GDSF)