Dubbo 性能调优经历(一)

本文分享了通过优化数据库操作、调整服务部署策略和服务间调用等方式提高Dubbo服务性能的经验,展示了如何从1700TPS提升至3800TPS的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dubbo调优经历

原型阶段,主要影响如下:

服务的日志I/O 会影响性能。

数据库的I/O 会严重影响性能。

服务的部署情况 会影响性能。

原型优化:

1.优化数据库,尝试使用内存,增大内存buff。

2.调整服务部署,服务间调用,由于该宿主机器的cpu占用率不同和磁盘I/O网络等不同,需要不断的尝试服务部署机器之间的分配,要将需求资源大的服务部署在较好的环境,并且竞争较少的情况可以提升tps。

3. 服务本身耗时极低,几乎忽略。

4.将调用者和被调用者尽量部署在同一宿主机,可以降低一部分耗时。

5.将所有服务部署在一台非常好的机器 32U 128G机器上,CPU /内存皆没达到瓶颈,将数据库部署在另外一台这样的PC物理机上,延迟会大大降低,但是依然存在RPC调用在400并发下8-10秒的耗时。(后续可以优化这个RPC耗时) 


过程:

使用工具:

Linux 常用工具包

Jemeter http post请求

 

涉及中间件:

Zookeeper

Redis

 

原型阶段:

共涉及服务10个,涉及数据库5个。内部协议 dubbo 对外协议:rest

 

部署大致如下:

3台pc机,3台宿主机,超分,每个虚机上部署一个服务。大致是宿主机4颗8核2GHz *2、4颗6核心1.87GHx  *1、4C8G PC机8台。

 

部署完后直接使用jemeter跑出结果 1700TPS。

 

现象:各服务和数据库的cpu都不高,三台数据库io很高,相关应用服务出现网络阻塞等待。

分析结果:三台数据库插入操作多,数据库服务器的磁盘io达到瓶颈

 

改动1:因为资源有限,无法顾及I/O问题,顾临时修改数据库为内存写,不落盘。TPS提升

但是查看到redis内存消耗不足,redis服务器内存达到瓶颈

此时tps:2400

 

改动2: 将Redis移至主频和内存高的pc机,资源有限,将原本pc机上的服务移至虚机。

Tps提示至2800

 

资源有限,没有进一步测试。

 

后将服务的分布调整更合理之后,并将数据库部署在本地PC机上,磁盘IO 单线程10M/s的情况下,并发数400达到TPS 3800.

 

Duboo单服务调用,使用rest接口,TPS 1W9(关掉日志等IO影响)(开启日志1W3 达到写日志磁盘I/O瓶颈 写等待出现队列 utils 90%)

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值