BT
  • エクスクルーシブアップデート:

PayPalにおけるNode.jsのSSLパフォーマンス改善

作者: Abel Avram , 翻訳者 笹井 崇司 投稿日 2014年4月26日 |

原文(投稿日:2014/04/17)へのリンク

PayPalで働くソフトウェアエンジニア、Trevor Livingston氏が最近の投稿で、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を最適化するオリジンごとの同時接続ソケット数のデフォルトは5だが大きくしすぎてはいけない。Livingston氏によれば「パフォーマンスにマイナスの影響を与える」そうだ。

slab buffer sizeの調整に注意する – これはGC時間に大きな影響を与える。0.12が出れば、この調整は不要になるだろう。

Livingston氏はまた、今度のNode.js 0.12はある程度改善されており、AES256アルゴリズムを使ったときには、リクエスト数/秒は約2倍になると述べている。

セッションを再利用する – もう1つのNodeのパフォーマンス改善アドバイスは、セッションを再利用することだ。このアイデアはMiroslav Bajtoš氏の記事に詳しく説明されている。これをやるには、セッションストアを生成し、newSessionresumeSessionイベントを扱う必要がある。記事には、セッション再利用のためのシングルスレッドアプリ用とワーカープロセスクラスタ用のコードサンプルも含まれている。

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

BackboneとAngularを比較する

Victor Savkin 2013年12月23日 午後8時23分

Java 8を可能にしたJava 7の機能

Ben Evans 2013年11月12日 午後8時25分

サイト全般について
バグ
広告
記事
InfoQ.com and all content copyright © 2006-2013 C4Media Inc. InfoQ.com and 株式会社豆蔵 InfoQ Japan hosted at Contegix, the best ISP we've ever worked with.
プライバシー
BT