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,这个数字还算合理。

浙公网安备 33010602011771号