`
san_yun
  • 浏览: 2654549 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

socket参数对性能的影响

 
阅读更多

今天发现线上一台机器的cilent端很慢,通过打点记录相关耗时:

写道
server:
13-03-26 14:30:12 [INFO] com.duitang.biz.blog.impl.MysqlBlogQueryServiceImpl - queryBlogDetail cost40 ms
13-03-26 14:30:12 [INFO] com.duitang.dboss.remote.nio.DbossServerHandler - dboss invoke cost 45 ms
13-03-26 14:30:12 [INFO] com.duitang.dboss.remote.nio.DbossServerHandler - dboss invoke cost 20 ms

client
13-03-26 14:30:12 [INFO] com.duitang.dboss.client.net.ServerCenter - servercenter invoke cost 86 ms
13-03-26 14:30:12 [INFO] com.duitang.dboss.client.net.ServerCenter - servercenter invoke cost 22 ms

 通过定位发现原因在于socket没有正确设置参数,应该加上:

    public void connect() throws DbossConnectionException {
        if (!isConnected()) {
            try {
                socket = new Socket();
                socket.setReuseAddress(true);
                socket.setKeepAlive(true);
                socket.setTcpNoDelay(true);
                socket.setSoLinger(true, 0);
                socket.connect(new InetSocketAddress(host, port), timeout);
                socket.setSoTimeout(timeout);
            } catch (IOException ex) {
                throw new DbossConnectionException(ex);
            }
        }
    }

 

分享到:
评论

相关推荐

    提高 Linux 上 socket 性能 加速网络应用程序的 4 种方法

    综上所述,优化 socket 性能涉及多个层面,包括避免不必要的延迟,减少系统调用的开销,以及根据网络特性调整 TCP/IP 参数。理解这些技术并灵活应用,能帮助你构建更高效、响应更快的网络应用程序。同时,持续关注 ...

    socket性能测试脚本

    在IT行业中,尤其是在服务器开发、网络编程或系统优化领域,对Socket性能的理解和测试是至关重要的。Socket是网络编程的基础,它允许两个应用程序通过网络进行数据交换,因此,性能测试能够帮助我们了解系统的吞吐量...

    Loadrunner之socket脚本参数化方法

    《Loadrunner之Socket脚本参数化深度解析》 在Loadrunner这款强大的性能测试工具中,参数化技术是一项关键技能,它允许用户将测试脚本中的静态数据替换为动态数据,从而实现更复杂、更真实的负载模拟。对于基于...

    Socket性能测试指导.doc

    Socket性能测试是网络应用开发中的重要环节,它旨在评估应用程序在网络通信中的性能,例如吞吐量、延迟和并发处理能力。 kylinPET 是一个专门用于Socket性能测试的工具,能够支持多种网络通信协议,包括HTTP、SIP、...

    提高 Linux 上 socket 性能

    本文将深入探讨四个关键技巧,帮助提升Socket性能。 1. **最小化报文传输的延时**: Nagle算法是一种TCP优化策略,它合并小的数据片段,以减少网络上的数据包数量,降低网络拥塞。然而,这可能会增加传输延时。在...

    socket池,socket

    1. 初始化与配置:在应用程序启动时,根据预设的参数初始化Socket池,如最大连接数、最小连接数、超时时间等。 2. 获取Socket:当需要建立连接时,从池中取出一个Socket,如果池为空,则创建新的Socket。可以采用...

    SocketTool socket工具

    6. **参数配置**:用户可以根据需求调整各种连接参数,如超时设置、缓冲区大小等,以优化性能。 7. **安全性**:为了保障数据的安全,SocketTool可能还集成了加密功能,如SSL/TLS,确保通信过程中的数据不被窃取或...

    资料socket性能优化

    ### 资料socket性能优化 #### 一、引言 在开发Socket应用程序时,确保其性能至关重要。本文旨在提供四个实用的技巧帮助开发者优化Socket应用程序的性能,使其能够更高效地运行。这些技巧涵盖了Socket API的使用、...

    HP-Socket文档

    应用程序可以根据不同的容量要求、通信规模和资源状况等现实场景调整 HP-Socket 的各项性能参数(如:工作线程的数量、缓存池的大小、发送模式和接收模式等),优化资源配置,在满足应用需求的同时不必过度浪费资源...

    SuperSocket Socket C# 通讯详细介绍

    **SuperSocket Socket C# 通讯详解** 在C#编程领域,网络通信是一个不可或缺的部分,而SuperSocket则是一个强大且易用的.NET ...通过不断实践和优化,可以充分利用SuperSocket的强大能力,构建出高性能的C#网络应用。

    java socket连接池 实现

    在高并发的网络环境中,频繁地创建和销毁Socket连接会导致大量的系统资源浪费,影响整体性能。为了解决这个问题,开发人员通常会使用连接池来管理和复用已建立的Socket连接。 首先,我们来看一下Socket的基本概念。...

    socket 编程之入门与提高

    2. 套接字创建:在C++中,使用`socket()`函数创建一个套接字,参数包括协议族(如AF_INET代表IPv4)、套接字类型(如SOCK_STREAM)和协议(通常为0,系统自动选择默认的TCP或UDP)。 3. 地址结构:如`sockaddr_in`...

    Socket开发之异步Socket

    6. 状态管理:为了跟踪每个客户端连接的状态,通常会创建一个包含Socket对象和其他相关信息(如缓冲区、连接状态等)的自定义类(如`UserInfo`),并在回调函数中使用`AsyncState`参数来访问这些信息。 异步Socket...

    基于HPSocket实现 socket 通讯 - 修正版 ( C# demo 、 C++ dll )

    这包括如何创建Socket实例,设置连接参数,发送和接收数据,以及处理各种事件。 7. **C++ DLL**: C++动态链接库(DLL)提供了另一种语言实现,开发者可以在非.NET环境中使用HPSocket的功能。DLL文件可以被其他C++...

    提高socket性能

    优化Socket性能对于提高系统整体效率和用户体验至关重要。以下将详细探讨如何提升Socket性能。 1. **选择正确的套接字选项** - **TCP_NODELAY**: TCP协议默认使用Nagle算法,合并小数据包以减少网络传输。但在需要...

    smart-socket,一种高性能的Java AIO框架.zip

    4. **线程池管理**:通过自定义线程池,实现了对系统资源的精细化管理,避免了过多线程导致的资源浪费,同时也支持动态调整线程池参数以适应不同的业务场景。 5. **异常处理**:提供了完善的异常处理机制,当网络...

    HP-Socket编译-Linux

    总之,编译HP-Socket在Linux上涉及到了对socket编程的理解,以及对Brotli、Jemalloc、Zlib、mimalloc和OpenSSL等基础库的安装和集成。每个库都有其独特的优化点,它们共同为HP-Socket提供了高效、安全的网络通信基础...

    socket tool

    10. **自定义配置**:用户可以根据项目需求自定义Socket参数,如缓冲区大小、重试次数等,以适应不同应用场景。 通过Socket Tool,开发者可以更加便捷地进行Socket通信的开发、调试和测试工作,从而提高效率,减少...

Global site tag (gtag.js) - Google Analytics