奇怪的流量差

最近在开发一个消息中间件,使用了hbase作为存储引擎。今天在进行性能测试的时候发现一个极其诡异的现象:client向我们server拿数据的时候,server网卡的进出流量极其不均,进来的流量居然跑满了网卡,出去才30M左右(server进来的流量是从hbase scan数据,出去的流量是server将从hbase scan的数据发送给client)。按道理来说,进出的流量应该是1:1的才对,为什么出现这种奇怪的流量差呢?

 

经过反复的调试,反复的review代码,我把注意力集中到了hbase Scanner对象的setCaching()这个方法上。每次client请求数据时,我都调用了此方法setCaching(1000),而client实际只要了100行。setCaching(1000)的意思就是从hbase server一次抓取1000行数据到我们的server上,然后scan出前100行,发送给client。这就可以清楚的看到server进来的数据量是出去的10倍。也就可以解释奇怪的流量差了。哈哈。最后的解决方案当然是setCaching client实际请求的行数,而不是固定1000行。这样就可以避免网卡资源的浪费了。

 

接触新东西的时候,一定要认真阅读官方文档,清楚自己的每一个操作都将干什么,这是必须的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值