位置: 编程技术 - 正文

提高NodeJS中SSL服务的性能(node.js ssh)

编辑:rootadmin

推荐整理分享提高NodeJS中SSL服务的性能(node.js ssh),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs配置ssl证书,nodejs sso,node.js ssh,nodejs配置https,nodejs配置https,nodejs ssl,nodejs配置ssl证书,nodejs配置https,内容如对您有帮助,希望把文章链接给更多的朋友!

在浏览互联网时,我们都知道,通过SSL进行加密是非常重要的。在贝宝(PayPal),安全是我们的首要任务。我们使用端到端的加密,不仅只是我们的公共网站,对于我们的内部服务调用也同样如此。SSL加密技术将在很大程度上影响node.js的性能。我们已经花时间调整我们的对外服务,并充分地利用他们。下面是一些我们发现能显著地提高SSL对外性能的SSL配置调整清单。

SSL密码

开箱即用,Node.js 的SSL使用一组非常强大的密码算法。特别是,迪菲赫尔曼密钥交换和椭圆曲线算法是极其昂贵的。而且当你在默认配置中用了太多的对外SSL调用,Node.js的性能将从根本上得到削弱。为了得到它到底有多慢这个结论,这儿有个服务调用的CPU样本:

让我们重点关注一下密钥的生成:

这个调用%的时间都花在了生成密钥上!

这些密码能被改变以减少密集的计算。这个想法已经在https(或代理)得以实现了。例如:

上面的密钥已经没用昂贵的迪菲赫尔曼密钥交换。用相似的东西代替之后,在下面的样例中我们能看到显著的变化:

通过OpenSSL文档,你可以学习更多关于密码串的东西。

SSL会话恢复 如果您的服务器支持SSL会话恢复,那么你可以通过https(或代理)来传递会话。你也可以将代理的createConnection函数包裹起来:

通过给连接增加简短的握手机制,会话恢复能降低连接数的使用。

保持活动 允许代理保持活动将缓和SSL握手。一个保持活动的代理,比如agentkeepalive可以修复结点保持活动的问题,但在Node0.中它是非必须的。

另一个需要铭记在心的东西是代理的maxSockets,这个值高的话能对性能造成负面的影响。在你创建的对外连接数量的基础上控制你的maxSockets值。

提高NodeJS中SSL服务的性能(node.js ssh)

Slab的大小 tls.SLAB_BUFFER_SIZE决定了被tls客户端(服务器)使用的slab缓冲区的分配大小。它的大小默认为MB。

这些分配的区间将会扩展你的rss且会增加垃圾回收的时间。这意味着高容量将会影响到性能。把这个容量调整到一个比较低的值可以改善内存和垃圾收集的性能。在0. 版本中,slab的分配已经得到改善了,没有必须再调整了。

SSL在0.中近期的改变 测试Fedor的SSL增强版。

测试说明

运行一个作为SSL服务代理的http服务,全部运行在本机上。

v0..

v0..-pre (从主版本构建)

这没有太多的区别,但这应归于默认密码,所以让我们调整密码的代理选项。例如:

v0..

v0..-pre (从主版本构建)

正如我们所见,经过Fedor的修改,这有着巨大的区别:从0.到0.性能差不多差着2倍左右!

总结

有人可能会问“为什么不仅仅只是关掉SSL呢,关了之后它就会变得快起来”,且对于一些人来说这也是一种选择。实际上,当我问别人他们是如何解决SSL性能问题的时候这是比较有代表性的答案。但是,如果企业SSL要求的任何东西只增加不减少;且尽管已经做了很多来改善Node.js中的SSL,性能调整仍然还是需要的。我希望上述的一些技艺能够帮助你调整SSL用例性能。

nodejs的个性能优化技巧 下面是我们使用Node.js时遵循的个性能规则:1.避免使用同步代码在设计上,Node.js是单线程的。为了能让一个单线程处理许多并发的请求,你可以永远

抛弃Nginx使用nodejs做反向代理服务器 时下不少场景,都是申请一个VPS主机来托管运行Web项目的,小弟我也不例外,购买了一个小型的WinVPS使用着。在使用的过程中,面临一个问题,就是

Express.JS使用详解 安装了node(下载)之后,在你的机器上创建一个目录,开始你的第一个应用程序。$mkdirhello-world在这个目录中你将定义应用程序包,这和任何其他node的包没有

标签: node.js ssh

本文链接地址:https://www.jiuchutong.com/biancheng/374169.html 转载请保留说明!

上一篇:在NodeJS中启用ECMAScript 6小结(windos以及Linux)(nodejs怎么启动服务)

下一篇:nodejs的10个性能优化技巧(nodejs性能对比)

  • Laravel中注册Facades的步骤详解(laravel注入)

    Laravel中注册Facades的步骤详解(laravel注入)

  • 浅析SQL Server的分页方式 ISNULL与COALESCE性能比较(sql server干嘛的)

    我们看到上述COALESCE合并的结果是可空的而ISNULL不是,有一点点不同。

    (3)COALESCE对列计算时需要持久化

    接下来我们看看二者最大的不同,我们通过计算列并且在其上面创建主键或者非空约束,看看ISNULL和COALESCE的区别

    我们再来看看COALESCE函数来计算列

    很明显我们需要对列进行持久化,通过添加PERSISTED关键字,如下即可。

    我们再来看看一个二者的不同

    我们到这里其实我们可以稍微概括下二者的区别:ISNULL着重于替换,而COALESCE着重于合并。COALESCE显示忽略了NULL并用空字符串填充并压缩,而ISNULL对NULL会用空字符串填充但不会压缩。

    (4)COALESCE函数支持超过两个参数

    对于多个参数输入,ISNULL函数需要嵌套调用,而COALESCE能够处理任何数量,至于上限不知,所以对于多个参数使用COALESCE更加,如下使用多个参数输入。

    SELECT COALESCE(a, b, c, d, e, f, g) FROM dbo.table;

    而对于ISNULL,我们需要这样做

    SELECT ISNULL(a, ISNULL(b, ISNULL(c, ISNULL(d, ISNULL(e, ISNULL(f, g)))))) FROM dbo.table;

    二者最终执行时和利用CASE一样

    (5)COALESCE和ISNULL二者性能比较

    我们来运行如下查询

    我们有查询四个场景:(1)两个参数都为NULL(2)第一个参数为NULL(3)第二个参数为NULL(4)两个参数都为NULL。每个场景测试十次,最终得出如下结果

    从上看出二者性能并未有什么太大差异,我们不需要太担心了吧,当然上述场景并未完全覆盖,至少还是能说明一部分。上述我们得到的结果查看的执行时间,现在我们再来看看二者查询执行计划。

    上述可能不太准确,还和硬件配置有关,也有可能COALESCE的性能差与ISNULL。二者性能应该是没什么很大差异。

    (6)ISNULL和自然语言描述不一致

    为何是和自然语言描述不一致呢?也就是说我们当判断某个值为NULL会做什么,不为NULL再做什么,这时用查询语言SQL描述如下:

    我们用自然语言角度来看,翻译为如果something为NULL我们做什么,这个时候是不一致的。因为在SQL Server中没有布尔值类型,上述我们只能进行如下转换

    (7)利用GUID看看奇葩的ISNULL

    在本节介绍之前我们再来看看一个例子,从而颠覆你的想法,让你发狂。

    SELECT ISNULL(NEWID(), 'JeffckyWang" class="img-responsive" alt="浅析SQL Server的分页方式 ISNULL与COALESCE性能比较(sql server干嘛的)">

    浅析SQL Server的分页方式 ISNULL与COALESCE性能比较(sql server干嘛的)

  • Python操作MongoDB详解及实例(python操作微信自动发消息)

    Python操作MongoDB详解及实例(python操作微信自动发消息)

  • python UNIX_TIMESTAMP时间处理方法分析

    python UNIX_TIMESTAMP时间处理方法分析

  • 什么时候过路费是半价
  • 公司成立前发生业务 成立后开票
  • 递延所得税转回的会计分录
  • 工资个税计提多了实际交的少
  • 养老机构提供的养老服务免增值税吗
  • 债转股资金
  • 发票领用簿怎么领发票
  • 废料账务处理
  • 银行质押贷款会查征信吗
  • 一次还本付息债券到期收益率
  • 上级单位给的奖金叫什么
  • 税收分类编码如何填写
  • 增值税发票进项抵扣是什么意思
  • 我是小规模企业客户要求开专票不开投诉
  • 税负原则
  • 计提增值税会计账务处理
  • 当前一般纳税人增值税税率
  • 小规模纳税人优惠政策类型怎么选
  • 财务报表依据的会计记录
  • 税收的凭证有哪几种
  • 冲销凭证怎么记账
  • 服务类的公司有哪些
  • 个体工商户开票免税额度是多少
  • 小规模所得税表格模板
  • 利息收入需要开票吗
  • 开给销货方红字信息表如何做账?
  • 补交的所得税会计核算
  • 发票认证的注意事项包括
  • 跨年退货会计处理
  • 非常损失计入
  • 电脑到u盘
  • rasman.exe - rasman是什么进程 有什么作用
  • 计算土地增值税时增值额的扣除项目包括
  • ios 的 safari 浏览器
  • 海康工业相机彩色改黑白设置
  • win7安装包下载
  • 支付押金无法付款
  • 直线法摊销的账面价值
  • 用盈余公积弥补以前年度亏损
  • 提取企业发展基金用到银行存款科目吗
  • 企业接受现金捐赠要交税吗
  • 灰狼算法的改进
  • paul滑雪
  • 机关单位工会经费提取比例
  • 政府会计计提折旧会计分录2022
  • yolo行人检测
  • ngnix 命令
  • stat命令的作用
  • 经销商自用车是指什么
  • 公司股东投资在哪里查
  • 收据4联
  • 工会费的会计分录是什么
  • sql server数据表的关联
  • 当月业务的发票可以次月开吗
  • 为什么说运输是实现物流合理化的关键
  • 给离退休人员发放以前年度在岗奖金需要计提工会经费吗
  • 固定资产报废账面价值
  • 其他收益结转到什么科目
  • 资产负债表中的货币资金怎么算
  • 销售未开票怎么做分录
  • 货款和发票金额不一致
  • 开了红字发票申请还要做进项税转出吗?
  • 什么是定额发票图片
  • 小规模商贸公司没有进项票怎么办
  • sqlserver存储过程实例详解
  • win10预览版和正式版
  • wmiex.exe是什么程序
  • 为避免10月20号后盗版系统出现黑屏的bat文件
  • centos7 rpm包安装
  • powerdvd remote下载
  • 史上最全的windows 10 激活码
  • windows 10 build 21382
  • linux中使用less命令分屏查看
  • 安卓沉浸式状态栏框架
  • jquery源码分析笔记
  • python随机数代码
  • java sc is never closed
  • javascript获取css
  • 免税证明如何办理
  • 济宁市税务局官网名称
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设