`
famoushz
  • 浏览: 2934315 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

网络性能探讨

阅读更多

这周我们公司会进行新项目的research,主要是用于用户行为分析,在各个网站上采集一些用户行为然后传送到指定服务器进行数据收集,以后用于用户行为的分析,其中有一个带头的engineer,他指出希望采用ajax+tcp server的架钩模式进行这个项目,首先由于有很多网站,上百个,在用户点击一些广告的时候会由ajax 异步传输数据到指定server,这里的server可能就是一个Tcp server,这里的讨论焦点就是 是否有必要重新开发一个Tcp server去做数据收集的工作。首先他的论点是:

  1. Tcp server位于OSI 网络7层模型的传输层,这样想当然他的效率是最高的,没有了HTTP server没必要的很多东西,比如每次http 传输后http server总是会来个callback,通过tcp 就不需要了,只要来个握手就可以了没必要callback,性能自然提升了。
  2. 通过linux的 epoll 可以提升网络性能。

感觉上他的论点的确有他的道理。但是大家知道现在很多开源的高性能的网络服务器比如wildfire等都是 通过mina nio网络框架进行实现,觉得其性能不会很差,以及其他quick server,cindy都是大口碑的网络框架,我觉得是否有必要再去重新开发一个TcP server,另外关于EPoll从一些文章了解到的当访问量达到 千W级别时候,相对于传统select的确可以大幅提升性能。对于java而言听说java6已经支持了,希望大家发表高见,如何通过现有资源开发一个高性能网络服务器。

分享到:
评论
11 楼 lllyq 2007-05-24  
看看
http://blog.covalent.net/roller/covalent/entry/20070308

tomcat6看起来能够处理更多的同步请求(16000?),不过似乎有内存泄漏的问题
10 楼 robbin 2007-05-24  
kdekid 写道
就看你有没有需要做这个轮子了。如果你是需要从底层开始掌握服务器的性能,并有信心可以写出一个超过Jetty 6的服务器,那就重新写一个。你的服务器可以用到其它更先进的native non blocking 的东西,例如 Linux 2.6 的 epoll。不过你有可能需要面对更长的开发周期,更多的bug和更麻烦的维护(因为没有社区支持)。
否则的话,你可以尝试一下 Jetty 6(如果你用 Java 开发服务器端程序),或者用 lighttpd(如果你要用 RoR 或者 Django作为后台)。


我最近也看了一下jetty6的源代码,使用了JDK5.0引入的concurrent API,性能确实很不错。不知道现在jetty6和Tomcat6相比,哪个网络负载能力更强。tomcat虽然没有使用JDK的concurrent API,但是自从5.5开始,可以通过apr,使用操作系统的native IO,这个也可以达到同样的异步IO调度的作用。

从理论上来说,操作系统的异步IO调度,怎么也要比JDK提供的异步IO来的快吧?不知道有没有这方面的研究或者评测。

9 楼 ken1984 2007-05-24  
效率要求高,就别考虑什么开源框架了,还是写一个tcp server吧。你要考虑如果以后失败的结果。thread的连接数?不太明白,是指线程数量还是线程内的描述符数量?我记得这些在LINUX都是可以自己修改的。

结果并发2000个socket,就会使得server那边断开一些socket连接?

这个不太可能吧,连接在底层都是队列形式的,满了以后会等待或丢弃,怎么会造成旧的连接断开?
8 楼 famoushz 2007-05-24  
这周用nio的编程方式以及传统堵塞的方式,基于quickserver开源服务器的方式写了三套server,主要公司那个engineer想测试一下性能是否能够满足以后的需求,结果并发2000个socket,就会使得server那边断开一些socket连接,另外在测试当中还发现操作系统的socket连接数,thread的连接数都有限制,windows sp2 以及 linux都会有类似的问题。通过网上找到一些资料重新进行了设置还是会发现类似问题。对方engineer一直怀疑可能操作系统对thread有控制,所以想在一个thread中设置一定的socket但是我调整了之后发现现象依旧,公司上层发现开发诸如此类server会占用大量时间。现在就order me搁浅先~~无语~~
7 楼 JAVA_ED 2007-05-22  
<br/>
<strong>famoushz 写道:</strong><br/>
<div class='quote_div'>
<p>这周我们公司会进行新项目的research,主要是用于用户行为分析,在各个网站上采集一些用户行为然后传送到指定服务器进行数据收集,以后用于用户行为的分析,其中有一个带头的engineer,他指出希望采用ajax+tcp server的架钩模式进行这个项目,首先由于有很多网站,上百个,在用户点击一些广告的时候会由ajax 异步传输数据到指定server,这里的server可能就是一个Tcp server,这里的讨论焦点就是 是否有必要重新开发一个Tcp server去做数据收集的工作。首先他的论点是:</p>
<ol>
    <li>Tcp server位于OSI 网络7层模型的传输层,这样想当然他的效率是最高的,没有了HTTP server没必要的很多东西,比如每次http 传输后http server总是会来个callback,通过tcp 就不需要了,只要来个握手就可以了没必要callback,性能自然提升了。 </li>
    <li>通过linux的 epoll 可以提升网络性能。 </li>
</ol>
<p>感觉上他的论点的确有他的道理。但是大家知道现在很多开源的高性能的网络服务器比如wildfire等都是 通过mina nio网络框架进行实现,觉得其性能不会很差,以及其他quick server,cindy都是大口碑的网络框架,我觉得是否有必要再去重新开发一个TcP server,另外关于EPoll从一些文章了解到的当访问量达到 千W级别时候,相对于传统select的确可以大幅提升性能。对于java而言听说java6已经支持了,希望大家发表高见,如何通过现有资源开发一个高性能网络服务器。</p>
</div>
<p><br/>
偶没看懂why你们要去写一个TCP SERVER, </p>
<p>如果你觉得效率无法接受, 可以用socket通信</p>
6 楼 galaxystar 2007-05-22  
mina不错,cindy已经不行了
5 楼 kuanchang 2007-05-22  
Jetty 6用nio用的我认为比mina,cindy都好
4 楼 kdekid 2007-05-21  
就看你有没有需要做这个轮子了。如果你是需要从底层开始掌握服务器的性能,并有信心可以写出一个超过Jetty 6的服务器,那就重新写一个。你的服务器可以用到其它更先进的native non blocking 的东西,例如 Linux 2.6 的 epoll。不过你有可能需要面对更长的开发周期,更多的bug和更麻烦的维护(因为没有社区支持)。
否则的话,你可以尝试一下 Jetty 6(如果你用 Java 开发服务器端程序),或者用 lighttpd(如果你要用 RoR 或者 Django作为后台)。
3 楼 galaxystar 2007-05-21  
tcp的alive可以设成一个较大的时间,reconnect可以交给客户端来做,高性能推送也是个不错的选择.
2 楼 famoushz 2007-05-21  
逻辑上就目前项目的需求来说,不会很复杂,但是从性能的要求来说就比较高了,大家知道 异步传输是最快的,查看了java的api,jdk6.0总算支持EPoll,但是仍然没有达到异步传输的方式,现在最多是多路复用。通过原始阻塞的方式,效率性能仍然是一大瓶颈。Http Server的方式肯定性能不是最佳的,HTTP server总是需要response,这样对于当前的这个项目其实很没必要的。不过从开发的成本,时间控制上来说Httpserver是最佳途径。
    但是我们那个engineer坚持要用那个,这个项目也是由他发起的。所以如果公司愿意投入时间,开发成本,重新写一个server未尝不可。
所以从技术层面来说我觉得 用ACE来开发异步传输的高性能TCP server是最理想的。
1 楼 yiding_he 2007-05-15  
就算开发一个 TCP Server,逻辑上也不会很复杂吧。如果访问实在太频繁以至于不得不采用一些额外的架构,自己开发的 TCP Server 亦能提供较大的灵活性。但如果访问量实在一般,就没这个必要了。所以我想如果不太可能达到很高的访问量,不妨先用 HTTP Server,开发起来也更快些;就算将来要换,也只是底层的换一下,不用全部重写。

相关推荐

    网络性能测试与分析 PDF 课件

    《网络性能测试与分析》是一门深入探讨网络性能评估、监测和优化的学科,主要针对计算机网络中的数据传输效率、延迟、带宽利用率等问题进行研究。这个PDF课件是大学教材的一部分,旨在帮助学生和专业人士理解网络...

    联通5G网络性能提升探讨.pdf

    《中国联通5G网络性能提升探讨》 5G网络作为新一代通信技术,其性能优化是确保服务质量的关键。本文主要探讨了5G SA(独立组网)网络的驻留比提升和EPS FB(EPSFallback,即从5G到4G的语音服务回退)时延优化两个...

    电力系统通信网络性能优化探讨.pdf

    电力系统通信网络性能优化探讨.pdf

    提高交换机网络性能的几种方式探讨.docx

    "提高交换机网络性能的几种方式探讨" 本篇文章探讨了提高交换机网络性能的几种方式,以满足固网运营商在不断延伸和完善自己的网络规模的同时,为客户提供各种新业务,提供更具个性化、层次化的服务来提高 APRU 值和...

    网络性能测试与分析课件 .zip

    《网络性能测试与分析》是一门深入探讨网络性能评估与优化的课程,旨在帮助学习者理解和掌握网络系统在实际运行中的表现,以及如何通过科学的方法进行性能测试和问题诊断。本课程涵盖了网络性能的关键指标、测试工具...

    提升网络速度:网络性能优化策略与实践

    本文将探讨网络性能优化的概念、常见方法以及实施策略。 网络性能优化是一个持续的过程,需要综合考虑硬件、软件、配置和网络架构等多个方面。通过升级网络硬件、优化网络配置、使用网络缓存、优化网络协议、改善...

    理解了实现再谈网络性能.zip

    在深入探讨网络性能之前,我们首先要理解网络的基本概念和实现机制。网络性能涉及多个方面,包括数据传输速率、延迟、丢包率、带宽利用率等,这些因素直接影响着网络服务的质量和用户体验。本文将从以下几个核心知识...

    带宽网络性能分析 公式推导

    本文将详细探讨《宽带网络性能分析》一书中第350页公式A-36以及第351页公式A-43的推导过程,这些公式在网络建模中起到关键作用。 首先,我们来看公式A-36。这个公式通常用来计算网络的总带宽需求,涉及到多个并发...

    5g网络规划探讨PPT-华为.pdf

    这些参数对于评估和优化网络性能至关重要。此外,网络仿真和小区参数规划也是不可或缺的步骤,其中涉及到的参数包括经纬度、天线高度、方向角、下倾角、波束等,这些都会影响到网络的覆盖半径和容量。 5G网络规划的...

    计算机网络:性能和服务质量Computer Networks: Performance and Quality of Service

    ### 计算机网络性能 #### 性能指标 在讨论计算机网络性能时,有几个关键的性能指标是必须了解的: 1. **吞吐量**(Throughput):指网络能够成功传递的最大数据率。 2. **延迟**(Latency):数据包从发送端到接收...

    网络性能检测技术

    本文将深入探讨网络性能检测的关键概念、技术、工具以及其在全球范围内的研究进展。 #### 1. 网络性能检测的重要性 网络性能检测不仅对于互联网服务提供商(ISP)至关重要,也是网络研究人员关注的重点领域。通过...

    基于NS2网络仿真技术的网络性能研究

    1. 介绍网络性能分析和评价的基本方法,探讨常用的定量研究工具,如统计分析、模拟实验等。 2. 深入探讨NS2及其相关技术,包括NS2的基本架构、实现规则,以及OTCL(Object Tcl)语言的使用。OTCL是NS2的脚本语言,...

    网络服务性能监测方案的探讨共3页.pdf.zip

    "网络服务性能监测方案的探讨共3页.pdf.zip" 这个压缩包文件,虽然仅提供了3页的内容,但我们可以从其标题推测,它可能涵盖了关于如何有效地监控和优化网络服务性能的策略和方法。下面,我们将深入讨论这个话题。 ...

    INTERNET网络性能测量研究与工具实现

    《INTERNET网络性能测量研究与工具实现》是一个深入探讨网络性能评估和优化的重要主题。在当前信息化社会,网络性能已经成为衡量互联网服务质量的关键指标,而有效的测量工具和方法则是确保网络高效运行的基础。以下...

    谈优化无线网络性能.docx

    在优化无线网络性能时,有几个要点需要记住: 1. 在路由器的配置界面启用QoS或WMM选项。 2. 明确每个应用的优先级,如将VoIP和视频流设为高优先级,文件下载设为较低优先级。 3. 定期检查并更新路由器的固件,以获取...

    基于FAHP的网络性能综合评价的研究

    这篇文章《基于FAHP的网络性能综合评价的研究》主要探讨了如何利用模糊层次分析法(FAHP)来评估网络性能。FAHP是在传统层次分析法(AHP)的基础上,结合模糊理论发展而来的一种评价决策方法,它能够处理模糊、不...

    网络优化技术方案-网络性能分析.docx

    《网络优化技术方案-网络性能分析》文档主要探讨了5G网络优化中的核心环节——网络性能分析,特别是针对LTE无线网络的性能优化。网络优化旨在提高网络效率,降低故障率,提升用户服务质量,确保网络的稳定性和可靠性...

Global site tag (gtag.js) - Google Analytics