ݺߣ

ݺߣShare a Scribd company logo
?Чȫ CDN 
? CDN ?ļ 
! 
?-?ϵͳ 
Զȣ
? 
? ! 
? Ż! 
? ȫ! 
? չ
3
ڰ?Ͱ 
4
?Ͱ???Եļս 
? 2012ԱèĽ׶Ϊ11600Ԫ?! 
? AmazoneBay֮! 
? ??վȫǰ100Alexaͳƣ! 
? taobao.com(#9) tmall.com(#18) alibaba.com(#68)! 
? 2013˫11?ٻ?һЩ! 
? 6ӳɽ10! 
? ۶350.19ڣ?ֻԱ?֧53.5! 
? ɽܱ1.71! 
? ȫ?ÿ4.02? 
5
?CDNſ 
? ȫ20?200ڵ! 
? 6Tbps?! 
? 1񵥽ڵ40Gbps?20QPS! 
? 2013˫11ֵ3.4Tbps! 
? ҵ缼ǰصĿԴо! 
? ԱCDN?CDN 
6
?CDN 
? ص! 
? ȶ! 
? ȫ! 
? ?! 
? Լɱ 
7
?CDN?ͼ 
8
?CDNֲ 
9
10 
Ż
?CDN?ԣȫ 
11
DNSPharos 
? ?зĵϵͳɿԣЭչԶãҲʡ 
˲ɹ?豸ijɱ! 
? ?ܣ?ְ֧򼶱! 
? ?ֶ֧༶IJԵȣڵϲ?ûIJ?! 
? ?֧EDNSչЭ! 
? ϵͳ밲ȫϵͳˢϵͳݹϵͳ 
! 
? PortalAPItcheckȶֹ?ʽ 
12
ʵʱϵͳCMOS 
? ݻĵ! 
? ȫɿأ˶ɵĴɱ! 
? LDNS𡢽ڵ㼶Ԥ⣬ֵǰǰ 
Ӧ! 
? ȷ׼ʵʱ! 
? ƽ?С15%ȿԵ5M! 
? Local DNSĵ! 
? 5Ӽ׼ʵʱ! 
? ׼ȷȵֱӰ?û! 
? ?Զĵ! 
? ֻҪȵij趨Լ?Զ㣬? 
ӦIJԣpharos 
13
Pharos+CMOSܹ 
14
׼ȷԵҪIPַ 
? ݲɼԴ! 
? ȨͶƱϵ! 
? ԸԴòͬȨأ?ͶƱ! 
? ȨصãǸԴ?ã 
?ߣȨ?ߣ෴! 
? ԱַIPУ! 
? ϴεĽ?е 
15
?CDNڵϵͳڲܹͼ 
? ؼ! 
? LVSIJ㸺ؾ! 
? Tengine߲㸺ؾ! 
? ȫ! 
? ҵ߼! 
? SwiftHTTP! 
? ?cache! 
? ̣SSD/SATA 
16
IJ㸺ؾ⣺LVS 
? DRģʽ! 
? INLVSOUTIJ! 
? ؾ㷨?wrr! 
? ˫LVSActive-Activeм? 
17
߲㸺ؾ⣺Tengine 
? ?Nginx?HTTP! 
? ѾԴڣhttp://tengine.taobao.org! 
? ?һhashconsistent hashing! 
? ?! 
? Ͷ! 
? ! 
? SPDY v3?֧! 
? SO_REUSEPORT?֧! 
? ?worker֮ľ! 
? CPUʹ?! 
? ȵ 
18
?HTTPSwift 
? ! 
? HTTP/1.1Э顢proxy! 
? ڴ滺桢̴洢! 
? HTTPSЭؼԵ?֧! 
? ҵ! 
? ȷpurge/dir purge/purge! 
? ȨX-Referer-Acl! 
? ESI+gzip! 
? άع! 
? õĹ! 
? if?֧! 
? ݴΪֻٽ?д̲ɶժ! 
? ḻͳϢ19
Swiftܹͼ 
? ?! 
? HTTP! 
? Դ! 
? 洢! 
? ! 
? ݹ?ϵͳ 
20
SwiftŻ 
? ߳¼??ģ! 
? ?С̼߳?л! 
? ڴУ?һֻҪ?һ߳! 
? ????紦ƿ! 
? 304ûDisk I/O! 
? ʹ?trieʵֿƥ䣬ACLַƥ! 
? ʹ?hashheader idʵ?ɾӦͷ! 
? ʹ?libaioLinuxںAIOŻIO! 
? ??ļ?Ƭͬ?ƬԷֵеĴϣ԰?Ƭȵ! 
? ߲㸺ؾ⡢ȵcache! 
? ּ洢ȵǨ 
21
Swift?ļ洢ϵͳ 
? TCOSSTaobao Cyclic Object Storage System! 
? SquidCOSSϵͳĶƿ! 
? ?֧Ȱβ! 
? COSSʵƽ2.13I/O! 
? TCOSSʵƽ1IO 
22
TCOSS洢ϵͳ 
? ûopencloseٵĶдIO 
23 
ͼ1 ûдͼ2 д֮д 
ͼ3 Ӵ̶
SwiftȵǨ㷨 
? 洢! 
? ڴ! 
? SSD! 
? SATA! 
? ݶȶȾIJ 
24
Tengine+SwiftŻ 
? Ⱥ??ļ?Ƭ湦! 
? HTTPֶѹ㷨! 
? ?SPDYĶ·?ü! 
? ·?ֺӰ! 
? ٶԱض?ڵռ? 
25 
HTTP SPDY ? 
QPS 33.5K 33.4K ͬ 
User CPU 15.00 12.83 14.47%Żͣ 
Sys CPU 16.20 12.77 21.17%Żͣ 
Sirq CPU 10.04 8.48 15.53%Żͣ 
Total CPU 41.25 34.10 17.33%Żͣ
TCPЭջŻ 
? Ľʩ! 
? ʱĶֻ! 
? Ķֻ! 
? ?Ӧijʼ?! 
? ӵ㷨! 
? ?Сӳʱʱ 
26
TCPЭջŻЧ 
27
TCPŻЧʱ 
28
?ҳ?Ż 
? Trimȥ?ҳ?Ŀո񡢻??СTABע͵ȣԼ?ҳ 
???С! 
? gzipijЩ?ûʵ?֧gzipȴ?ǽ 
proxyĵgzipܻ̽?вԣ? 
gzip?ûݵ??С! 
? SDCHѹ㷨Żʹ??С! 
? Combo϶JavaScript/CSS?ļ?һ󣬴? 
??Ŀ 
29
30 
ȫ
?IJϵͳAliGuard 
? DPDK֮ϵ??! 
? ?ּ֧Ⱥ! 
? ǣ! 
? IJDDoS! 
? DNS 
31
?߲TMDϵͳܹ 
32
TMD?һЩؼ 
? ģ黯CCģ顢hotpatchģ! 
? socketpair ʵֶ̼ø֪ͨ! 
? ڴhashʵ??! 
? ©ͰͰ㷨ʵQPS! 
? LRU?ʵCCͳ㷨! 
? ̣߳libevʵ??ͨſ 
33
TMDCC?һ? 
? ԭ?ҳ?60KB! 
? 9QPS! 
? 41Gbps! 
? ʵʽʡ200 
34
߲WebӦ?÷?ǽ 
? Tengineģ飨WAF! 
? ?ЧĹƥ! 
? ?ֹ! 
? SQLע?! 
? XSS! 
? Web Shell! 
?  
35
άԸĽ 
? ! 
? Tengine?ļ! 
? HTTP?ȥconfigserverӦ! 
? lazy£ֻ¼ʹ! 
? cacheʱ! 
? ʧЧ?! 
? Ҫreload 
36
37 
չ
?CDNŻ 
? ?Ӧ?! 
? ڵܹŻ! 
? ϵͳľϸ! 
? ά?ƽ̨ϵͳ! 
? ??Ŀ! 
? ??ûṩȶȫ?áͳɱCDN 
38
Ƹ 
? ?һļ?һļս! 
? Ƹְλ! 
? CDNϵͳ?ʦC/C++! 
? Web?ʦC/C++! 
? Java?ʦ! 
? ӭͼ! 
? ʼshudu@taobao.com! 
? ΢@! 
?  
39
ٱ

More Related Content

ٱ