nodejs 性能测试报告

作者: 流星狂飙 | 来源:发表于2014-11-13 16:56 被阅读4246次

    日 期:2014-11-12

    测试目的

    测试页面的负载量

    测试范围

    express +ejs

    helloworld 界面

    测试环境

    服务器端 客户端 网络环境

    测试准备

    数据准备
    无参数化或需要特殊处理字段。

    脚本准备

    LR编写测试脚本。

    Node 安装

    npm install pm2 -g --unsafe-perm (安装)
    
    cd /data/node/resources/node-serve
    
    npm install express
    
    npm install ejs
    
    npm kill
    
    

    pm2 start start.js -i 8 (启动8个线程)

    测试结果如下:


    Snip20141113_31.png

    总结:

    • Node启单线程tps平均610笔/s,启8线程跑tps可达3891笔/s。
    • 建议Node服务启动线程数与服务器核数一致。
    • 主要瓶颈在node消耗cpu较大上,无论node迁移到单独虚拟机,还是和Jetty同台虚拟机,cpu都基本耗尽,cpu负载在8+。

    测试详情

    数据展示页-100vu-Node单线程

    Node启单个线程(jetty+nginx+Node在一台虚拟机),模拟100用户压测TPS平均638笔/s,Cpu负载较小,node进程cpu用尽,其他资源使用较小,详细见下图:


    Snip20141113_38.png

    数据展示页-200vu-Node8线程

    Node启8个线程(jetty+nginx+Node在一台虚拟机),模拟200用户压测TPS平均3891笔/s,Cpu负载9,cpu使用充分(无idle)主要是Node进程消耗cpu,其他资源使用较小,详细见下图:


    Snip20141113_34.png

    数据展示页-200vu-8线程-单Node

    Node单台虚拟机测试200用户,TPS平均4016笔/s,平均响应时间0.049s,服务器182负载较小,cpu_usr 12%,网络流量recv左右;node服务器cpu基本用光,cpu负载8。

    Snip20141113_36.png Snip20141113_37.png

    结论

    nodejs 在内存和响应速度上的表现都非常好,但是cpu占用过高了,如果pm2 只开启6个进程,cpu的占用率会在85%以下,那么问题来了,怎么降低 CPU的使用率,在大型的项目中是怎么处理的?

    相关文章

      网友评论

      • 灼灼2015:今天测试了helloworld用的也是loadrunner,发现不下载资源时tps一直上升,然后nodejs就死啦,下载资源时TPS只有40多,不知道哪里有问题,
        想问下 你的helloworld是怎么写的。
      • a30a909834bd:今天测试 nodejs+mysql ,tps只有200~~~ 郁闷中~~~~
      • LostAbaddon:node的异步式会对CPU见缝插针式地疯狂榨取,这似乎是无可避免的吧。。。
        或者写一个底层插件是空跑的,让这个插件对CPU做释放?但这有点反设计了。。。

      本文标题:nodejs 性能测试报告

      本文链接:https://www.haomeiwen.com/subject/nuqitttx.html