51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3028|回复: 0
打印 上一主题 下一主题

Web服务性能测试:Node完胜Java

[复制链接]
  • TA的每日心情
    擦汗
    前天 08:47
  • 签到天数: 1027 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2016-2-23 10:05:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    简介

    我最近做了一些简单的关于内存的Web Service性能测试。我使用Java(REST + SOAP)和Node.js(REST)将一些接口功能缓存起来。跟期望的一样,Node应用的性能远远超出Java。(响应时间至少快1倍以上)。

    NodeJS跟许多其他单线程语言一样,对内存并不贪婪,因为没有关于线程的内存开销,内存占用不会随着连接数的增长而增长,尤其在剔除掉读写文件/数 据库等异步操作后,完全基于内存的NodeJS将有更显著的性能提升,从某种意义上来说基于内存的nodejs服务所能支持的最大并发数将仅受限于带宽和 CPU的处理能力。

    可参见: 性能测评:Ngix_Lua, Node.JS Python三者性能相当,均比php快近一倍, PayPal为什么从Java迁移到Node.js

    缓存应用

    图1:关于缓存应用的原理图。缓存支持插入,获取,删除键/值对

    图2:关于应用更详细的物理图

      这里使用了另外一种形式的REST,cache操作通过HTTP verbs来完成(Insert = PUT, Fetch = GET, Remove = DELETE)。数据刷新通过使用timeouts(Node)和scheduled threads(Java)来完成。缓存冗余是通过服务器间的REST调用来实现。(通过PUT/DELETE)

    对于Java SOAP的扩展,cache操作通过经典的HTTP POST SOAP包来实现。

    应用层结构

    图3:基于Cache的Java REST组织结构图。Apache Tomcat + Jersey (servlet)在这一层。

    图4:基于Cache的Java SOAP组织结构图。Apache Tomcat + Axis2 (servlet)在这一层。

    图5:为Node应用。仅初始化了一个worker。

    测试

    图6: 为我测试时使用的环境

    Java + Node REST 缓存插入测试

    ab -A username:password -u restput.txt -n 1000 -c 1 https://server/ctispan/rest/key/111 > results.txt
    restput.txt
    value=test111

    Java SOAP 缓存获取测试

    ab -A client:password -T "application/soap+xml; charset=UTF-8" -p soapget.xml -n 1000 -c 1 https://server/ctispan/services/CacheProxyWS.CacheProxyWSHttpSoap11Endpoint/ > results.txt
    soapget.xml
    <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body><ns1:getValue xmlns:ns1="http://server.ctispan.jwisoft.com"><ns1:key>111</ns1:key></ns1:getValue></soapenv:Body></soapenv:Envelope>

     Java SOAP 缓存插入测试

    ab -A client:password -T "application/soap+xml; charset=UTF-8" -p soapput.xml -n 1000 -c 1 https://server/ctispan/services/CacheProxyWS.CacheProxyWSHttpSoap11Endpoint/ > results.txt
    soapput.xml
    <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body><ns1:putValue xmlns:ns1="http://server.ctispan.jwisoft.com"><ns1:key>111</ns1:key><ns1:value>text111</ns1:value></ns1:putValue></soapenv:Body></soapenv:Envelope>


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-10-2 19:18 , Processed in 0.087851 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表