BT

NetflixがLog4Jを大規模向けのロギング生成に最適化

| 作者: Harry Brumleve フォローする 1 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2012年12月10日. 推定読書時間: 2 分 |

原文(投稿日:2012/12/04)へのリンク

 

Blitz4kは、Netflixがlog4jを内部的に最適化したバージョンであり、Githubにリリースされた。Blitz4j は、大量の並列で、高トラフィックな環境でも効率的にログを生成できるが、他のもっと古いロギング技術よりも、より少ないリソースしか消費しない。このことを達成するために、log4jのコードにおいて同期とデッドロックが起こりそうな部分を書き換えた。

log4Jに対してNetflix が行った変更には以下のものがある。

  1. 並列データ構造により、全てのクリティカルな同期を排除した。
  2. インメモリバッファとワーカースレッドの点で最高の設定可能性を提供する。
  3. wait-notifyモデルをエグゼキュータープールモデルで置き換えることにより、アプリケーションスレッドをロギングスレッドからもっと隔離した。
  4. 設定可能なサマリーにより、ログストーム中のログメッセージのハンドリングを改善した。

Netflixの報告によると、1秒で 300~500行をロギングするコストは、Blitz4jによって少なくとも75%下がった。そして同期に関連したプロセッサ動作のスパイクが完全になくなった。アプリケーションは、高使用で高ロギングの期間中でもまあまあの時間内で応答できるようになった。

1インスタンス当たりのロギングのトラフィックと必要性が増すほど、log4jは、ますますリソースを消費し、ログしている、まさにそのプロセスを遅くしてしまうことにNetflixは気がついた。彼らは、LogBackのような 別のロギング技術を採用することには躊躇した。彼らはlog4jにはかなりの投資をしていたからである。その代わりに彼らは、log4jを書き換え、非ブロッキングで非同期のロギング用にカスタマイズすることにした。log4jフレームワークは、大方変わらない。スケーラビリティに影響する部分だけを変更した。

Netflixの Karthikeyan Ranganathan氏が認識しているのは、始まったばかりのプロジェクトには、Blitz4jは最高の選択ではないかもしれないことだ。 LogBackはlog4jを作成したチームによる製品でNetflixチームが上げている多くの懸念事項に対処している。この点で、これまでのlog4jフレームワークに投資していないようなプロジェクトやslf4jにあうように作られて きたプロジェクトは、Blitz4jよりもLogBackを使うことを考えるべきである。しかしlog4jに相当な投資をしてきた会社には、 Blitz4jはインターネット規模でロギングするには、有効な選択肢である。

 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには 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