smallnest / gitalk

gitalk for colobu
19 stars 0 forks source link

流行的rpc框架benchmark 2018新春版 #25

Open smallnest opened 6 years ago

smallnest commented 6 years ago

http://colobu.com/2018/01/31/benchmark-2018-spring-of-popular-rpc-frameworks/

smallnest commented 6 years ago

test long title

Lancelothe commented 6 years ago

您好,想问下,比起两年前的那篇文章,看这次grpc性能提升很大了,总的来说,现在您推荐使用哪种RPC呢。和Spring-Cloud结合的。

smallnest commented 6 years ago

@Lancelothe 您好,想问下,比起两年前的那篇文章,看这次grpc性能提升很大了,总的来说,现在您推荐使用哪种RPC呢。和Spring-Cloud结合的。

grpc去年的一种重要工作就是提升性能,而且卓有成效。(这里指grpc-go)

你既然限定了spring-cloud,那必然是spring-cloud/spring-boot了

eftrueboy commented 6 years ago

为什么没有ice的测试

javacnee commented 6 years ago

把zeroc ICE加进去测试对比一下呗。

kevinwangC commented 5 years ago

请问下, 测试rpc性能您用的什么测试统计软件? 还是自己统计的数据? 谢谢

smallnest commented 5 years ago

@kevinwangC 请问下, 测试rpc性能您用的什么测试统计软件? 还是自己统计的数据? 谢谢

自己统计

247292980 commented 5 years ago

有大佬说不考虑网络传输,在本机内的测试没有参考价值。大神怎么看?

smallnest commented 5 years ago

@247292980 有大佬说不考虑网络传输,在本机内的测试没有参考价值。大神怎么看?

我一般不会话说的这么绝对。

网络传输的确是影响rpc服务的一个因素,比如跨太平洋调用服务的话,可能服务调用时间是200毫秒,其中180毫秒都花在了网络传输上,这个时候可能各种高性能rpc框架的差别可能就不太大了。但是考虑到微服务一般会在同一个机房中调用,网络传输可能影响不大,建议在自己的环境中针对自己的case做一个比较。

另外这个测试主要是针对io敏感的测试(sleep), 并未对计算敏感的场景进行测试,或许将来的测试我会加上需要大量cpu计算的微服务的场景进行测试。

247292980 commented 5 years ago

@247292980 有大佬说不考虑网络传输,在本机内的测试没有参考价值。大神怎么看?

我一般不会话说的这么绝对。

网络传输的确是影响rpc服务的一个因素,比如跨太平洋调用服务的话,可能服务调用时间是200毫秒,其中180毫秒都花在了网络传输上,这个时候可能各种高性能rpc框架的差别可能就不太大了。但是考虑到微服务一般会在同一个机房中调用,网络传输可能影响不大,建议在自己的环境中针对自己的case做一个比较。

另外这个测试主要是针对io敏感的测试(sleep), 并未对计算敏感的场景进行测试,或许将来的测试我会加上需要大量cpu计算的微服务的场景进行测试。

问个无关,测试通常参考什么参数或者以什么基准。我一般都是看你们测试什么好用用什么的,现在对你们如何测试有了兴趣。主要是这方面的术语,工具什么的都不熟,所以学都不好查...

2821840032 commented 5 years ago

还有一个框架Orleans, 用着比较顺手,希望楼主加上

chenzd91 commented 5 years ago

为什么我测试出来rpcx比go-micro差很多?

用consul在2台服务器上建了个集群,在其中一台上跑benchmark。数据传输都用protobuf协议。 测试k个并发(k个独立的client),也就是对应rpcx-benchmark里面的-c和-n值相同的情况。

k值最大取到10000,go-micro响应时间平均都在1-2ms,rpcx平均响应是几百ms。

smallnest commented 5 years ago

@chenzd91 为什么我测试出来rpcx比go-micro差很多?

用consul在2台服务器上建了个集群,在其中一台上跑benchmark。数据传输都用protobuf协议。 测试k个并发(k个独立的client),也就是对应rpcx-benchmark里面的-c和-n值相同的情况。

k值最大取到10000,go-micro响应时间平均都在1-2ms,rpcx平均响应是几百ms。

如果你想使用10000个xclient测试的话,要公用一个ConsulDiscovery。 因为每个ConsulDiscovery都会建立一个goroutine去监听consul, 占用了大量的时间。

另外我建议n要远远大于c, 否则每次请求都建一个连接太耗费资源了,好的实践是公用,保持长连接。

0giant commented 5 years ago

没看到tars的数据呀?

cupide1991 commented 4 years ago

想问下测试步骤是怎样的?github直接编译出client和server?然后用-c和-n参数去测试?

smallnest commented 4 years ago

@cupide1991 想问下测试步骤是怎样的?github直接编译出client和server?然后用-c和-n参数去测试?

HUTOYP commented 4 years ago

应该更新一版2019的,把brpc囊括进来了,看C++版本的性能应该比go更加优秀吧

Guan421 commented 3 years ago

想问下这个测试的目的是什么呢?只是想看看多个框架的性能,来选择项目上适合用什么框架吗?