Huang

淘宝 柏林

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

Numbers Everyone Should Know
L1 cache reference 0.5 ns 
Branch mispredict 5 ns 
L2 cache reference 7 ns 
Mutex lock/unlock 25 ns 
Main memory reference 100 ns 
Compress 1K bytes with Zippy 3,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 disk 20,000,000 ns
Send packet CA->Netherlands->CA 150,000,000 ns  CA代表加州

1us=1000ns
1ms=1000us
1s=1000ms

顺便分析一下,有人号称淘宝的TAIR可以达到5w的QPS,可不可能,为什么?

答:

不可能。

Round trip within same datacenter 500,000 ns

数据中心来回一次是0.5ms(ping一次大约花费0.45ms,所以这个数据比较合理),单线程的QPS是2000,实际单线程的QPS是不可能达到2000的,取决于server端的数据结构,序列化消耗,锁消耗,等等。

在多线程并发下,完美情况下一次发送25个数据,1s发送2000次看似可能的。

但是:
1:不可能每次都发送25个数据,TAIR每一次发送,最多20个数据,总大小不会超过8192字节。 传输数据也有时间消耗。

2:就算每次都发送了。5w个数据,假设每个数据0.5k,宽带已经超过了20M,100MBps的有效宽带大约在12.5MBps左右(每秒传输量)。

所以所谓的5w的QPS,是不可能达到的。

实际值:TAIR公布的测试数据是250个线程大约5500的QPS,这个数字还算合理。

posted on 2011-01-31 00:57  Baichuan  阅读(284)  评论(0)    收藏  举报