SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Varnishのログの眺め方
     2011/02/11
   いわなちゃん(@xcir)
自己紹介
●   いわなちゃん(@xcir)
●   Varnishが好きすぎて困ります!
●   六本木とかによくいます
●   本当は今日TrafficServerの話をやろうと思ったの
    ですが検証が間に合わなくて><




       絡んでくれると喜びます!
Varnishのログの仕組み

                                    ファイル
                                   パイプなど

                    よくあるMW
リクエストを処理毎に書き込むためディスクIOに左右されたりします。
たくさんのリクエストが来るとパイプも重かったり
BufferedLogsなんてのもありますが・・・



            共有メモリ
                                   ファイルなど

varnishd             varnishncsa
リクエストを処理するvarnishdはログを高速なメモリに出力するため
低速なディスクに影響されることなくレスポンスを返却できます
Varnishでよく使うログ関係のコマンド
●   Varnishncsa
●   Varnishstat
●   Varnishlog
varnishncsa
●   NCSA形式のログを出力します
●   ただ癖が結構あるので注意が必要です
    ●   以前ESIやってたとき大変でした・・・
●   配布してるtgzだとカスタムログ形式は使えません
    (2.1.5)
●   trunkのだと-Fオプションで出来るっぽいです
    今回のバージョン入ると思ったんですがまだでした・・・
varnishstat①
●   チューニングをするときに一番使います
●   注意すべき値
    ●
        スレッド設定を見直したいもの
        –   N worker threads not created
             ●
                 スレッドを新規につくろうとしたけど作れなかった個数 出ないのが望ましいです
        –   N worker threads limited
             ●
                 スレッドプールの最大値でもう作れないです><
                 0以上なら設定の見直しなどをしたほうが良さそうです
        –   N dropped work requests
             ●
                 処理を諦めたリクエストの数 もう限界なので設定を見直しましょう




             大体スレッドプールの個数を調整するといいと思います
            最初から上がってるスレッド数を大きめにするのも有効です
varnishstat②
●   注意すべき値
    ●
        キャッシュポリシーを考えたいもの
        –   ヒット率
             ●
                 高いほどいいので頑張りましょう
        –   N LRU nuked objects
             ●   オブジェクトが期限切れ前に削除されています。
                 ストレージサイズが小さいorいらないものも沢山キャッシュしているでしょう




               例えばヒット率が高いのにnukedカウンタが上がっている場合
                    一部の沢山アクセスされるオブジェクトと
                ほとんどアクセスされないオブジェクトがあると思われます
              TTLの調整などでよりパフォーマンスがよくなる可能性があります
varnishstat③(ちょっと自信なさげ)
●   注意すべき値
    ●
        共有メモリの設定値を見直したいかも
        –   SHM flushes due to overflow
             ●
                 ソースをざっくり眺めた感じだとおそらくこの値は共有メモリがフラッシュされた回数です
                 もしログをvarnishncsaなどで保存してるときはどれぐらいの頻度でフラッシュされてる
                 か見たほうがいいと思います。




                   アクセス数が多いけどログもちゃんと保存したいときは
             /etc/sysconfig/varnishのMEMLOCKを調整したほうがいいかも?
varnishlog
●   Varnishがログとしているすべての出力を見れます
    ●   めちゃくちゃ量が多いので絞り込みオプションがあります
        –   -b
                 ●   Varnish・バックエンド間とのログのみ
        –   -c
                 ●   クライアント・Varnish間とのログのみ
        –   -i [tag]
                 ●
                     特定のタグだけ出力、大文字小文字は区別しません
                     例えば-i SessionOpenとした場合は新規セッションが確立したときの情報だけ出力します
        –   -I [Regex]
              データカラムを評価してヒットしたのを出力します
                 ●


        –   例えばクライアントから送出されるクッキーのヘッダのを出力したい場合は以下になります
                 ●   varnishlog -c -i RxHeader -I Cookie
    ●
        基本構造は以下です
          ↓メッセージタグ ↓データ
        11 RxRequest c GET
        ↑トランザクションのグループ
                    ↑データの流れ
varnishlog
                         11 RxRequest c GET

      ↓メッセージタグ ↓データ
    11 RxRequest c GET
    ↑トランザクションのグループ
                ↑データの流れ


●
    第一カラム:トランザクションのグループ
    ●   同じ番号は同じHTTPのトランザクションに属します
    ●   あくまでHTTPのなので ユーザ←→Varnish←バックエンドという一連の流れでは
        ユーザ←→VarnishとVarnish←バックエンドで別番号が振られます
varnishlog
                             11 RxRequest   c GET

      ↓メッセージタグ ↓データ
    11 RxRequest c GET
    ↑トランザクションのグループ
                ↑データの流れ


●
    第二カラム:メッセージタグ
    ●
        アクティビティの種別でタグが付きます
        PrefixにRx,Txが付いている場合は意味があります
         –   Rx:Varnishが受け取ったデータ
         –   Tx:Varnishが送信したデータ
varnishlog
                             11 RxRequest   c GET

      ↓メッセージタグ ↓データ
    11 RxRequest c GET
    ↑トランザクションのグループ
               ↑データの流れ


●
    第三カラム:データの流れ
    ●
        どこからデータが来たかを示します
        –   c:クライアントからのデータ
        –   b:バックエンドからのデータ
varnishlog
                         11 RxRequest   c GET

      ↓メッセージタグ ↓データ
    11 RxRequest c GET
    ↑トランザクションのグループ
               ↑データの流れ


●
    第四カラム:実際のデータ
varnishlog
                        example

●   12 RxHeader     c Host: blog.xcir.net
    ●   クライアント(c)から送出されたHeaderを
        Varnishが受け取っています(Rx)


●   13 TxHeader     b Host: blog.xcir.net
    ●   Varnishがバックエンド(b)に対してHeaderを
        送出しています(Tx)
自分を追い込むための   宣伝
●   上手く行けば夏コミで
    Varnishの薄い本だします



●   在庫は悲しいので見かけたら
    買ってくれると踊ります
ありがとうございました

Contenu connexe

Tendances

pixiv サイバーエージェント共同勉強会 solr導入記
pixiv サイバーエージェント共同勉強会 solr導入記pixiv サイバーエージェント共同勉強会 solr導入記
pixiv サイバーエージェント共同勉強会 solr導入記Takahiro Matsumiya
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―shinjiigarashi
 
Quick tour of PHP from inside
Quick tour of PHP from insideQuick tour of PHP from inside
Quick tour of PHP from insidejulien pauli
 
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!shinjiigarashi
 
MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較Shinya Sugiyama
 
JIT のコードを読んでみた
JIT のコードを読んでみたJIT のコードを読んでみた
JIT のコードを読んでみたy-uti
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説do_aki
 
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Shinsuke Sugaya
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)Takanori Sejima
 
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep DiveAmazon Web Services Japan
 
DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所Hidetoshi Hirokawa
 
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Naruhiko Ogasawara
 
Abusing Microsoft Kerberos - Sorry you guys don't get it
Abusing Microsoft Kerberos - Sorry you guys don't get itAbusing Microsoft Kerberos - Sorry you guys don't get it
Abusing Microsoft Kerberos - Sorry you guys don't get itBenjamin Delpy
 
Androidでvulkan事始め
Androidでvulkan事始めAndroidでvulkan事始め
Androidでvulkan事始め章暢 藤井
 
Iocコンテナについて
IocコンテナについてIocコンテナについて
IocコンテナについてAkio Terayama
 
挫折しないRedmine
挫折しないRedmine挫折しないRedmine
挫折しないRedmineGo Maeda
 
Debianの修正はどのように出荷されるか
Debianの修正はどのように出荷されるかDebianの修正はどのように出荷されるか
Debianの修正はどのように出荷されるかHideki Yamane
 

Tendances (20)

pixiv サイバーエージェント共同勉強会 solr導入記
pixiv サイバーエージェント共同勉強会 solr導入記pixiv サイバーエージェント共同勉強会 solr導入記
pixiv サイバーエージェント共同勉強会 solr導入記
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 
Quick tour of PHP from inside
Quick tour of PHP from insideQuick tour of PHP from inside
Quick tour of PHP from inside
 
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
 
WiredTigerを詳しく説明
WiredTigerを詳しく説明WiredTigerを詳しく説明
WiredTigerを詳しく説明
 
MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較
 
JIT のコードを読んでみた
JIT のコードを読んでみたJIT のコードを読んでみた
JIT のコードを読んでみた
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
 
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
 
DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所
 
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
 
DevOps勉強会
DevOps勉強会DevOps勉強会
DevOps勉強会
 
Abusing Microsoft Kerberos - Sorry you guys don't get it
Abusing Microsoft Kerberos - Sorry you guys don't get itAbusing Microsoft Kerberos - Sorry you guys don't get it
Abusing Microsoft Kerberos - Sorry you guys don't get it
 
Androidでvulkan事始め
Androidでvulkan事始めAndroidでvulkan事始め
Androidでvulkan事始め
 
MySQL Binlog Events でストリーム処理してみた #MySQLUC15
MySQL Binlog Events でストリーム処理してみた #MySQLUC15MySQL Binlog Events でストリーム処理してみた #MySQLUC15
MySQL Binlog Events でストリーム処理してみた #MySQLUC15
 
Iocコンテナについて
IocコンテナについてIocコンテナについて
Iocコンテナについて
 
挫折しないRedmine
挫折しないRedmine挫折しないRedmine
挫折しないRedmine
 
Debianの修正はどのように出荷されるか
Debianの修正はどのように出荷されるかDebianの修正はどのように出荷されるか
Debianの修正はどのように出荷されるか
 

En vedette

Varnishの使い方~All Aboutでの使い方を例に~
Varnishの使い方~All Aboutでの使い方を例に~Varnishの使い方~All Aboutでの使い方を例に~
Varnishの使い方~All Aboutでの使い方を例に~Kazuto Ohara
 
できる!Varnish ~もう一歩踏み出すためのTips~
できる!Varnish ~もう一歩踏み出すためのTips~できる!Varnish ~もう一歩踏み出すためのTips~
できる!Varnish ~もう一歩踏み出すためのTips~Iwana Chan
 
Varnish Cache Plus. Random notes for wise web developers
Varnish Cache Plus. Random notes for wise web developersVarnish Cache Plus. Random notes for wise web developers
Varnish Cache Plus. Random notes for wise web developersCarlos Abalde
 
Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料Iwana Chan
 
VarnishではじめるESI
VarnishではじめるESIVarnishではじめるESI
VarnishではじめるESIIwana Chan
 
VarnishCache入門Rev2.1
VarnishCache入門Rev2.1VarnishCache入門Rev2.1
VarnishCache入門Rev2.1Iwana Chan
 
Redisととあるシステム
RedisととあるシステムRedisととあるシステム
RedisととあるシステムTakehiro Torigaki
 
料理を楽しくする画像配信システム
料理を楽しくする画像配信システム料理を楽しくする画像配信システム
料理を楽しくする画像配信システムIssei Naruta
 
EC2とVarnishで画像配信
EC2とVarnishで画像配信EC2とVarnishで画像配信
EC2とVarnishで画像配信Issei Naruta
 
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦いYuto Komai
 

En vedette (11)

Varnishの使い方~All Aboutでの使い方を例に~
Varnishの使い方~All Aboutでの使い方を例に~Varnishの使い方~All Aboutでの使い方を例に~
Varnishの使い方~All Aboutでの使い方を例に~
 
できる!Varnish ~もう一歩踏み出すためのTips~
できる!Varnish ~もう一歩踏み出すためのTips~できる!Varnish ~もう一歩踏み出すためのTips~
できる!Varnish ~もう一歩踏み出すためのTips~
 
Varnish Cache Plus. Random notes for wise web developers
Varnish Cache Plus. Random notes for wise web developersVarnish Cache Plus. Random notes for wise web developers
Varnish Cache Plus. Random notes for wise web developers
 
Varnish
VarnishVarnish
Varnish
 
Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料
 
VarnishではじめるESI
VarnishではじめるESIVarnishではじめるESI
VarnishではじめるESI
 
VarnishCache入門Rev2.1
VarnishCache入門Rev2.1VarnishCache入門Rev2.1
VarnishCache入門Rev2.1
 
Redisととあるシステム
RedisととあるシステムRedisととあるシステム
Redisととあるシステム
 
料理を楽しくする画像配信システム
料理を楽しくする画像配信システム料理を楽しくする画像配信システム
料理を楽しくする画像配信システム
 
EC2とVarnishで画像配信
EC2とVarnishで画像配信EC2とVarnishで画像配信
EC2とVarnishで画像配信
 
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
 

Similaire à Varnishのログの眺め方

tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜Taro Matsuzawa
 
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについてippei_suzuki
 
tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)Iwana Chan
 
OpenStack + Common Lisp
OpenStack + Common LispOpenStack + Common Lisp
OpenStack + Common Lispirix_jp
 
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)Uptime Technologies LLC (JP)
 
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010Tsukasa Oi
 
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)Panda Yamaki
 
Hadoopによるリクルートでの技術調査とその活用
Hadoopによるリクルートでの技術調査とその活用Hadoopによるリクルートでの技術調査とその活用
Hadoopによるリクルートでの技術調査とその活用Chiaki Hatanaka
 
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザKohei MATSUSHITA
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜Takahiro Inoue
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例Akihiro Kuwano
 
Wakame-vdc 開発苦労談
Wakame-vdc 開発苦労談Wakame-vdc 開発苦労談
Wakame-vdc 開発苦労談Masahito Yoshida
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
WebサーバのチューニングYu Komiya
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1信之 岩永
 
AWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCacheAWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCacheAmazon Web Services Japan
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニックinfinite_loop
 

Similaire à Varnishのログの眺め方 (20)

tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
 
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
 
Mysql casial01
Mysql casial01Mysql casial01
Mysql casial01
 
tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
 
OpenStack + Common Lisp
OpenStack + Common LispOpenStack + Common Lisp
OpenStack + Common Lisp
 
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
 
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
 
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
 
Hadoopによるリクルートでの技術調査とその活用
Hadoopによるリクルートでの技術調査とその活用Hadoopによるリクルートでの技術調査とその活用
Hadoopによるリクルートでの技術調査とその活用
 
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
 
Wakame-vdc 開発苦労談
Wakame-vdc 開発苦労談Wakame-vdc 開発苦労談
Wakame-vdc 開発苦労談
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
CPUの同時実行機能
CPUの同時実行機能CPUの同時実行機能
CPUの同時実行機能
 
AWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCacheAWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCache
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
 

Dernier

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Dernier (7)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

Varnishのログの眺め方

  • 1. Varnishのログの眺め方 2011/02/11 いわなちゃん(@xcir)
  • 2. 自己紹介 ● いわなちゃん(@xcir) ● Varnishが好きすぎて困ります! ● 六本木とかによくいます ● 本当は今日TrafficServerの話をやろうと思ったの ですが検証が間に合わなくて>< 絡んでくれると喜びます!
  • 3. Varnishのログの仕組み ファイル パイプなど よくあるMW リクエストを処理毎に書き込むためディスクIOに左右されたりします。 たくさんのリクエストが来るとパイプも重かったり BufferedLogsなんてのもありますが・・・ 共有メモリ ファイルなど varnishd varnishncsa リクエストを処理するvarnishdはログを高速なメモリに出力するため 低速なディスクに影響されることなくレスポンスを返却できます
  • 4. Varnishでよく使うログ関係のコマンド ● Varnishncsa ● Varnishstat ● Varnishlog
  • 5. varnishncsa ● NCSA形式のログを出力します ● ただ癖が結構あるので注意が必要です ● 以前ESIやってたとき大変でした・・・ ● 配布してるtgzだとカスタムログ形式は使えません (2.1.5) ● trunkのだと-Fオプションで出来るっぽいです 今回のバージョン入ると思ったんですがまだでした・・・
  • 6. varnishstat① ● チューニングをするときに一番使います ● 注意すべき値 ● スレッド設定を見直したいもの – N worker threads not created ● スレッドを新規につくろうとしたけど作れなかった個数 出ないのが望ましいです – N worker threads limited ● スレッドプールの最大値でもう作れないです>< 0以上なら設定の見直しなどをしたほうが良さそうです – N dropped work requests ● 処理を諦めたリクエストの数 もう限界なので設定を見直しましょう 大体スレッドプールの個数を調整するといいと思います 最初から上がってるスレッド数を大きめにするのも有効です
  • 7. varnishstat② ● 注意すべき値 ● キャッシュポリシーを考えたいもの – ヒット率 ● 高いほどいいので頑張りましょう – N LRU nuked objects ● オブジェクトが期限切れ前に削除されています。 ストレージサイズが小さいorいらないものも沢山キャッシュしているでしょう 例えばヒット率が高いのにnukedカウンタが上がっている場合 一部の沢山アクセスされるオブジェクトと ほとんどアクセスされないオブジェクトがあると思われます TTLの調整などでよりパフォーマンスがよくなる可能性があります
  • 8. varnishstat③(ちょっと自信なさげ) ● 注意すべき値 ● 共有メモリの設定値を見直したいかも – SHM flushes due to overflow ● ソースをざっくり眺めた感じだとおそらくこの値は共有メモリがフラッシュされた回数です もしログをvarnishncsaなどで保存してるときはどれぐらいの頻度でフラッシュされてる か見たほうがいいと思います。 アクセス数が多いけどログもちゃんと保存したいときは /etc/sysconfig/varnishのMEMLOCKを調整したほうがいいかも?
  • 9. varnishlog ● Varnishがログとしているすべての出力を見れます ● めちゃくちゃ量が多いので絞り込みオプションがあります – -b ● Varnish・バックエンド間とのログのみ – -c ● クライアント・Varnish間とのログのみ – -i [tag] ● 特定のタグだけ出力、大文字小文字は区別しません 例えば-i SessionOpenとした場合は新規セッションが確立したときの情報だけ出力します – -I [Regex] データカラムを評価してヒットしたのを出力します ● – 例えばクライアントから送出されるクッキーのヘッダのを出力したい場合は以下になります ● varnishlog -c -i RxHeader -I Cookie ● 基本構造は以下です   ↓メッセージタグ ↓データ 11 RxRequest c GET ↑トランザクションのグループ             ↑データの流れ
  • 10. varnishlog 11 RxRequest c GET   ↓メッセージタグ ↓データ 11 RxRequest c GET ↑トランザクションのグループ             ↑データの流れ ● 第一カラム:トランザクションのグループ ● 同じ番号は同じHTTPのトランザクションに属します ● あくまでHTTPのなので ユーザ←→Varnish←バックエンドという一連の流れでは ユーザ←→VarnishとVarnish←バックエンドで別番号が振られます
  • 11. varnishlog 11 RxRequest c GET   ↓メッセージタグ ↓データ 11 RxRequest c GET ↑トランザクションのグループ             ↑データの流れ ● 第二カラム:メッセージタグ ● アクティビティの種別でタグが付きます PrefixにRx,Txが付いている場合は意味があります – Rx:Varnishが受け取ったデータ – Tx:Varnishが送信したデータ
  • 12. varnishlog 11 RxRequest c GET   ↓メッセージタグ ↓データ 11 RxRequest c GET ↑トランザクションのグループ            ↑データの流れ ● 第三カラム:データの流れ ● どこからデータが来たかを示します – c:クライアントからのデータ – b:バックエンドからのデータ
  • 13. varnishlog 11 RxRequest c GET   ↓メッセージタグ ↓データ 11 RxRequest c GET ↑トランザクションのグループ            ↑データの流れ ● 第四カラム:実際のデータ
  • 14. varnishlog example ● 12 RxHeader c Host: blog.xcir.net ● クライアント(c)から送出されたHeaderを Varnishが受け取っています(Rx) ● 13 TxHeader b Host: blog.xcir.net ● Varnishがバックエンド(b)に対してHeaderを 送出しています(Tx)
  • 15. 自分を追い込むための 宣伝 ● 上手く行けば夏コミで Varnishの薄い本だします ● 在庫は悲しいので見かけたら 買ってくれると踊ります