您的位置:首页 > Web前端 > Node.js

提高NodeJS中SSL服务的性能

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

SSL密码

www.usus.cc

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

918834.0ms 100.0% 0.0 node (91770)

911376.0ms 99.1% 0.0  start

911376.0ms 99.1% 0.0  node::Start

911363.0ms 99.1% 48.0  uv_run

909839.0ms 99.0% 438.0  uv__io_poll

876570.0ms 95.4% 849.0   uv__stream_io

873590.0ms 95.0% 32.0    node::StreamWrap::OnReadCommon

873373.0ms 95.0% 7.0     node::MakeCallback

873265.0ms 95.0% 15.0     node::MakeDomainCallback

873125.0ms 95.0% 61.0     v8::Function::Call

873049.0ms 95.0% 13364.0    _ZN2v88internalL6InvokeEbNS0

832660.0ms 90.6% 431.0     _ZN2v88internalL21Builtin

821687.0ms 89.4% 39.0      node::crypto::Connection::ClearOut

813884.0ms 88.5% 37.0       ssl23_connect

813562.0ms 88.5% 54.0       ssl3_connect

802651.0ms 87.3% 35.0        ssl3_send_client_key_exchange

417323.0ms 45.4% 7.0         EC_KEY_generate_key

383185.0ms 41.7% 12.0        ecdh_compute_key

1545.0ms 0.1% 4.0          tls1_generwww.e78.comate_master_secret

123.0ms 0.0% 4.0           ssl3_do_write

...

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

802651.0ms 87.3% 35.0 ssl3_send_client_key_exchange

417323.0ms 45.4% 7.0 EC_KEYwww.e78.com_generate_key

383185.0ms 41.7% 12.0 ecdh_compute_key
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息