亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

提高NodeJS中SSL服務的性能

2019-11-20 14:21:20
字體:
來源:轉載
供稿:網友

在瀏覽互聯網時,我們都知道,通過SSL進行加密是非常重要的。在貝寶(PayPal),安全是我們的首要任務。我們使用端到端的加密,不僅只是我們的公共網站,對于我們的內部服務調用也同樣如此。SSL加密技術將在很大程度上影響node.js的性能。我們已經花時間調整我們的對外服務,并充分地利用他們。下面是一些我們發現能顯著地提高SSL對外性能的SSL配置調整清單。

SSL密碼

開箱即用,Node.js 的SSL使用一組非常強大的密碼算法。特別是,迪菲赫爾曼密鑰交換和橢圓曲線算法是極其昂貴的。而且當你在默認配置中用了太多的對外SSL調用,Node.js的性能將從根本上得到削弱。為了得到它到底有多慢這個結論,這兒有個服務調用的CPU樣本:

918834.0ms 100.0% 0.0 node (91770)911376.0ms 99.1% 0.0  start911376.0ms 99.1% 0.0  node::Start911363.0ms 99.1% 48.0  uv_run909839.0ms 99.0% 438.0  uv__io_poll876570.0ms 95.4% 849.0   uv__stream_io873590.0ms 95.0% 32.0    node::StreamWrap::OnReadCommon873373.0ms 95.0% 7.0     node::MakeCallback873265.0ms 95.0% 15.0     node::MakeDomainCallback873125.0ms 95.0% 61.0     v8::Function::Call873049.0ms 95.0% 13364.0    _ZN2v88internalL6InvokeEbNS0832660.0ms 90.6% 431.0     _ZN2v88internalL21Builtin821687.0ms 89.4% 39.0      node::crypto::Connection::ClearOut813884.0ms 88.5% 37.0       ssl23_connect813562.0ms 88.5% 54.0       ssl3_connect802651.0ms 87.3% 35.0        ssl3_send_client_key_exchange417323.0ms 45.4% 7.0         EC_KEY_generate_key383185.0ms 41.7% 12.0        ecdh_compute_key1545.0ms 0.1% 4.0          tls1_generate_master_secret123.0ms 0.0% 4.0           ssl3_do_write...

讓我們重點關注一下密鑰的生成:

802651.0ms 87.3% 35.0 ssl3_send_client_key_exchange417323.0ms 45.4% 7.0 EC_KEY_generate_key383185.0ms 41.7% 12.0 ecdh_compute_key

這個調用87%的時間都花在了生成密鑰上!

這些密碼能被改變以減少密集的計算。這個想法已經在https(或代理)得以實現了。例如:

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

上面的密鑰已經沒用昂貴的迪菲赫爾曼密鑰交換。用相似的東西代替之后,在下面的樣例中我們能看到顯著的變化:

...57945.0ms 32.5% 16.0 ssl3_send_client_key_exchange28958.0ms 16.2% 9.0 generate_key26827.0ms 15.0% 2.0 compute_key...

通過OpenSSL文檔,你可以學習更多關于密碼串的東西。

SSL會話恢復
 
如果您的服務器支持SSL會話恢復,那么你可以通過https(或代理)來傳遞會話。你也可以將代理的createConnection函數包裹起來:

var createConnection = agent.createConnection;agent.createConnection = function (options) {  options.session = session;  return createConnection.call(agent, options);};

通過給連接增加簡短的握手機制,會話恢復能降低連接數的使用。

保持活動
 
允許代理保持活動將緩和SSL握手。一個保持活動的代理,比如agentkeepalive可以修復結點保持活動的問題,但在Node0.12中它是非必須的。

另一個需要銘記在心的東西是代理的maxSockets,這個值高的話能對性能造成負面的影響。在你創建的對外連接數量的基礎上控制你的maxSockets值。

Slab的大小
 
tls.SLAB_BUFFER_SIZE決定了被tls客戶端(服務器)使用的slab緩沖區的分配大小。它的大小默認為10MB。

這些分配的區間將會擴展你的rss且會增加垃圾回收的時間。這意味著高容量將會影響到性能。把這個容量調整到一個比較低的值可以改善內存和垃圾收集的性能。在0.12 版本中,slab的分配已經得到改善了,沒有必須再調整了。

SSL在0.12中近期的改變
 
測試Fedor的SSL增強版。

測試說明

運行一個作為SSL服務代理的http服務,全部運行在本機上。

v0.10.22

Running 10s test @ http://127.0.0.1:3000/20 threads and 20 connectionsThread Stats Avg Stdev Max +/- StdevLatency 69.38ms 30.43ms 268.56ms 95.24%Req/Sec 14.95 4.16 20.00 58.65%3055 requests in 10.01s, 337.12KB readRequests/sec: 305.28Transfer/sec: 33.69KB

v0.11.10-pre (從主版本構建)

Running 10s test @ http://127.0.0.1:3000/20 threads and 20 connectionsThread Stats Avg Stdev Max +/- StdevLatency 75.87ms 7.10ms 102.87ms 71.55%Req/Sec 12.77 2.43 19.00 64.17%2620 requests in 10.01s, 276.33KB readRequests/sec: 261.86Transfer/sec: 27.62KB

這沒有太多的區別,但這應歸于默認密碼,所以讓我們調整密碼的代理選項。例如:

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

v0.10.22

Running 10s test @ http://localhost:3000/20 threads and 20 connectionsThread Stats Avg Stdev Max +/- StdevLatency 59.85ms 6.77ms 95.71ms 77.29%Req/Sec 16.39 2.36 22.00 61.97%3339 requests in 10.00s, 368.46KB readRequests/sec: 333.79Transfer/sec: 36.83KB

v0.11.10-pre (從主版本構建)

Running 10s test @ http://localhost:3000/20 threads and 20 connectionsThread Stats Avg Stdev Max +/- StdevLatency 38.99ms 5.96ms 71.87ms 86.22%Req/Sec 25.43 5.70 35.00 63.36%5160 requests in 10.00s, 569.41KB readRequests/sec: 515.80Transfer/sec: 56.92KB

正如我們所見,經過Fedor的修改,這有著巨大的區別:從0.10到0.12性能差不多差著2倍左右!

總結

有人可能會問“為什么不僅僅只是關掉SSL呢,關了之后它就會變得快起來”,且對于一些人來說這也是一種選擇。實際上,當我問別人他們是如何解決SSL性能問題的時候這是比較有代表性的答案。但是,如果企業SSL要求的任何東西只增加不減少;且盡管已經做了很多來改善Node.js中的SSL,性能調整仍然還是需要的。我希望上述的一些技藝能夠幫助你調整SSL用例性能。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧洲高清在线| 97精品国产aⅴ7777| 国产精品久久久久久久久| 这里只有精品视频在线| 欧美性视频网站| 欧美裸体xxxx极品少妇| 国产精品视频一区二区三区四| 精品久久久久久久久中文字幕| 亚洲国产精品一区二区久| 一区二区三区视频观看| 亚洲成人精品久久久| 亚洲一区亚洲二区| 在线成人激情视频| 亚洲男人的天堂网站| 91产国在线观看动作片喷水| 久久免费少妇高潮久久精品99| 久久久女人电视剧免费播放下载| 亚洲精品mp4| 亚洲一区二区三区毛片| xxx一区二区| 久久大大胆人体| 成人免费高清完整版在线观看| 亚洲大尺度美女在线| 日韩精品小视频| 午夜精品一区二区三区视频免费看| 欧美精品性视频| 日韩电影大全免费观看2023年上| 91成人福利在线| 中文字幕av一区二区三区谷原希美| 国产精品户外野外| 亚洲精品第一国产综合精品| 97精品国产97久久久久久| 国产91精品久久久久| 狠狠躁天天躁日日躁欧美| 久久天天躁狠狠躁夜夜爽蜜月| 久久精品国产亚洲7777| 日韩精品在线免费观看视频| 91av在线网站| 久久久精品中文字幕| 欧美理论电影在线播放| 欧美老女人在线视频| 97久久超碰福利国产精品…| 国产精品美女主播在线观看纯欲| 亚洲欧美另类自拍| 精品国产精品三级精品av网址| 91香蕉电影院| 中文字幕欧美精品在线| 日韩免费在线免费观看| 日本精品免费观看| 8090理伦午夜在线电影| 456国产精品| 亚洲国产日韩欧美在线99| 日韩专区在线播放| 亚洲午夜激情免费视频| 国产亚洲美女精品久久久| 91久久精品视频| 国产精品成人一区二区| 久久久精品一区二区| 欧美高清视频在线播放| 国产成人综合亚洲| 亚洲国产精品一区二区三区| 中文字幕精品影院| 欧美电影免费播放| 日韩电影免费在线观看中文字幕| 欧美激情欧美激情| 国产精品露脸自拍| 日韩免费在线免费观看| 国产精品第一页在线| 91香蕉亚洲精品| 欧美激情va永久在线播放| 国产精品日韩在线一区| 亚洲性av在线| 亚洲国产精品大全| 久青草国产97香蕉在线视频| 欧美日韩精品二区| 亚洲毛片在线免费观看| 亚洲美女视频网| 欧美美女操人视频| 日韩精品久久久久| 国产97在线视频| 欧美日韩国产999| 91欧美精品成人综合在线观看| 欧美激情亚洲精品| 中文字幕av日韩| 久久亚洲精品成人| 亚洲视频欧美视频| 久久久久久久久久亚洲| 日韩专区中文字幕| 日韩精品在线观看一区二区| 国产亚洲一级高清| 成人激情在线播放| 俺去亚洲欧洲欧美日韩| 最近2019免费中文字幕视频三| 日韩在线视频免费观看| 全球成人中文在线| 欧美福利视频在线观看| 国产视频亚洲视频| 色伦专区97中文字幕| 欧美日韩国产精品一区二区不卡中文| 国产亚洲视频中文字幕视频| 国产一区二区三区视频在线观看| 成人网在线观看| www亚洲欧美| 欧美放荡办公室videos4k| 国产成人精品免费久久久久| 国产成人精品视频| 亚洲一区二区三区在线免费观看| 亚洲人成亚洲人成在线观看| 3344国产精品免费看| 日韩在线免费视频观看| 欧美成人精品在线播放| 26uuu久久噜噜噜噜| 久久亚洲欧美日韩精品专区| 久久久精品久久久久| 91精品国产综合久久久久久久久| 久久99精品国产99久久6尤物| 欧美乱大交做爰xxxⅹ性3| 日韩在线欧美在线| 成人亚洲综合色就1024| 亚洲精品资源美女情侣酒店| 欧美国产乱视频| 欧美另类老肥妇| 国产精品一区=区| 欧美精品aaa| 国产精品一香蕉国产线看观看| 欧美日韩在线视频一区| 日韩美女在线观看一区| 国内精品美女av在线播放| 国产精品女人网站| 欧美电影免费播放| 久久久久中文字幕| 久久亚洲国产成人| 国产精品久久久久久久久影视| 日韩av免费在线观看| 欧美电影《睫毛膏》| 国产一区二区三区网站| 最新国产精品亚洲| 丝袜亚洲另类欧美重口| 日本欧美黄网站| 国产在线日韩在线| 亚洲xxxx做受欧美| 韩日欧美一区二区| 国产ts一区二区| 国产精品一区二区3区| 青草青草久热精品视频在线观看| 日本免费在线精品| 中文字幕最新精品| 在线精品高清中文字幕| 国产精品爽爽爽| 最新的欧美黄色| 日韩亚洲成人av在线| 日韩电影中文字幕在线| 最近更新的2019中文字幕| 97avcom| 欧美激情va永久在线播放| www.欧美三级电影.com| 欧美www在线| 欧美成人精品激情在线观看| 精品久久久久久久久国产字幕| 狠狠躁夜夜躁人人爽天天天天97| 成人h视频在线| 91九色精品视频| 91精品国产91久久久久福利| 懂色av一区二区三区|