SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
社内チューニンガソンで 
優勝したはなし 
2014-­‐08-­‐28 
#ssmjp 
Aki@nekoruri
自己紹介 
• Aki 
/ 
@nekoruri 
/ 
id:nekoruri 
– 某CA社のなかのひと 
– 入社14ヶ月目 
– 秋葉原生まれ大手町育ちの歌って踊れる 
江戸っ子フルスタックインフラエンジニア
社内チューニンガソン 
「TOTEC2014」 
• 昨年までは新卒のみで実施、今年から拡大 
• 3部門で実施 
– インフラ:ミドルウェア 
– フロントエンド:HTML+CSS+JS 
– サーバサイド:言語を問わないAPI開発 
– 各100人(新卒50/他50)を予選で選抜
インフラチューニング 
• ソースコード「より下」のチューニング 
– いわゆる「チューニンガソン」そのもの 
– ミドルウェアの選定、チューニング 
– サーバ構成の最適化
今回のお題 
_人人人人人人_ 
> MediaWiki < 
 ̄Y^Y^Y^Y^Y^Y ̄
主なガイドライン 
• 用意されたMediaWikiの応答速度を競う 
• ソース修正禁止(設定ファイルは可) 
• 複数のURLの応答速度の合算(式は非公表) 
• 渡されたサーバ4台は自由に使える 
• DBはMySQL互換のみ(=ダンプが食える) 
• ディスクへの書き出しが必須 
• 終了直後にサーバ再起動
最終的なサーバ構成 
運営からの速度計測リクエスト 
サーバA 
サーバB 
サーバC 
キャッシュ破棄リクエスト 
(MediaWikiの標準機能) 
サーバD 
Varnish3 
nginx 
PHP 
5.5 
計測用 
サーバ 
nginx 
PHP 
5.5 
nginx 
PHP 
5.5 
nginx 
PHP 
5.5 
MySQL 
5.6 
固定100プロセス 
(DB同居のDは50) 
memcached
方針 
1. おれ達のMediaWikiがそんなにチューニング 
されていないわけがない 
– ですよねー 
2. 飛び道具は後半から 
– Varnish速いとか、しし知ってるし(震え声) 
3. 割り切り 
– 細かくベンチ取って比較してると時間足りない 
– 手間の割に効果が薄いことはどんどん後回し
11:00 
開始 
• 初期状態の保存 
– /etcをまるっと保存 
– rpm 
-­‐qa 
| 
sort 
• 環境の調査 
– Amazon 
Linux 
– 4台全部c3.large 
– ディスク構成も素のまま 
• 性能監視 
– dstat, 
munin 
この時点で 
OSチューニングも 
捨てる
11:30 
nginx 
+ 
php-­‐fpm導入 
• Apache+mod_php5だったらしい 
– PHPプロセス数 
=Apacheプロセス数 
           
=同時接続数 
• みんなだいすきnginx 
疎結合だいじ! 
とてもだいじ!! 
+ 
php-­‐fpmを導入 
– FastCGI層でPHPプロセスを分離 
– (転送遅いリクエストもnginxにおまかせ) 
• ついでにPHP5.4から5.5 
– APCのかわりにOpcache+APCu
12:00 
設定の試行錯誤 
• 運営の計測 
– 5分間隔(ぐらい) 
– これドリブンで動くと永遠に時間が掛かる 
(うえに施策と計測で時差が出る) 
• 自分でabで計測 
– アクセスログに出る計測リクエストを眺めつつ 
# 
ab 
-k 
-c10 
-n1000 
'localhost/wiki/index.php?title= 
%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8' 
Requests 
per 
second: 
18.15 
[#/sec] 
(mean)
PHPとMySQLの負荷 
# 
top 
top 
- 
12:12:24 
up 
3:59, 
2 
users, 
load 
average: 
3.31, 
4.30, 
2.72 
Tasks: 
89 
total, 
2 
running, 
87 
sleeping, 
0 
stopped, 
0 
zombie 
Cpu(s): 
40.0%us, 
1.5%sy, 
0.0%ni, 
57.3%id, 
1.0%wa, 
0.0%hi, 
0.0%si, 
0.2%st 
Mem: 
3859076k 
total, 
1750232k 
used, 
2108844k 
free, 
94156k 
buffers 
Swap: 
0k 
total, 
0k 
used, 
0k 
free, 
1279920k 
cached 
MySQLもおもい 
PID 
USER 
PR 
NI 
VIRT 
RES 
SHR 
S 
%CPU 
%MEM 
TIME+ 
COMMAND 
2652 
mysql 
20 
0 
1335m 
99m 
6184 
S 
13.0 
2.7 
7:12.04 
mysqld 
25668 
nginx 
20 
0 
463m 
35m 
18m 
S 
9.3 
0.9 
0:03.38 
php-fpm-5.5 
25665 
nginx 
20 
0 
459m 
31m 
18m 
S 
9.0 
0.8 
0:03.37 
php-fpm-5.5 
25670 
nginx 
20 
0 
457m 
29m 
17m 
S 
9.0 
0.8 
0:03.54 
php-fpm-5.5 
25667 
nginx 
20 
0 
459m 
31m 
17m 
S 
8.0 
0.8 
0:03.07 
php-fpm-5.5 
25669 
nginx 
20 
0 
459m 
31m 
18m 
S 
8.0 
0.8 
0:03.24 
php-fpm-5.5 
25662 
nginx 
20 
0 
457m 
29m 
17m 
S 
7.7 
0.8 
0:03.24 
php-fpm-5.5 
25663 
nginx 
20 
0 
457m 
29m 
18m 
S 
6.7 
0.8 
0:03.22 
php-fpm-5.5 
25664 
nginx 
20 
0 
461m 
33m 
18m 
S 
6.0 
0.9 
0:03.03 
php-fpm-5.5 
25661 
nginx 
20 
0 
459m 
31m 
17m 
R 
5.7 
0.8 
0:03.22 
php-fpm-5.5 
25666 
nginx 
20 
0 
457m 
29m 
17m 
S 
3.7 
0.8 
0:03.01 
php-fpm-5.5 
25693 
totec201 
20 
0 
15140 
1196 
912 
R 
0.3 
0.0 
0:00.03 
top 
1 
root 
20 
0 
19488 
1596 
1280 
S 
0.0 
0.0 
0:00.74 
init 
PHPがおもい
13:00 
DBチューニング 
• とりあえずそれっぽい設定をいれる 
– kazeburoさんが公開しているmy.cnf 
MySQLの設定ファイル my.cnf 
をgithubにて公開しました & 
チューニングポイントの紹介 
hdp://blog.nomadscafe.jp/2012/10/mysql-­‐mycnf-­‐github.html 
– 若干の手心 
• innodb_flush_log_at_trx_commit=0 
• クエリキャッシュの有効化
集計クエリとの戦い 
• 重いクエリの特定 
– 「moreEdit」問題 
• 秒単位でかかるのでタイムアウト扱い=ペナルティ 
– 集計系のクエリが死ぬほど重い 
• 試行錯誤 
– sort_bufferの思い切った引き上げ 
– クエリキャッシュ有効化 
– upgrade 
to 
MySQL 
5.6 
– (時間が合ったら:mysql-­‐proxyでクエリ書換) 
– ここで保留を決定(どうせVarnishするし)
14:00 
銀の弾丸Varnish登場 
• ググレカス 
– Google:「MediaWiki 
Varnish」 
⇒ 
Manual:Varnish 
caching 
– 
MediaWiki 
hdp://www.mediawiki.org/wiki/Manual:Varnish_caching 
– さすがおれ達のMediaWiki!!! 
– 10倍界王拳に成功!
15:00 
Varnishの調整 
• ログ強化 
# 
vim 
/etc/sysconfig/varnishncsa: 
DAEMON_OPTS="-a 
-w 
$logfile 
-D 
-P 
$pidfile 
-F 
'%h 
%l 
%u 
%t 
"%r" 
%s 
%b 
%D 
fb:% 
{Varnish:time_firstbyte}x 
hit:%{Varnish:hitmiss}x 
hdl:%x{Varnish:handling}x'" 
# 
sort 
-n 
-k11 
/var/log/varnish/varnishncsa.log 
| 
less 
• 数万リクエストなのでmallocにしてみる
PURGE 
• Varnishの天敵 
– 「更新されたページがキャッシュされ続ける」 
– おれ達のMediaWikiにはPURGE処理が標準! 
……設定忘れてたorz 
– これ入れる直前がピーク(93064)
16:00 
サーバの分散 
• とりあえずPHPで稼ぐ 
– 最終的に4台全部に載せる 
– DBと相乗りの子だけワーカー減らす 
本当はVarnishから 
の振り分け率を 
変えないとダメ
17:00 
ラストスパート 
• 運用?しらないね。 
– 監視全部カット 
– ログ全部カット 
• 要らないもの全部しまっちゃおうね 
– PHP未使用の拡張 
– chkconfig自動起動の不要サービス
17:30 
再起動テスト 
• 余裕があるうちに再起動をかける 
– chkconfig 
on 
漏れ(ありがち1) 
– sendmailが遅くて引っかかる(ありがち2) 
• キャッシュあたためますか 
– /var/lib/mysql 
を 
/dev/null 
に放り込む 
– curlでlocalhost叩いてOpcacheに放り込む
17:55 
あきらめる 祈る
18:00 
試合終了 
• 最終スコア: 
88295点
心残り1 
最後のボトルネック 
• サーバ性能を使い切れなかった 
– 1台の時より負けてる 
– サーバ間またぐレイテンシ分だけ損してる 
– Varnish?MySQL?
心残り2 
残された不一致 
• 一部のページで0.1%程度の不一致 
– contentPage1〜4 
– PURGEもしてるのでそんなに出ないはず 
– 計測手法が非公表なので調査できず
まとめ 
• PHP 
– mod_php5(5.4)からphp-­‐fpm(5.5)に変更 
– OPcacheを有効化 
– 心なしかスピード凶寄りの設定 
• Varnish 
• memcached 
• MySQL 
– 5.6にアップグレード 
– 心なしかスピード凶寄りの設定 
• 小細工 
– 監視等の全カット 
– 再起動後のキャッシュあたため
チューニングって楽しいよね!
宣伝 
• 本だしました! 
• クラウド時代の法律から 
実装までの最適解を紹介 
• hdp://goo.gl/BRY3Dt 
[AA] 
電子書籍版もあるよ!

Contenu connexe

Tendances

Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようmax747
 
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング勲 國府田
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
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
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみるairtoxin Ishii
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたatk1234
 
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)CLARA ONLINE, Inc.
 
Itcamp長崎2012 capistrano
Itcamp長崎2012 capistranoItcamp長崎2012 capistrano
Itcamp長崎2012 capistranokumachang_LL
 
Apacheチューニング
ApacheチューニングApacheチューニング
Apacheチューニングii012014
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Taro Hirose
 
Hive undocumented feature
Hive undocumented featureHive undocumented feature
Hive undocumented featuretamtam180
 
ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門	ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門 Atsu Yamaga
 
Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)hiboma
 
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことTrinityT _
 

Tendances (20)

Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
 
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
Hadoop on LXC
Hadoop on LXCHadoop on LXC
Hadoop on LXC
 
Ansible入門
Ansible入門Ansible入門
Ansible入門
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる
 
Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
 
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
 
Itcamp長崎2012 capistrano
Itcamp長崎2012 capistranoItcamp長崎2012 capistrano
Itcamp長崎2012 capistrano
 
Fabric Essentials
Fabric EssentialsFabric Essentials
Fabric Essentials
 
Ansible handson
Ansible handsonAnsible handson
Ansible handson
 
Apacheチューニング
ApacheチューニングApacheチューニング
Apacheチューニング
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
Hive undocumented feature
Hive undocumented featureHive undocumented feature
Hive undocumented feature
 
ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門	ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門
 
Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)
 
nginx入門
nginx入門nginx入門
nginx入門
 
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのこと
 

En vedette

最近つくったrecent_zombies - Perlで始めるTwitterタイムライン分析
最近つくったrecent_zombies -  Perlで始めるTwitterタイムライン分析最近つくったrecent_zombies -  Perlで始めるTwitterタイムライン分析
最近つくったrecent_zombies - Perlで始めるTwitterタイムライン分析Masahiro NAKAYAMA
 
20140704 cassandra introduction
20140704 cassandra introduction20140704 cassandra introduction
20140704 cassandra introductionMasahiro NAKAYAMA
 
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_jaChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_jaMasahiro NAKAYAMA
 
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + BerkshelfChef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + BerkshelfMasahiro NAKAYAMA
 
インフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccampインフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccampMasahiro NAKAYAMA
 
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
セキュリティ・キャンプ参加してみた #ssmjp #seccamp セキュリティ・キャンプ参加してみた #ssmjp #seccamp
セキュリティ・キャンプ参加してみた #ssmjp #seccamp Masahiro NAKAYAMA
 
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所Masahiro NAKAYAMA
 
今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre
今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre
今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapreMasahiro NAKAYAMA
 
クリスマス直前! HTML5 で作る♥ はじめての iOS & Android アプリ開発
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
クリスマス直前! HTML5 で作る♥ はじめての iOS & Android アプリ開発Osamu Monoe
 
OAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティOAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティHiroshi Hayakawa
 
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccampクラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccampMasahiro NAKAYAMA
 
エンジニアが知っておくべきSSL/TLSの知識(仮)
エンジニアが知っておくべきSSL/TLSの知識(仮)エンジニアが知っておくべきSSL/TLSの知識(仮)
エンジニアが知っておくべきSSL/TLSの知識(仮)Masahiro NAKAYAMA
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampMasahiro NAKAYAMA
 
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDockerMasahiro NAKAYAMA
 

En vedette (16)

最近つくったrecent_zombies - Perlで始めるTwitterタイムライン分析
最近つくったrecent_zombies -  Perlで始めるTwitterタイムライン分析最近つくったrecent_zombies -  Perlで始めるTwitterタイムライン分析
最近つくったrecent_zombies - Perlで始めるTwitterタイムライン分析
 
20140704 cassandra introduction
20140704 cassandra introduction20140704 cassandra introduction
20140704 cassandra introduction
 
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_jaChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
 
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + BerkshelfChef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
 
インフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccampインフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccamp
 
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
セキュリティ・キャンプ参加してみた #ssmjp #seccamp セキュリティ・キャンプ参加してみた #ssmjp #seccamp
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
 
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
 
今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre
今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre
今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre
 
クリスマス直前! HTML5 で作る♥ はじめての iOS & Android アプリ開発
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
クリスマス直前! HTML5 で作る♥ はじめての iOS & Android アプリ開発
 
OAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティOAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティ
 
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccampクラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
 
エンジニアが知っておくべきSSL/TLSの知識(仮)
エンジニアが知っておくべきSSL/TLSの知識(仮)エンジニアが知っておくべきSSL/TLSの知識(仮)
エンジニアが知っておくべきSSL/TLSの知識(仮)
 
TwitterのOAuth脆弱性
TwitterのOAuth脆弱性TwitterのOAuth脆弱性
TwitterのOAuth脆弱性
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
 
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker
 
Api gatewayの話
Api gatewayの話Api gatewayの話
Api gatewayの話
 

Similaire à 20140828 #ssmjp 社内チューニンガソンで優勝したはなし

Web時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメWeb時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメHideyuki Takeuchi
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング   -GPGPUも- Pythonによる並列プログラミング   -GPGPUも-
Pythonによる並列プログラミング -GPGPUも- Yusaku Watanabe
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002Takeshi Kuramochi
 
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティングMTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング純生 野田
 
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたことMITSUNARI Shigeo
 
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!leverages_event
 
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)Naoto MATSUMOTO
 
サイボウズ・ラボユース成果発表会資料
サイボウズ・ラボユース成果発表会資料サイボウズ・ラボユース成果発表会資料
サイボウズ・ラボユース成果発表会資料masahiro13
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングYosuke Mizutani
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Dai Utsui
 
システムパフォーマンス勉強会#5
システムパフォーマンス勉強会#5システムパフォーマンス勉強会#5
システムパフォーマンス勉強会#5shingo suzuki
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますinfinite_loop
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Yoshinori Matsunobu
 
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLHandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLakirahiguchi
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺MITSUNARI Shigeo
 

Similaire à 20140828 #ssmjp 社内チューニンガソンで優勝したはなし (20)

Web時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメWeb時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメ
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング   -GPGPUも- Pythonによる並列プログラミング   -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
 
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティングMTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
 
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
 
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
 
Introduction pp.js
Introduction pp.jsIntroduction pp.js
Introduction pp.js
 
ゆるかわPhp
ゆるかわPhpゆるかわPhp
ゆるかわPhp
 
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
 
Open VZ
Open VZOpen VZ
Open VZ
 
サイボウズ・ラボユース成果発表会資料
サイボウズ・ラボユース成果発表会資料サイボウズ・ラボユース成果発表会資料
サイボウズ・ラボユース成果発表会資料
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
 
システムパフォーマンス勉強会#5
システムパフォーマンス勉強会#5システムパフォーマンス勉強会#5
システムパフォーマンス勉強会#5
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
 
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLHandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
 

Plus de Masahiro NAKAYAMA

ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampMasahiro NAKAYAMA
 
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampイントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampMasahiro NAKAYAMA
 
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampクラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampMasahiro NAKAYAMA
 
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjpめもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjpMasahiro NAKAYAMA
 
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
クラウド時代における分散Webシステムの構成とスケーリング #seccamp クラウド時代における分散Webシステムの構成とスケーリング #seccamp
クラウド時代における分散Webシステムの構成とスケーリング #seccamp Masahiro NAKAYAMA
 
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介Masahiro NAKAYAMA
 
サーバーレス時代の システム設計ワークショップ
サーバーレス時代の システム設計ワークショップサーバーレス時代の システム設計ワークショップ
サーバーレス時代の システム設計ワークショップMasahiro NAKAYAMA
 
#ssmjp 2018/12 技術系同人誌を手に入れよう
#ssmjp 2018/12 技術系同人誌を手に入れよう#ssmjp 2018/12 技術系同人誌を手に入れよう
#ssmjp 2018/12 技術系同人誌を手に入れようMasahiro NAKAYAMA
 
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo Masahiro NAKAYAMA
 
クラウドでハンズオンする話 #ssmjp
クラウドでハンズオンする話 #ssmjpクラウドでハンズオンする話 #ssmjp
クラウドでハンズオンする話 #ssmjpMasahiro NAKAYAMA
 
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365Masahiro NAKAYAMA
 
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
IoT時代のセキュアなクラウドインフラ構築術 #seccampIoT時代のセキュアなクラウドインフラ構築術 #seccamp
IoT時代のセキュアなクラウドインフラ構築術 #seccampMasahiro NAKAYAMA
 
クラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccampクラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccampMasahiro NAKAYAMA
 
技術系同人誌を書こう #ssmjp
技術系同人誌を書こう #ssmjp技術系同人誌を書こう #ssmjp
技術系同人誌を書こう #ssmjpMasahiro NAKAYAMA
 
「サーバレスの薄い本」からの1年 #serverlesstokyo
「サーバレスの薄い本」からの1年 #serverlesstokyo「サーバレスの薄い本」からの1年 #serverlesstokyo
「サーバレスの薄い本」からの1年 #serverlesstokyoMasahiro NAKAYAMA
 
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyoBluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyoMasahiro NAKAYAMA
 
IoT(Bluetooth mesh) × サーバーレス
IoT(Bluetooth mesh) × サーバーレスIoT(Bluetooth mesh) × サーバーレス
IoT(Bluetooth mesh) × サーバーレスMasahiro NAKAYAMA
 
Serverless Architecture Overview #cdevc
Serverless Architecture Overview #cdevcServerless Architecture Overview #cdevc
Serverless Architecture Overview #cdevcMasahiro NAKAYAMA
 
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomugMasahiro NAKAYAMA
 

Plus de Masahiro NAKAYAMA (20)

ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
 
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampイントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
 
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampクラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
 
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjpめもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
 
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
クラウド時代における分散Webシステムの構成とスケーリング #seccamp クラウド時代における分散Webシステムの構成とスケーリング #seccamp
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
 
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
 
サーバーレス時代の システム設計ワークショップ
サーバーレス時代の システム設計ワークショップサーバーレス時代の システム設計ワークショップ
サーバーレス時代の システム設計ワークショップ
 
#ssmjp 2018/12 技術系同人誌を手に入れよう
#ssmjp 2018/12 技術系同人誌を手に入れよう#ssmjp 2018/12 技術系同人誌を手に入れよう
#ssmjp 2018/12 技術系同人誌を手に入れよう
 
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
 
クラウドでハンズオンする話 #ssmjp
クラウドでハンズオンする話 #ssmjpクラウドでハンズオンする話 #ssmjp
クラウドでハンズオンする話 #ssmjp
 
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
 
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
IoT時代のセキュアなクラウドインフラ構築術 #seccampIoT時代のセキュアなクラウドインフラ構築術 #seccamp
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
 
Serverless book
Serverless bookServerless book
Serverless book
 
クラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccampクラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccamp
 
技術系同人誌を書こう #ssmjp
技術系同人誌を書こう #ssmjp技術系同人誌を書こう #ssmjp
技術系同人誌を書こう #ssmjp
 
「サーバレスの薄い本」からの1年 #serverlesstokyo
「サーバレスの薄い本」からの1年 #serverlesstokyo「サーバレスの薄い本」からの1年 #serverlesstokyo
「サーバレスの薄い本」からの1年 #serverlesstokyo
 
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyoBluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
 
IoT(Bluetooth mesh) × サーバーレス
IoT(Bluetooth mesh) × サーバーレスIoT(Bluetooth mesh) × サーバーレス
IoT(Bluetooth mesh) × サーバーレス
 
Serverless Architecture Overview #cdevc
Serverless Architecture Overview #cdevcServerless Architecture Overview #cdevc
Serverless Architecture Overview #cdevc
 
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
 

Dernier

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
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
 
論文紹介: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
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介: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
 
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
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介: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
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Dernier (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
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
 
論文紹介: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
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介: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...
 
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」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介: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
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

20140828 #ssmjp 社内チューニンガソンで優勝したはなし

  • 2. 自己紹介 • Aki / @nekoruri / id:nekoruri – 某CA社のなかのひと – 入社14ヶ月目 – 秋葉原生まれ大手町育ちの歌って踊れる 江戸っ子フルスタックインフラエンジニア
  • 3. 社内チューニンガソン 「TOTEC2014」 • 昨年までは新卒のみで実施、今年から拡大 • 3部門で実施 – インフラ:ミドルウェア – フロントエンド:HTML+CSS+JS – サーバサイド:言語を問わないAPI開発 – 各100人(新卒50/他50)を予選で選抜
  • 4. インフラチューニング • ソースコード「より下」のチューニング – いわゆる「チューニンガソン」そのもの – ミドルウェアの選定、チューニング – サーバ構成の最適化
  • 6. 主なガイドライン • 用意されたMediaWikiの応答速度を競う • ソース修正禁止(設定ファイルは可) • 複数のURLの応答速度の合算(式は非公表) • 渡されたサーバ4台は自由に使える • DBはMySQL互換のみ(=ダンプが食える) • ディスクへの書き出しが必須 • 終了直後にサーバ再起動
  • 7. 最終的なサーバ構成 運営からの速度計測リクエスト サーバA サーバB サーバC キャッシュ破棄リクエスト (MediaWikiの標準機能) サーバD Varnish3 nginx PHP 5.5 計測用 サーバ nginx PHP 5.5 nginx PHP 5.5 nginx PHP 5.5 MySQL 5.6 固定100プロセス (DB同居のDは50) memcached
  • 8. 方針 1. おれ達のMediaWikiがそんなにチューニング されていないわけがない – ですよねー 2. 飛び道具は後半から – Varnish速いとか、しし知ってるし(震え声) 3. 割り切り – 細かくベンチ取って比較してると時間足りない – 手間の割に効果が薄いことはどんどん後回し
  • 9. 11:00 開始 • 初期状態の保存 – /etcをまるっと保存 – rpm -­‐qa | sort • 環境の調査 – Amazon Linux – 4台全部c3.large – ディスク構成も素のまま • 性能監視 – dstat, munin この時点で OSチューニングも 捨てる
  • 10. 11:30 nginx + php-­‐fpm導入 • Apache+mod_php5だったらしい – PHPプロセス数 =Apacheプロセス数            =同時接続数 • みんなだいすきnginx 疎結合だいじ! とてもだいじ!! + php-­‐fpmを導入 – FastCGI層でPHPプロセスを分離 – (転送遅いリクエストもnginxにおまかせ) • ついでにPHP5.4から5.5 – APCのかわりにOpcache+APCu
  • 11. 12:00 設定の試行錯誤 • 運営の計測 – 5分間隔(ぐらい) – これドリブンで動くと永遠に時間が掛かる (うえに施策と計測で時差が出る) • 自分でabで計測 – アクセスログに出る計測リクエストを眺めつつ # ab -k -c10 -n1000 'localhost/wiki/index.php?title= %E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8' Requests per second: 18.15 [#/sec] (mean)
  • 12. PHPとMySQLの負荷 # top top - 12:12:24 up 3:59, 2 users, load average: 3.31, 4.30, 2.72 Tasks: 89 total, 2 running, 87 sleeping, 0 stopped, 0 zombie Cpu(s): 40.0%us, 1.5%sy, 0.0%ni, 57.3%id, 1.0%wa, 0.0%hi, 0.0%si, 0.2%st Mem: 3859076k total, 1750232k used, 2108844k free, 94156k buffers Swap: 0k total, 0k used, 0k free, 1279920k cached MySQLもおもい PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2652 mysql 20 0 1335m 99m 6184 S 13.0 2.7 7:12.04 mysqld 25668 nginx 20 0 463m 35m 18m S 9.3 0.9 0:03.38 php-fpm-5.5 25665 nginx 20 0 459m 31m 18m S 9.0 0.8 0:03.37 php-fpm-5.5 25670 nginx 20 0 457m 29m 17m S 9.0 0.8 0:03.54 php-fpm-5.5 25667 nginx 20 0 459m 31m 17m S 8.0 0.8 0:03.07 php-fpm-5.5 25669 nginx 20 0 459m 31m 18m S 8.0 0.8 0:03.24 php-fpm-5.5 25662 nginx 20 0 457m 29m 17m S 7.7 0.8 0:03.24 php-fpm-5.5 25663 nginx 20 0 457m 29m 18m S 6.7 0.8 0:03.22 php-fpm-5.5 25664 nginx 20 0 461m 33m 18m S 6.0 0.9 0:03.03 php-fpm-5.5 25661 nginx 20 0 459m 31m 17m R 5.7 0.8 0:03.22 php-fpm-5.5 25666 nginx 20 0 457m 29m 17m S 3.7 0.8 0:03.01 php-fpm-5.5 25693 totec201 20 0 15140 1196 912 R 0.3 0.0 0:00.03 top 1 root 20 0 19488 1596 1280 S 0.0 0.0 0:00.74 init PHPがおもい
  • 13. 13:00 DBチューニング • とりあえずそれっぽい設定をいれる – kazeburoさんが公開しているmy.cnf MySQLの設定ファイル my.cnf をgithubにて公開しました & チューニングポイントの紹介 hdp://blog.nomadscafe.jp/2012/10/mysql-­‐mycnf-­‐github.html – 若干の手心 • innodb_flush_log_at_trx_commit=0 • クエリキャッシュの有効化
  • 14. 集計クエリとの戦い • 重いクエリの特定 – 「moreEdit」問題 • 秒単位でかかるのでタイムアウト扱い=ペナルティ – 集計系のクエリが死ぬほど重い • 試行錯誤 – sort_bufferの思い切った引き上げ – クエリキャッシュ有効化 – upgrade to MySQL 5.6 – (時間が合ったら:mysql-­‐proxyでクエリ書換) – ここで保留を決定(どうせVarnishするし)
  • 15. 14:00 銀の弾丸Varnish登場 • ググレカス – Google:「MediaWiki Varnish」 ⇒ Manual:Varnish caching – MediaWiki hdp://www.mediawiki.org/wiki/Manual:Varnish_caching – さすがおれ達のMediaWiki!!! – 10倍界王拳に成功!
  • 16. 15:00 Varnishの調整 • ログ強化 # vim /etc/sysconfig/varnishncsa: DAEMON_OPTS="-a -w $logfile -D -P $pidfile -F '%h %l %u %t "%r" %s %b %D fb:% {Varnish:time_firstbyte}x hit:%{Varnish:hitmiss}x hdl:%x{Varnish:handling}x'" # sort -n -k11 /var/log/varnish/varnishncsa.log | less • 数万リクエストなのでmallocにしてみる
  • 17. PURGE • Varnishの天敵 – 「更新されたページがキャッシュされ続ける」 – おれ達のMediaWikiにはPURGE処理が標準! ……設定忘れてたorz – これ入れる直前がピーク(93064)
  • 18. 16:00 サーバの分散 • とりあえずPHPで稼ぐ – 最終的に4台全部に載せる – DBと相乗りの子だけワーカー減らす 本当はVarnishから の振り分け率を 変えないとダメ
  • 19. 17:00 ラストスパート • 運用?しらないね。 – 監視全部カット – ログ全部カット • 要らないもの全部しまっちゃおうね – PHP未使用の拡張 – chkconfig自動起動の不要サービス
  • 20. 17:30 再起動テスト • 余裕があるうちに再起動をかける – chkconfig on 漏れ(ありがち1) – sendmailが遅くて引っかかる(ありがち2) • キャッシュあたためますか – /var/lib/mysql を /dev/null に放り込む – curlでlocalhost叩いてOpcacheに放り込む
  • 22. 18:00 試合終了 • 最終スコア: 88295点
  • 23. 心残り1 最後のボトルネック • サーバ性能を使い切れなかった – 1台の時より負けてる – サーバ間またぐレイテンシ分だけ損してる – Varnish?MySQL?
  • 24. 心残り2 残された不一致 • 一部のページで0.1%程度の不一致 – contentPage1〜4 – PURGEもしてるのでそんなに出ないはず – 計測手法が非公表なので調査できず
  • 25. まとめ • PHP – mod_php5(5.4)からphp-­‐fpm(5.5)に変更 – OPcacheを有効化 – 心なしかスピード凶寄りの設定 • Varnish • memcached • MySQL – 5.6にアップグレード – 心なしかスピード凶寄りの設定 • 小細工 – 監視等の全カット – 再起動後のキャッシュあたため
  • 27. 宣伝 • 本だしました! • クラウド時代の法律から 実装までの最適解を紹介 • hdp://goo.gl/BRY3Dt [AA] 電子書籍版もあるよ!