SlideShare a Scribd company logo
1 of 55
Web Operations & Perl
Inside livedoor Blog s Backend and cloudforecast
                                  Kansai.pm #14
                      Masahiro Nagano (kazeburo)
謝辞

Kansai.pm++

AzureStone++

  はてな++

   JPA++
Me
• 長野雅広
• @kazeburo
• PAUSE: KAZEBURO
• 横浜在住
• Operations Engineer, livedoor
 • NHN Japan (2012
• http://blog.nomadscafe.jp/
livedoor
Our services




2011年9月26日月曜日
Large scale web service


       2800+ servers

       3200+ hosts
large traffic



4Gbps
Aug 2009
large traffic


16Gbps
  Nov 2011
 自社回線 + CDN
livedoor Blog
     2003-12∼
Stats
•blog開設数 400万
•月間UU 3000万
 (2011年6月/コムスコア調べ)

•月間1億PVを超えるブログ
 •痛いニュース
 •ハムスター速報
Infrastructure

  PC         mobile          PC          mobile
CMS APP     CMS APP          APP          APP

                                                  STF   Analyzer

              Job     Main         Clustered
memcached
             Queue    DB              DB




                     ブログ                          画像    解析
Softwares

•Apache + modules
•mod_perl / Plack PSGI
•MySQL 4.0.x 5.1.x
•TheSchwartz / Q4M
•memcached
STF 画像ストレージ



   MogileFS ライクな
 分散オブジェクトストレージ
3億オブジェクト/10億以上のファイル
     20億ファイル以上(移行中)


    近日オープンソース化予定!
STF Internal
               nginx
                                        •   dispatcher
               Squid
                                            ➡ 独自Apache module

                                        •   jobqueue
                              Meta
Dispatcher    JobQueue                      ➡ STOMP
                               DB
                                            ➡ perl

                                        •   Meta DB
mod_dav   mod_dav   mod_dav   mod_dav
                                            ➡ MySQL


mod_dav   mod_dav   mod_dav   mod_dav
STF Internal
               nginx
                                        •   dispatcher
               Squid
                                        ➡ Plack/PSGI

                                        ➡ Apache mod_reproxy
                              Meta
Dispatcher    JobQueue
                               DB       •   jobqueue

                                        ➡ Q4M

                                        ➡ perl
mod_dav   mod_dav   mod_dav   mod_dav
                                        •   Meta DB

                                        ➡ XtraDB
mod_dav   mod_dav   mod_dav   mod_dav
Traffic Control

    複数の回線                       自社回線2

    コスト削減              自社回線1             CDN
 一定量の帯域維持

  インフラの制限
                        nginx    nginx   nginx
nginxのrewriteでは表現難しい
                        Squid    Squid   Squid
Traffic Control

                自社回線2

       自社回線1             CDN



        nginx    nginx   nginx

        Squid    Squid   Squid
Traffic Control
$ ./configure    --with-http_perl_module

# nginx.conf
perl_set $usecdn '                                  自社回線2
sub {
    my $r = shift;
    my @lt = localtime();
    return "AB"                            自社回線1             CDN
       if $lt[2] >= 20 || $lt[2] < 3;
    return "B"
       if $lt[2] >= 18 || $lt[2] < 3;
    return "";
}
';
                                            nginx    nginx   nginx
if ( $usecdn ~   A ) {
    rewrite /a   http://cdn/$1 redirect;
}                                           Squid    Squid   Squid
if ( $usecdn ~   B ) {
    rewrite /b   http://cdn/$1 redirect;
}
Traffic Control
Traffic Control
MySQL
                           MySQL 4.0.x

                Software based sharding

Over 160 clusters / 80 servers(Master-Slave*2)

                2.0TB of ibdata                (master only)



                               App

     ①                                                ②

     Mapping     Cluster   Cluster   Cluster    Cluster    Cluster
    (Main DB)       1         2         3          4          5
Backup of MySQL 4.0

              $ mysqldump --master-data blocks update query



       MySQL 5.1.x                         MySQL 4.0.x
FLUSH LOCAL TABLES                  FLUSH TABLES WITH READ LOCK
FLUSH TABLES WITH READ LOCK         BEGIN
SET SESSION TRANSACTION             DB選択
ISOLATION LEVEL REPEATABLE READ     テーブルからデータの読み込み
START TRANSACTION WITH             COMMIT;
CONSISTENT SNAPSHOT                 SHOW MASTER STATUS
SHOW MASTER STATUS                  UNLOCK TABLES;
UNLOCK TABLES
DB選択
テーブルからデータの読み込み
mysqldump wrapper
  for MySQL 4.0
$dbh->do('FLUSH TABLES WITH READ LOCK');
$dbh->select('SHOW MASTER STATUS');

pipe my $logrh, my $logwh;

my $pid = fork
if ( $pid == 0 ) { #子プロセス
    open STDOUT, '>&', $logwh;
    exec("mysqldump","--single-transaction","--databases","...");
}

while(<$logrh>){
  print;
  if ( m!^CREATE DATABASE!) {
      $dbh->do('UNLOCK TABLE');
  }
}

              https://github.com/kazeburo/mysql40dump
Operations


Data Hotel (監視・一時切り分け)

         Nagios

      cloudforecast
easy Nagios
configuration generator
use Text::Xslate;
use Data::Section::Simple qw(get_data_section);

for my $l ( split /n/, get_data_section('data') ) {
  chomp($l);
  my ($ip, $host) = split /s+/, $l;
  push @nodes, {
     ipaddr => $ip,
     hostname => $host,
  };
}

my $tx = Text::Xslate->new();
print $tx->render_string(get_data_section('tmpl'), { nodes => @nodes });

__DATA__
@@ data
10.x.x.201 blogserver1
10.x.x.202 blogserver2

@@ tmpl
...
@@ tmpl

: for $nodes -> $node {
define host{
  use             generic-host
  max_check_attempts        3
  host_name            <: $node.hostname :>
  alias           <: $node.hostname :>
  address            <: $node.ipaddr :>
}

define service{
  use                 generic-service
  host_name              <: $node.hostname :>
  service_description       Disk Usage
  notification_options       u,c,r
  check_command              check_disk
}

define service{
  use                 generic-service
  host_name              <: $node.hostname :>
  service_description       MySQL Uptime
  max_check_attempts           1
  notification_options       u,c
  check_command              check_mysql_uptime
}
:}
What monitoring
 with Nagios
      Total Traffic

    nginx stub_status

     MySQL uptime

 MySQL replication delay
cloudforecast
Metrics収集(リソースモニタリングについて)




            http://www.flickr.com/photos/gsfc/4427417620/in/set-72157623639063326/
グラフ大好き!
監視とMetrics収集

     Server                    Server
              agent   agent
                                   fetch
polling
                              監視サーバ

  監視サーバ                 update

                              DB/Graph
          notify
                                   browse

     運用者                       運用者


     監視                Metrics収集
Why needs Metrics


 パフォーマンス障害を未然に防ぐ

 アプリケーションの改善サイクル
cloudforecast
 Metrics gathering tool

(リソースモニタリングツール)
    Open Source, Perl

    RRDTool wrapper

    Easy deployment

   Fast and Extensible
cloudforecast
    core plugins

Basic (CPU usage, Load Average,
Memory usage, TCP Established)

  Traffic, Disk Usage, Disk IO

     Apache, Nginx, Squid

 MySQL, InnoDB, memcached
cloudforecast users



  livedoorと数社
cloudforecast at livedoor

                      2 instances

      1000 hosts/instance(max)

             wrote some plugins
   (TheSchwartz, Q4M, qmail, postfix, LoadBalancer)

           integrate with Yabitz*
   *host mangement application (https://github.com/tagomoris/yabitz)
cloudforecast
architecture#1
          Web



    RRD           DB



          radar

             pull via snmp,http,DBI..


      Server
cloudforecast
   architecture#2
                       RRD             DB



                       updater    updater
radar      enqueue

                            gearmand


        fetcher   fetcher    fetcher    fetcher   fetcher




        Server    Server     Server     Server    Server
How to setup &
             configuration




http://www.slideshare.net/kazeburo/introduction-to-cloudforecast-yapcasia-2010-tokyo
Web Interface#1
Web Interface#2
Web Interface#3
Web Interface#4
Web Interface#5
cloudforecast
tuening guide
CPU usage#1 (App)

            user




    > アプリケーションの見直し
         > サーバ増設
CPU usage#2 (DB)
                     iowait




   > クエリ・インデックスの確認
   > メモリ増設・スケールアップ
Memory usage (App)

                OOM!




 > ApacheのMaxClientsを下げてOOM回避
   > ループの可能性があるのでコード調査
MySQL slow-log




> query-digest を使用し、今のうちから調査を
InnoDB
                   disabled..




> 意図的に無効にされているのでなければ再構築..
MySQL
    Query vs Row read



750r/q




         > indexが効率的に使えていない可能性
           > update/deleteクエリにも要注意
Nginx & network




> writing の上昇 = networkが詰まっている可能性
まとめ
「推測するな、計測せよ」


  #!/usr/bin/perl
   use Metrics;
  pdca() while 1;
ご清聴ありがとう
 ございました

More Related Content

What's hot

REST with Spring Boot #jqfk
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfkToshiaki Maki
 
thymeleafさいしょの一歩
thymeleafさいしょの一歩thymeleafさいしょの一歩
thymeleafさいしょの一歩Yuichi Hasegawa
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境Masashi Shinbara
 
認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーション認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーションMasashi Shinbara
 
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化Masashi Shinbara
 
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivUsing ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivShunsuke Michii
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for SmalltalkSho Yoshida
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷JavaToshiaki Maki
 
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8Satoshi Ohkubo
 
Scripting Layer for Android + Perl
Scripting Layer for Android + PerlScripting Layer for Android + Perl
Scripting Layer for Android + PerlNaoya Ito
 
OpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かすOpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かすKUNITO Atsunori
 
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API DragonJOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API DragonNaoto Gohko
 
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...Kousuke Ebihara
 
Vagrant で PHP 開発環境を作る ハンズオン
Vagrant で PHP 開発環境を作る ハンズオンVagrant で PHP 開発環境を作る ハンズオン
Vagrant で PHP 開発環境を作る ハンズオンMasashi Shinbara
 
Word press on conoha このべん #3
Word press on conoha このべん #3Word press on conoha このべん #3
Word press on conoha このべん #3Wataru OKAMOTO
 
about Thrift
about Thriftabout Thrift
about ThriftNaoya Ito
 

What's hot (20)

REST with Spring Boot #jqfk
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfk
 
thymeleafさいしょの一歩
thymeleafさいしょの一歩thymeleafさいしょの一歩
thymeleafさいしょの一歩
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
 
Using Windows Azure
Using Windows AzureUsing Windows Azure
Using Windows Azure
 
認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーション認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーション
 
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
 
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivUsing ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixiv
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for Smalltalk
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
 
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
 
Scripting Layer for Android + Perl
Scripting Layer for Android + PerlScripting Layer for Android + Perl
Scripting Layer for Android + Perl
 
Scala on Hadoop
Scala on HadoopScala on Hadoop
Scala on Hadoop
 
OpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かすOpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かす
 
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API DragonJOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
JOSUG2014 OpenStack 4th birthday party in Japan; the way of OpenStack API Dragon
 
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話 Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
 
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
 
Vagrant で PHP 開発環境を作る ハンズオン
Vagrant で PHP 開発環境を作る ハンズオンVagrant で PHP 開発環境を作る ハンズオン
Vagrant で PHP 開発環境を作る ハンズオン
 
Zabbix API
Zabbix APIZabbix API
Zabbix API
 
Word press on conoha このべん #3
Word press on conoha このべん #3Word press on conoha このべん #3
Word press on conoha このべん #3
 
about Thrift
about Thriftabout Thrift
about Thrift
 

Viewers also liked

Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with PerlDave Cross
 
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011Masahiro Nagano
 
Operation Oriented Web Applications / Yokohama pm7
Operation Oriented Web Applications / Yokohama pm7Operation Oriented Web Applications / Yokohama pm7
Operation Oriented Web Applications / Yokohama pm7Masahiro Nagano
 
グラフで捗る話#2 kansai.pm#14
グラフで捗る話#2 kansai.pm#14グラフで捗る話#2 kansai.pm#14
グラフで捗る話#2 kansai.pm#14Masahiro Nagano
 
Mojolicious. The web in a box!
Mojolicious. The web in a box!Mojolicious. The web in a box!
Mojolicious. The web in a box!Anatoly Sharifulin
 
Web Development in Perl
Web Development in PerlWeb Development in Perl
Web Development in PerlNaveen Gupta
 
Perl hosting for beginners - Cluj.pm March 2013
Perl hosting for beginners - Cluj.pm March 2013Perl hosting for beginners - Cluj.pm March 2013
Perl hosting for beginners - Cluj.pm March 2013Arpad Szasz
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with PerlDave Cross
 
Introduction to Web Programming with Perl
Introduction to Web Programming with PerlIntroduction to Web Programming with Perl
Introduction to Web Programming with PerlDave Cross
 
Perl Dancer for Python programmers
Perl Dancer for Python programmersPerl Dancer for Python programmers
Perl Dancer for Python programmersxSawyer
 
Modern Perl Catch-Up
Modern Perl Catch-UpModern Perl Catch-Up
Modern Perl Catch-UpDave Cross
 
Simple Photo Processing and Web Display with Perl
Simple Photo Processing and Web Display with PerlSimple Photo Processing and Web Display with Perl
Simple Photo Processing and Web Display with PerlKent Cowgill
 
Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011leo lapworth
 

Viewers also liked (16)

Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with Perl
 
捗れ!Operation
捗れ!Operation捗れ!Operation
捗れ!Operation
 
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
 
Operation Oriented Web Applications / Yokohama pm7
Operation Oriented Web Applications / Yokohama pm7Operation Oriented Web Applications / Yokohama pm7
Operation Oriented Web Applications / Yokohama pm7
 
グラフで捗る話#2 kansai.pm#14
グラフで捗る話#2 kansai.pm#14グラフで捗る話#2 kansai.pm#14
グラフで捗る話#2 kansai.pm#14
 
Mysql 4.0 casual
Mysql 4.0 casualMysql 4.0 casual
Mysql 4.0 casual
 
Mojolicious. The web in a box!
Mojolicious. The web in a box!Mojolicious. The web in a box!
Mojolicious. The web in a box!
 
Web Development in Perl
Web Development in PerlWeb Development in Perl
Web Development in Perl
 
Perl hosting for beginners - Cluj.pm March 2013
Perl hosting for beginners - Cluj.pm March 2013Perl hosting for beginners - Cluj.pm March 2013
Perl hosting for beginners - Cluj.pm March 2013
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with Perl
 
Introduction to Web Programming with Perl
Introduction to Web Programming with PerlIntroduction to Web Programming with Perl
Introduction to Web Programming with Perl
 
Perl Dancer for Python programmers
Perl Dancer for Python programmersPerl Dancer for Python programmers
Perl Dancer for Python programmers
 
Modern Perl Catch-Up
Modern Perl Catch-UpModern Perl Catch-Up
Modern Perl Catch-Up
 
Simple Photo Processing and Web Display with Perl
Simple Photo Processing and Web Display with PerlSimple Photo Processing and Web Display with Perl
Simple Photo Processing and Web Display with Perl
 
Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011
 
Perl Scripting
Perl ScriptingPerl Scripting
Perl Scripting
 

Similar to Web Operations and Perl kansai.pm#14

tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用についてLINE Corporation
 
CloudStackユーザ会 OSC.cloud
CloudStackユーザ会 OSC.cloudCloudStackユーザ会 OSC.cloud
CloudStackユーザ会 OSC.cloudsamemoon
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Yasuhiro Arai
 
ConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキングConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキングMasatomo Ito
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理junichi anno
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osakaNaotaka Jay HOTTA
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
WebサーバのチューニングYu Komiya
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!Midori Oge
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINE Corporation
 
ioMemoryとAtomic Writeによるデータベース高速化
ioMemoryとAtomic Writeによるデータベース高速化ioMemoryとAtomic Writeによるデータベース高速化
ioMemoryとAtomic Writeによるデータベース高速化IIJ
 
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Yoichi Kawasaki
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますinfinite_loop
 
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Takamasa Maejima
 
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザKohei MATSUSHITA
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
GKEで半年運用してみた
GKEで半年運用してみたGKEで半年運用してみた
GKEで半年運用してみたKatsutoshi Nagaoka
 

Similar to Web Operations and Perl kansai.pm#14 (20)

tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用について
 
CloudStackユーザ会 OSC.cloud
CloudStackユーザ会 OSC.cloudCloudStackユーザ会 OSC.cloud
CloudStackユーザ会 OSC.cloud
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
 
ConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキングConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキング
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
 
ioMemoryとAtomic Writeによるデータベース高速化
ioMemoryとAtomic Writeによるデータベース高速化ioMemoryとAtomic Writeによるデータベース高速化
ioMemoryとAtomic Writeによるデータベース高速化
 
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
 
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
GKEで半年運用してみた
GKEで半年運用してみたGKEで半年運用してみた
GKEで半年運用してみた
 

More from Masahiro Nagano

Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/MinAdvanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/MinMasahiro Nagano
 
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Masahiro Nagano
 
Big Master Data PHP BLT #1
Big Master Data PHP BLT #1Big Master Data PHP BLT #1
Big Master Data PHP BLT #1Masahiro Nagano
 
Stream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LTStream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LTMasahiro Nagano
 
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月Masahiro Nagano
 
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015Masahiro Nagano
 
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTNorikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTMasahiro Nagano
 
メルカリでのNorikraの活用、 Mackerelを添えて
メルカリでのNorikraの活用、 Mackerelを添えてメルカリでのNorikraの活用、 Mackerelを添えて
メルカリでのNorikraの活用、 Mackerelを添えてMasahiro Nagano
 
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LTGazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LTMasahiro Nagano
 
Mackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LTMackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LTMasahiro Nagano
 
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術Masahiro Nagano
 
Isucon makers casual talks
Isucon makers casual talksIsucon makers casual talks
Isucon makers casual talksMasahiro Nagano
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べMasahiro Nagano
 
Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapmGazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapmMasahiro Nagano
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Masahiro Nagano
 
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LTWeb Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LTMasahiro Nagano
 
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版Masahiro Nagano
 
Webアプリケーションの パフォーマンス向上のコツ 実践編
 Webアプリケーションの パフォーマンス向上のコツ 実践編 Webアプリケーションの パフォーマンス向上のコツ 実践編
Webアプリケーションの パフォーマンス向上のコツ 実践編Masahiro Nagano
 
Webアプリケーションの パフォーマンス向上のコツ 概要編
 Webアプリケーションの パフォーマンス向上のコツ 概要編 Webアプリケーションの パフォーマンス向上のコツ 概要編
Webアプリケーションの パフォーマンス向上のコツ 概要編Masahiro Nagano
 
Webアプリケーションとメモリ
WebアプリケーションとメモリWebアプリケーションとメモリ
WebアプリケーションとメモリMasahiro Nagano
 

More from Masahiro Nagano (20)

Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/MinAdvanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
 
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
 
Big Master Data PHP BLT #1
Big Master Data PHP BLT #1Big Master Data PHP BLT #1
Big Master Data PHP BLT #1
 
Stream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LTStream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LT
 
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
 
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
 
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTNorikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
 
メルカリでのNorikraの活用、 Mackerelを添えて
メルカリでのNorikraの活用、 Mackerelを添えてメルカリでのNorikraの活用、 Mackerelを添えて
メルカリでのNorikraの活用、 Mackerelを添えて
 
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LTGazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
 
Mackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LTMackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LT
 
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
 
Isucon makers casual talks
Isucon makers casual talksIsucon makers casual talks
Isucon makers casual talks
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
 
Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapmGazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
 
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LTWeb Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
 
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
 
Webアプリケーションの パフォーマンス向上のコツ 実践編
 Webアプリケーションの パフォーマンス向上のコツ 実践編 Webアプリケーションの パフォーマンス向上のコツ 実践編
Webアプリケーションの パフォーマンス向上のコツ 実践編
 
Webアプリケーションの パフォーマンス向上のコツ 概要編
 Webアプリケーションの パフォーマンス向上のコツ 概要編 Webアプリケーションの パフォーマンス向上のコツ 概要編
Webアプリケーションの パフォーマンス向上のコツ 概要編
 
Webアプリケーションとメモリ
WebアプリケーションとメモリWebアプリケーションとメモリ
Webアプリケーションとメモリ
 

Recently uploaded

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Recently uploaded (9)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

Web Operations and Perl kansai.pm#14

  • 1. Web Operations & Perl Inside livedoor Blog s Backend and cloudforecast Kansai.pm #14 Masahiro Nagano (kazeburo)
  • 3. Me • 長野雅広 • @kazeburo • PAUSE: KAZEBURO • 横浜在住 • Operations Engineer, livedoor • NHN Japan (2012 • http://blog.nomadscafe.jp/
  • 6. Large scale web service 2800+ servers 3200+ hosts
  • 8. large traffic 16Gbps Nov 2011 自社回線 + CDN
  • 9. livedoor Blog 2003-12∼
  • 10. Stats •blog開設数 400万 •月間UU 3000万 (2011年6月/コムスコア調べ) •月間1億PVを超えるブログ •痛いニュース •ハムスター速報
  • 11. Infrastructure PC mobile PC mobile CMS APP CMS APP APP APP STF Analyzer Job Main Clustered memcached Queue DB DB ブログ 画像 解析
  • 12. Softwares •Apache + modules •mod_perl / Plack PSGI •MySQL 4.0.x 5.1.x •TheSchwartz / Q4M •memcached
  • 13. STF 画像ストレージ MogileFS ライクな 分散オブジェクトストレージ 3億オブジェクト/10億以上のファイル 20億ファイル以上(移行中) 近日オープンソース化予定!
  • 14. STF Internal nginx • dispatcher Squid ➡ 独自Apache module • jobqueue Meta Dispatcher JobQueue ➡ STOMP DB ➡ perl • Meta DB mod_dav mod_dav mod_dav mod_dav ➡ MySQL mod_dav mod_dav mod_dav mod_dav
  • 15. STF Internal nginx • dispatcher Squid ➡ Plack/PSGI ➡ Apache mod_reproxy Meta Dispatcher JobQueue DB • jobqueue ➡ Q4M ➡ perl mod_dav mod_dav mod_dav mod_dav • Meta DB ➡ XtraDB mod_dav mod_dav mod_dav mod_dav
  • 16. Traffic Control 複数の回線 自社回線2 コスト削減 自社回線1 CDN 一定量の帯域維持 インフラの制限 nginx nginx nginx nginxのrewriteでは表現難しい Squid Squid Squid
  • 17. Traffic Control 自社回線2 自社回線1 CDN nginx nginx nginx Squid Squid Squid
  • 18. Traffic Control $ ./configure --with-http_perl_module # nginx.conf perl_set $usecdn ' 自社回線2 sub { my $r = shift; my @lt = localtime(); return "AB" 自社回線1 CDN if $lt[2] >= 20 || $lt[2] < 3; return "B" if $lt[2] >= 18 || $lt[2] < 3; return ""; } '; nginx nginx nginx if ( $usecdn ~ A ) { rewrite /a http://cdn/$1 redirect; } Squid Squid Squid if ( $usecdn ~ B ) { rewrite /b http://cdn/$1 redirect; }
  • 21. MySQL MySQL 4.0.x Software based sharding Over 160 clusters / 80 servers(Master-Slave*2) 2.0TB of ibdata (master only) App ① ② Mapping Cluster Cluster Cluster Cluster Cluster (Main DB) 1 2 3 4 5
  • 22. Backup of MySQL 4.0 $ mysqldump --master-data blocks update query MySQL 5.1.x MySQL 4.0.x FLUSH LOCAL TABLES FLUSH TABLES WITH READ LOCK FLUSH TABLES WITH READ LOCK BEGIN SET SESSION TRANSACTION DB選択 ISOLATION LEVEL REPEATABLE READ テーブルからデータの読み込み START TRANSACTION WITH COMMIT; CONSISTENT SNAPSHOT SHOW MASTER STATUS SHOW MASTER STATUS UNLOCK TABLES; UNLOCK TABLES DB選択 テーブルからデータの読み込み
  • 23. mysqldump wrapper for MySQL 4.0 $dbh->do('FLUSH TABLES WITH READ LOCK'); $dbh->select('SHOW MASTER STATUS'); pipe my $logrh, my $logwh; my $pid = fork if ( $pid == 0 ) { #子プロセス open STDOUT, '>&', $logwh; exec("mysqldump","--single-transaction","--databases","..."); } while(<$logrh>){ print; if ( m!^CREATE DATABASE!) { $dbh->do('UNLOCK TABLE'); } } https://github.com/kazeburo/mysql40dump
  • 25. easy Nagios configuration generator use Text::Xslate; use Data::Section::Simple qw(get_data_section); for my $l ( split /n/, get_data_section('data') ) { chomp($l); my ($ip, $host) = split /s+/, $l; push @nodes, { ipaddr => $ip, hostname => $host, }; } my $tx = Text::Xslate->new(); print $tx->render_string(get_data_section('tmpl'), { nodes => @nodes }); __DATA__ @@ data 10.x.x.201 blogserver1 10.x.x.202 blogserver2 @@ tmpl ...
  • 26. @@ tmpl : for $nodes -> $node { define host{ use generic-host max_check_attempts 3 host_name <: $node.hostname :> alias <: $node.hostname :> address <: $node.ipaddr :> } define service{ use generic-service host_name <: $node.hostname :> service_description Disk Usage notification_options u,c,r check_command check_disk } define service{ use generic-service host_name <: $node.hostname :> service_description MySQL Uptime max_check_attempts 1 notification_options u,c check_command check_mysql_uptime } :}
  • 27. What monitoring with Nagios Total Traffic nginx stub_status MySQL uptime MySQL replication delay
  • 28. cloudforecast Metrics収集(リソースモニタリングについて) http://www.flickr.com/photos/gsfc/4427417620/in/set-72157623639063326/
  • 29.
  • 31. 監視とMetrics収集 Server Server agent agent fetch polling 監視サーバ 監視サーバ update DB/Graph notify browse 運用者 運用者 監視 Metrics収集
  • 32. Why needs Metrics パフォーマンス障害を未然に防ぐ アプリケーションの改善サイクル
  • 33. cloudforecast Metrics gathering tool (リソースモニタリングツール) Open Source, Perl RRDTool wrapper Easy deployment Fast and Extensible
  • 34. cloudforecast core plugins Basic (CPU usage, Load Average, Memory usage, TCP Established) Traffic, Disk Usage, Disk IO Apache, Nginx, Squid MySQL, InnoDB, memcached
  • 35. cloudforecast users livedoorと数社
  • 36. cloudforecast at livedoor 2 instances 1000 hosts/instance(max) wrote some plugins (TheSchwartz, Q4M, qmail, postfix, LoadBalancer) integrate with Yabitz* *host mangement application (https://github.com/tagomoris/yabitz)
  • 37. cloudforecast architecture#1 Web RRD DB radar pull via snmp,http,DBI.. Server
  • 38. cloudforecast architecture#2 RRD DB updater updater radar enqueue gearmand fetcher fetcher fetcher fetcher fetcher Server Server Server Server Server
  • 39. How to setup & configuration http://www.slideshare.net/kazeburo/introduction-to-cloudforecast-yapcasia-2010-tokyo
  • 46. CPU usage#1 (App) user > アプリケーションの見直し > サーバ増設
  • 47. CPU usage#2 (DB) iowait > クエリ・インデックスの確認 > メモリ増設・スケールアップ
  • 48. Memory usage (App) OOM! > ApacheのMaxClientsを下げてOOM回避 > ループの可能性があるのでコード調査
  • 49. MySQL slow-log > query-digest を使用し、今のうちから調査を
  • 50. InnoDB disabled.. > 意図的に無効にされているのでなければ再構築..
  • 51. MySQL Query vs Row read 750r/q > indexが効率的に使えていない可能性 > update/deleteクエリにも要注意
  • 52. Nginx & network > writing の上昇 = networkが詰まっている可能性

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n