<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

        提高NodeJS中SSL服務(wù)的性能_node.js

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:25:24
        文檔

        提高NodeJS中SSL服務(wù)的性能_node.js

        提高NodeJS中SSL服務(wù)的性能_node.js:在瀏覽互聯(lián)網(wǎng)時(shí),我們都知道,通過SSL進(jìn)行加密是非常重要的。在貝寶(PayPal),安全是我們的首要任務(wù)。我們使用端到端的加密,不僅只是我們的公共網(wǎng)站,對(duì)于我們的內(nèi)部服務(wù)調(diào)用也同樣如此。SSL加密技術(shù)將在很大程度上影響node.js的性能。我們已經(jīng)花時(shí)間調(diào)整
        推薦度:
        導(dǎo)讀提高NodeJS中SSL服務(wù)的性能_node.js:在瀏覽互聯(lián)網(wǎng)時(shí),我們都知道,通過SSL進(jìn)行加密是非常重要的。在貝寶(PayPal),安全是我們的首要任務(wù)。我們使用端到端的加密,不僅只是我們的公共網(wǎng)站,對(duì)于我們的內(nèi)部服務(wù)調(diào)用也同樣如此。SSL加密技術(shù)將在很大程度上影響node.js的性能。我們已經(jīng)花時(shí)間調(diào)整

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

        SSL密碼

        開箱即用,Node.js 的SSL使用一組非常強(qiáng)大的密碼算法。特別是,迪菲赫爾曼密鑰交換和橢圓曲線算法是極其昂貴的。而且當(dāng)你在默認(rèn)配置中用了太多的對(duì)外SSL調(diào)用,Node.js的性能將從根本上得到削弱。為了得到它到底有多慢這個(gè)結(jié)論,這兒有個(gè)服務(wù)調(diào)用的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_generate_master_secret
        123.0ms 0.0% 4.0 ssl3_do_write
        ...
        

        讓我們重點(diǎn)關(guān)注一下密鑰的生成:

        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
        

        這個(gè)調(diào)用87%的時(shí)間都花在了生成密鑰上!

        這些密碼能被改變以減少密集的計(jì)算。這個(gè)想法已經(jīng)在https(或代理)得以實(shí)現(xiàn)了。例如:

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

        ...
        57945.0ms 32.5% 16.0 ssl3_send_client_key_exchange
        28958.0ms 16.2% 9.0 generate_key
        26827.0ms 15.0% 2.0 compute_key
        ...
        

        通過OpenSSL文檔,你可以學(xué)習(xí)更多關(guān)于密碼串的東西。

        SSL會(huì)話恢復(fù)

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

        通過給連接增加簡(jiǎn)短的握手機(jī)制,會(huì)話恢復(fù)能降低連接數(shù)的使用。

        保持活動(dòng)

        允許代理保持活動(dòng)將緩和SSL握手。一個(gè)保持活動(dòng)的代理,比如agentkeepalive可以修復(fù)結(jié)點(diǎn)保持活動(dòng)的問題,但在Node0.12中它是非必須的。

        另一個(gè)需要銘記在心的東西是代理的maxSockets,這個(gè)值高的話能對(duì)性能造成負(fù)面的影響。在你創(chuàng)建的對(duì)外連接數(shù)量的基礎(chǔ)上控制你的maxSockets值。

        Slab的大小

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

        這些分配的區(qū)間將會(huì)擴(kuò)展你的rss且會(huì)增加垃圾回收的時(shí)間。這意味著高容量將會(huì)影響到性能。把這個(gè)容量調(diào)整到一個(gè)比較低的值可以改善內(nèi)存和垃圾收集的性能。在0.12 版本中,slab的分配已經(jīng)得到改善了,沒有必須再調(diào)整了。

        SSL在0.12中近期的改變

        測(cè)試Fedor的SSL增強(qiáng)版。

        測(cè)試說明

        運(yùn)行一個(gè)作為SSL服務(wù)代理的http服務(wù),全部運(yùn)行在本機(jī)上。

        v0.10.22

        Running 10s test @ http://127.0.0.1:3000/
        20 threads and 20 connections
        Thread Stats Avg Stdev Max +/- Stdev
        Latency 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 read
        Requests/sec: 305.28
        Transfer/sec: 33.69KB
        

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

        Running 10s test @ http://127.0.0.1:3000/
        20 threads and 20 connections
        Thread Stats Avg Stdev Max +/- Stdev
        Latency 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 read
        Requests/sec: 261.86
        Transfer/sec: 27.62KB
        

        這沒有太多的區(qū)別,但這應(yīng)歸于默認(rèn)密碼,所以讓我們調(diào)整密碼的代理選項(xiàng)。例如:

        v0.10.22

        Running 10s test @ http://localhost:3000/
        20 threads and 20 connections
        Thread Stats Avg Stdev Max +/- Stdev
        Latency 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 read
        Requests/sec: 333.79
        Transfer/sec: 36.83KB
        

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

        Running 10s test @ http://localhost:3000/
        20 threads and 20 connections
        Thread Stats Avg Stdev Max +/- Stdev
        Latency 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 read
        Requests/sec: 515.80
        Transfer/sec: 56.92KB
        

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

        總結(jié)

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

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        提高NodeJS中SSL服務(wù)的性能_node.js

        提高NodeJS中SSL服務(wù)的性能_node.js:在瀏覽互聯(lián)網(wǎng)時(shí),我們都知道,通過SSL進(jìn)行加密是非常重要的。在貝寶(PayPal),安全是我們的首要任務(wù)。我們使用端到端的加密,不僅只是我們的公共網(wǎng)站,對(duì)于我們的內(nèi)部服務(wù)調(diào)用也同樣如此。SSL加密技術(shù)將在很大程度上影響node.js的性能。我們已經(jīng)花時(shí)間調(diào)整
        推薦度:
        標(biāo)簽: 增加 js ssl
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 色妞WWW精品免费视频| 你是我的城池营垒免费观看完整版 | 无码一区二区三区AV免费| 亚洲AV无码一区二区乱孑伦AS| 亚洲美女中文字幕| 亚洲综合av一区二区三区不卡 | 亚洲熟女综合色一区二区三区| 特级aaaaaaaaa毛片免费视频| 午夜精品射精入后重之免费观看 | 亚洲一本大道无码av天堂| 18gay台湾男同亚洲男同| 亚洲AV日韩综合一区| 中国黄色免费网站| 成人毛片18女人毛片免费视频未| 搡女人免费视频大全| 亚洲熟妇av午夜无码不卡| 日本免费v片一二三区| 国产尤物在线视精品在亚洲| 人人公开免费超级碰碰碰视频| 黄色三级三级免费看| 亚洲av无码天堂一区二区三区| 国产一区二区三区无码免费| 国产免费小视频在线观看| 大桥未久亚洲无av码在线 | 亚洲香蕉在线观看| 国产特级淫片免费看| 亚洲av日韩av高潮潮喷无码| 亚洲一区二区三区免费| 亚洲av永久无码精品漫画 | 精品国产免费一区二区| 国产一区在线观看免费| 高清免费久久午夜精品| 亚洲av无码精品网站| 成年人在线免费观看| 亚洲av永久无码精品天堂久久| a毛片在线还看免费网站| 亚洲AV无码久久精品成人| jizz免费在线影视观看网站| 亚洲国产精品国自产电影| 午夜神器成在线人成在线人免费| 亚洲一本之道高清乱码|