BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

在PayPal改善Node.js的SSL的性能

| 作者 Abel Avram 关注 11 他的粉丝 ,译者 夏雪 关注 0 他的粉丝 发布于 2014年5月8日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Trevor Livingston是一名就职于PayPal的软件工程师,他在最近的一篇帖子里概括了一些改善Node.js出站SSL性能的建议

用计算没那么密集的加密算法

首先,Livingston谈到Node.js使用的一些默认加密算法(比如 Diffie HellmanElliptical Curve )非常强大但是“极为昂贵,当你以默认设置开始发起大量出站SSL调用时会从根本上削弱Node.js的性能”。Livingston说,在一个服务调用中密钥生成占87%的时间。他建议使用占资源较少的算法。

var agent = new https.Agent({
    "key": key,
    "cert": cert,
    "ciphers": "AES256-GCM-SHA384"
});

在Livingston的测试中,使用AES256生成密钥所需的时间会减少到32.5%。

使用keep alive——keepAliveAgent包的作者说,它能将每秒事务数提升50%以上。这个包在即将发布的Node.js 0.12中不是必需的。

优化agent.maxSockets——每个源默认的并发socket数量是5,这个数目不能太高,因为它“能导致负面的性能影响”,Livingston说。

调整slab buffer size应该小心地操作,因为在高容量时它会影响垃圾收回的时间。0.12版发布后应该就不再需要这种微调了。

Livingston还写下了即将发布的 Node.js 0.12已经做出的一部分改进,使用AES256的时候几乎使每秒服务的请求数翻了一倍。

会话重用。另一个改善Node性能的建议是会话重用Miroslav Bajtoš 在早先的一个帖子里提到过一个详细的思路。为此,需要创建一个会话存储并处理newSession和resumeSession事件。在他们各自的帖子中所包含的代码示例展示了针对单线程应用和针对工作进程集群的会话重用。

查看英文原文:Improving Node.js’ SSL Performance at PayPal


感谢杨赛对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT