如何对基于node.js 的webnodejs socket 多并发进行并发访问的性能测试

如何对基于node.js 的websocket进行并发访问的性能测试_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如何对基于node.js 的websocket进行并发访问的性能测试
我有更好的答案
Request received.&); response.writeHead(200, {&Content-Type&源地址 私信我吧 这段代码使用了node..; response.log(&plain&}): &text&#47.js的异步利器 onRequest var http = require(&http&); function onRequest(request, response) { console.w
采纳率:82%
为您推荐:
其他类似问题
三棱的相关知识
换一换
回答问题,赢新手礼包如何对基于node.js 的websocket进行并发访问的性能测试_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如何对基于node.js 的websocket进行并发访问的性能测试
我有更好的答案
&quot,Node.js 实现了类似 Apache 和 nginx 的web服务,Node.js 采用 V8 引擎,同样Node.js 是服务器端的 JavaScript 运行环境,让你可以通过它来搭建基于 JavaScript 的 Web App,它具有无阻塞(non-blocking)和事件驱动(event-driven)等的特色
为您推荐:
其他类似问题
websocket的相关知识
换一换
回答问题,赢新手礼包node.js调研与服务性能测试 - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
&br/&&p&这几天对nodejs进行了一下简单的调研&/p&
&br/&&p&主要关注这几个方面
&br/& &li&socket服务性能,&/li&
&br/& &li&socket客户端性能&/li&
&br/& &li&http服务性能.&/li&
&br/& &li&服务的稳定性与资源占用&/li&
&br/& &li&开发成本&/li&
&br/&&/ol&
&br/&考虑到今后的应用场景, 实现了一个简单的memcache代理服务.
&br/&内部维护了一个50连接的简单连接池, 通过长连接与memcache服务器相连.&br /&
&br/&同时对外提供socket代理服务与http restful服务
&br/&&h3&测试环境&/h3&
&br/&&p&测试使用编译安装的node.js v0.3.1,未使用任何第三方modules&br /&
&br/&代理服务与memcache部署在不同的服务器中.&br /&
&br/&系统均为rhel 5.2, cpu: AMD Opteron 2200, mem: 4g
&br/&&h3&测试用例&/h3&
&br/&&p&通过此代理程序, 分别使用memcached协议与http协议从memcache服务中取出一个长度为100bytes的值, 并检查最终输出是否正确&/p&
&br/&&h3&压力工具&/h3&
&br/&&p&socket: 由于没有找到合适的socket压力工具.用node.js实现了一个简单的socket压力工具&br /&
&br/&http: siege 2.70
&br/&&h3&测试结论&/h3&
&br/&&h5&服务启动与空载资源占用&/h5&
&br/&&p&&a href=“”&&img class=“alignnone size-full wp-image-11” title=“standby” src=“” alt=&& width=“635” height=“291” /&&/a&&br /&
&br/&程序启动20秒后,系统资源占用达到稳定状态, 内存消耗13m, 堆尺寸8m&br /&
&br/&由堆使用变化可知v8每隔7~8秒会进行一次gc操作
&br/&&h5&100并发100秒socket长连接压力&/h5&
&br/&&p&&a href=“”&&img class=“alignnone size-full wp-image-10” title=“socket” src=“” alt=&& width=“553” height=“536” /&&/a&&br /&
&br/&压力启动后内存占用迅速提高至30m, v8堆也基本维持在22m的水平, 使用率在20%到50%之间波动&br /&
&br/&此时v8的gc操作频率降低到约20秒一次.&br /&
&br/&qps曲线比较平稳,在16700左右波动,幅度在400左右,v8的gc操作对性能没有明显影响&br /&
&br/&压力过程中cpu占用基本维持在95%左右,处于满载状态.&br /&
&br/&另, 测试结束后20秒左右, 所占用资源被释放,内存与v8堆均回复至空载水平.
&br/&&h5&250并发100秒http长连接压力&/h5&
&br/&&p&&a href=“”&&img class=“alignnone size-full wp-image-9” title=“http1” src=“” alt=&& width=“613” height=“282” /&&/a&&br /&
&br/&与socket相比, http消耗的系统资源约多出30%,且8v的gc操作也要更频繁&br /&
&br/&qps值为4392, gc操作对qps的影响也不明显&br /&
&br/&压力过程中cpu占用基本维持在95%左右,处于满载状态.&br /&
&br/&与socket时类似, 测试结束后20秒左右, 所占用资源被释放,内存与v8堆均回复至空载水平.
&br/&&h3&一些结论&/h3&
&br/&&p&性能:单cpu, socket 17000 qps, http 4400 qps, 内存消耗30~40m, cpu基本满载&br /&
&br/&用作中间层服务时,性能瓶颈基本应位于cpu运算性能.&br /&
&br/&v8引擎gc操作带来的性能影响已经可以基本忽略.&br /&
&br/&系统的健壮性不错,测试过程中qps与负载曲线基本都处于水平状态.且成功率均为100%&br /&
&br/&快速开发, 代理服务与压力工具总计开发时间3~4小时左右, 且最终性能与编译型语言差距不大,但开发时间节省很多&br /&
&br/&开发模式上与传统服务器端动态语言区别较大,不熟悉的开发人员需要一些上手时间.&br /&
&br/&&br /&
&br/&另,由于时间因素,仅进行了单进程模式下的性能,使用web-worker模型的多进程模式下的性能没有进行测试&br /&
&br/&不过由单进程性能可以基本推断,在普通8核服务器下应能做到10万以上的socket, qps, 3万以上的http qps&br /&
&br/&&br /&
&br/&总体来说, 非阻塞模式的io处理给nodejs带来在相对低系统资源耗用下的高性能与出众的负载能力, 非常适合用作依赖其它io资源的中间层服务.
&br/&&h3&相关源码下载:&/h3&
&br/&&p&&a href=“” target=&_blank&&&/a&&br /&
&br/&包括测试程序与socket压力工具.
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
做一个客服聊天系统,用什么语言比较好?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
首先看你或你的团队有什么样的开发资源,从实现难易度上看,nodejs最容易。你可以参考这个例子java的websocket服务端支持也很好,但实现起来代码是nodejs的好几倍。nodejs容易,但要实现好的客服聊天系统,更多在于精良的设计,比如对用户、聊天会话、安全等一系列问题的综合考虑。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
Swoole Or Workerman
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
nodejs/python都不错
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
nodejs吧。可以直接用socket.io,这个相比较简单些。或者用网易的pemelo,它是基于websocket做的开发封装。直接带有相关的测试工具/部署工具,并且可扩展性比较好(包括多台物理机器)。当然难度有点大。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
作为服务器 还是很不错的
之前有写一个node搭建后台的微博demo
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
推荐使用nodeJS和go
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?websocket-bench 压测问题 - CNode技术社区
Node学习者 爱好者
websocket-bench 压测没有一次连接成功的, 这个大概什么问题呢
但是,我直接使用, 是没有问题了(在页面引用socket.io.js 连接服务器, 是可以聊天的)
给出测试代码,不然无法定位
io.set(‘origins’, ‘:’);
io.use(function(socket, next) {
(socket.request.headers);
io.on(‘connection’, function(socket) {
// console.log(‘id:’+);
//监听新用户加入
socket.on(‘login’, function(obj) {
// console.log(io.sockets.connected[]);
// console.log(io.sockets.connected);
// console.log(io.sockets.sockets);
// console.log(socket);
//将新加入用户的唯一标识当作socket的名称,后面退出的时候会用到
socket.userid = obj.
socket.username = obj.
socket.key = obj.
socket.tokey = obj.
socket.plt = obj.plt ? obj.plt : ‘PC_WEB’;
client用forcenew了么?
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的

我要回帖

更多关于 nodejs实现websocket 的文章

 

随机推荐