TPS/QPS M吞吐 延时(注意这个和QPS不一定*核数/s,还有IO时间等等待时间)
nginx
作为代理。文件1k情况 24核,0.1ms. 50万pqs.500m/s吞吐
http://chenlinux.com/2013/02/…
作为反向代理
proxy_keepalive 的时候 请求1k。30万qps。500M。cpu40%
非keepalive时 并发2400.就满了 40ms延时
kafka
基本可以说延时2ms。单机1k大小 十万级TPS。多线程生产和消费更多。kafka线程不宜过多。rocketmq稳定(1008万和1008000的差别)。
对于这些测试,我有六台机器,每台都有以下规格
具有六个内核的Intel Xeon 2.5 GHz处理器
六个7200 RPM SATA驱动器
32GB的RAM
1Gb以太网
Kafka集群设置在三台机器上。六个驱动器直接安装,没有RAID(JBOD样式)。剩余的三台机器我用于Zookeeper并用于生成负载。
https://engineering.linkedin….
生产者
单线程 3x异步 100B时80万pqs.80m/s 1K时10万qps,100m/s
同步单副本 40万。40m
3线程 200万。200m
小字节更难处理(100B)
单一消费者
每秒940,521条记录
(89.7 MB /秒)
三个消费者
每秒2,615,968条记录
(249.5 MB /秒)
端到端延迟(副本复制)
2毫秒(中位数)
3毫秒(第99百分位数)
14毫秒(99.9百分位数)
我们已经谈了很多吞吐量,但是消息传递的延迟是多少?也就是说,我们发送的消息需要多长时间才能传递给消费者?对于此测试,我们将创建生产者和消费者,并重复计算生产者将消息发送到kafka集群然后由我们的消费者接收所需的时间。
请注意,Kafka仅在完全同步的副本集确认消息时才向消费者发出消息。因此,无论我们使用同步还是异步复制,此测试都会给出相同的结果,因为该设置仅影响对生产者的确认。
文件
以下均为1M
内存 顺序0.25ms.非顺序1ms 5G/S 随机比SSD块20倍 顺序5倍
SSD 顺序1ms.非顺序30ms. 最快1G/S。平时单词少量可以说0.1ms了。数据小会更快。
普通磁盘 顺序读30ms.一次寻道10ms。最快应该是10ms,无论大小.目前是3ms
同城跨机房网络延时:5ms
同机房网络延时:0.5ms
跨城北京到广州:30ms
mysql慢请求设置:100ms。正常单主键0.5ms。带复杂语句50ms
主从延时:1ms。不超过10ms
二级库延时:10ms
redis慢查询 。按照万/s无睡眠,猜测在0.1ms以下
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倍。
发表回复