在个人开发机上进行了一轮性能测试,结果如下:
编号 | 场景 | through put(MB/s) |
---|---|---|
1 | 单条日志162 byte,配置producer日志行数阈值为4096,后台配置1个io线程,单进程20个线程调用producer发送。 |
8.5 |
2 | 单条日志162 byte,配置producer日志行数阈值为4096,后台配置10个io线程,单进程20个线程调用producer发送。 |
75.2 |
3 | 单条日志162 byte,一个loggroup 4096条日志,单进程、单线程裸裸调用sdk发送。 | 8.7 |
4 | 单条日志162 byte,单进程、20线程裸裸调用sdk发送单条日志。 | TCP短链接,端口耗尽 |
编号 | 场景 | through put(MB/s) |
---|---|---|
1 | 单条日志162 byte,配置producer日志行数阈值为4096,后台配置一个io线程,单进程10个线程调用producer发送。 |
7.6 |
2 | 单条日志162 byte,一个loggroup 4096条日志,单进程、单线程裸调用sdk发送。 | 7.8 |
3 | 单条日志162 byte,单进程、10线程裸调用sdk发送单条日志。 | 0.1 |
- 通过对比试验一中1和3的结果,producer在处理每次发送单条日志时,merge发送的效果很好,和等价的大包用java sdk发送的io性能相差无几。
- 通过对比试验一中2的结果,如果用户单机日志压力比较大,可以调高io线程的数量,满压力情况下,throughput和线程数量成正比。