BT

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

| 作者: Abel Avram フォローする 7 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2014年4月26日. 推定読書時間: 2 分 |

原文(投稿日: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でリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT