通常中間件性能能夠用一下來衡量:TPS/QPS M吞吐 延時(注意這個和QPS不必定*核數/s,還有IO時間等等待時間)。第一部分列出經常使用中間件的包含nginx,mq,zk,mysql,redis,leveldb,ceph。
除了中間件,在評估自身延時時考慮單機的IO,網絡,計算瓶頸。包含常見內存文件網絡耗時html
做爲代理。萬兆網卡,文件1k狀況 24核,0.1ms. 50萬pqs.500m/s吞吐
http://chenlinux.com/2013/02/...
做爲反向代理
proxy_keepalive 的時候 請求1k。30萬qps。500M。cpu40%
非keepalive時 併發2400.就滿了 40ms延時mysql
基本能夠說延時2ms
。單機1k大小 十萬級TPS 百兆
。多線程生產和消費更多。kafka線程不宜過多。rocketmq穩定(100*8萬和100*8000的差異)。
對於這些測試,六臺機器,每臺都有如下規格:具備六個內核的Intel Xeon 2.5 GHz處理器,六個7200 RPM SATA驅動器,32GB的RAM,1Gb以太網
Kafka集羣設置在三臺機器上。六個驅動器直接安裝,沒有RAID(JBOD樣式)。剩餘的三臺機器我用於Zookeeper並用於生成負載。linux
https://engineering.linkedin....nginx
生產者
單線程 3x異步 100B時80萬pqs.80m/s 1K時10萬qps,100m/s
同步單副本 40萬。40m
3線程 200萬。200m
小字節更難處理(100B)redis
單一消費者 每秒940,521條記錄(89.7 MB /秒)
三個消費者 每秒2,615,968條記錄(249.5 MB /秒)sql
端到端延遲(副本複製)
2毫秒(中位數)
3毫秒(第99百分位數)
14毫秒(99.9百分位數)
Kafka僅在徹底同步的副本集確認消息時才向消費者發出消息。所以,不管咱們使用同步仍是異步複製,此測試都會給出相同的結果,由於該設置僅影響對生產者的確認。docker
zk性能 https://zookeeper.apache.org/...
很通常的機器2核。應該10萬併發沒問題
1k 5server 萬到幾十萬7臺機器有失敗1,2,3並迅速恢復,選舉時間200ms。吞吐穩定4萬
apache
mysql慢請求設置:100ms。正常單主鍵0.5ms。帶複雜語句50ms。單實例控制T吧,總幾T。
hbase PB
主從延時:1ms。不超過10ms
二級庫延時:200ms
redis慢查詢 。按照萬/s,猜想在0.1ms如下。單實例5G,單臺機器100G。
leveldb 4M 1M~10^7M 1T
mysql寫入千條/s,讀萬應該沒問題。redis 寫入 萬條/s 7M/s(k+v 700bytes,雙核)讀是寫入的1.4倍 mem 3gb 2核。這兩個網上搜的,不保證正確,就看個大概吧。
SSD上 rocksdb隨機和順序的性能差很少,寫要比讀性能稍好。隨機讀寫1.7萬條/s 14M/s (32核)。batch_write/read下SSD單線程會好8倍。普通write只快1.2倍。緩存
https://zhuanlan.zhihu.com/p/...
https://cloud.tencent.com/inf...
http://www.dockerman.com/ceph...
1個DC SSD(日誌&緩存)+16個大容量硬盤;
隨機讀
基於4KB隨機讀測得108萬IOPS和3.5ms
延時;8KB隨機讀IOPS降低到50萬,延時上升到8.8ms;16KB隨機讀的IOPS和延時分別爲30萬和10ms。
隨機寫
4KB隨機寫IOPS只有14.4萬
,比8KB的13.2萬沒高出太多。 600M/s?
順序寫
Ceph集羣的128KB順序讀性能達到了5248MB/s
,基本發揮出每節點雙萬兆網口的帶寬;128KB順序寫帶寬測得1927MB/s
(比隨機寫好多了)。網絡
如下均爲1M————————————
內存 順序0.25ms.非順序1ms 順序5G/S 隨機比SSD塊20倍 順序5倍
SSD 順序1ms.非順序30ms. 順序最快1G/S。平時單詞少許能夠說0.1ms
了。數據小會更快。
普通磁盤 順序讀30ms.一次尋道10ms
。最快應該是10ms,不管大小.目前是3ms
————————————————————————————
同城跨機房網絡延時:0.5ms
同機房網絡延時:0.05ms
跨城北京到廣州:50ms
1.生成一張有30張縮略圖(原始大小256K)的頁面時間:
a.順序操做,從磁盤讀+壓縮 3010ms+30256K/30Mps=560ms
b.併發:一次發送30個 18ms
2.1G 4B 整數快排
2^28 * log( 2^28 ) * 1/2(一半交換) = 21s。每次分割都要掃描一遍內存 28*1G/4Gps = 7s 和28s
3.bigtable 1k數據
隨機讀(緩存不命中) 先從GFS讀64K 磁盤IOPS10塊 每一個100.理論1000qps/s 折損爲300 所以:1k300ps
內存隨機讀 cpu限制按照10W,內存開銷大折損2萬=》20Mps
故障率