Netty高级功能(三):性能指标采集监控

1、Netty I/O线程池性能统计

线程池(workGroup)中待线程(NioEventLoop)处理的消息队列(积压队列),一个NioEventLoop对应一个线程,待处理的消息队列越大,说明NioEventLoop中线程越忙,通过这个指标可以表明I/O线程池的性能状况。

image.png

2、Netty 发送队列积压消息数

image.png

3、Netty消息读取速度性能统计

image.png

4、Netty 消息发送速度性能统计

在netty流控那一章节,我们已经看过消息发送时的源码,当我们调用channle的write方法时,消息先进入一个队列(链表),再写入TCP缓存区,所以当我们统计消息发送速度时,如果在调用write方法之后就对发送的字节数做计数,统计结果就不准备。

image.png
image.png
public void responseCmd(SocketChannel socketChannel, Byte[] response) {
        //write是异步的
        ChannelFuture channelFuture = socketChannel.writeAndFlush(response);
        channelFuture.addListener(new ChannelFutureListener(){
          @Override public void operationComplete(ChannelFuture future) throws Exception
          {
              //当触发回调时,说明消息已经写入缓冲区队列
              totalSendBytes.getAndAdd(response.length);
          }
        });
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这一章节,我们通过例子学习netty的一些高级特性。 1、netty客户端流控 在有些场景下,由于各种原因,会导致...
    雪飘千里阅读 16,330评论 1 8
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,828评论 1 32
  • 作者:李林锋 原文:http://www.infoq.com/cn/articles/netty-high-per...
    杨鑫科阅读 4,150评论 0 64
  • Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架...
    AI乔治阅读 2,836评论 0 32
  • 春天是最喜欢的一个季节,无论是枯树的嫩芽、草丛里零星的绿意、还是盛开的油菜花,或者是最喜欢绽放的红梅,都如此让人兴...
    Who_Know阅读 444评论 0 1

友情链接更多精彩内容