SlideShare una empresa de Scribd logo
1 de 76
Descargar para leer sin conexión
実例Javaトラブルシューティング!

∼稼働中のシステムを立て直した半年間の軌跡
Shin Tanimoto

Acroquest Technology Co., LTD
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
自己紹介
2
• 谷本 心 (Shin Tanimoto)
- Acroquest Technology株式会社
- 開発&トラブルシュート教育
- JavaOneスピーカー
- JJUG / 関ジャバ / S2JSFコミッタ
- Twitter : @cero_t (日本語)
- Facebook : shin.tanimoto (英語)
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
世の中のシステムは

完璧だろうか?
3
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
最近、あなたが

リリースしたシステムは

完璧だろうか?
4
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
5
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
私の名は@cero_t!

完璧ならざるシステムに

戦いを挑む、

君の友人である!
6
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
ここで滑るのも

想定の範囲内である!
7
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
完璧ならざるシステム
8
皆さんもご存知の通り

世の中のシステムは

往々にして問題を抱えている
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
完璧ならざるシステム
処理が遅い
大量アクセスを捌けない
セキュリティの脆弱性がある
システムエラーが発生する
直そうにもソースの可読性が低い
9
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
完璧ならざるシステム
10
では、今日お話する

システムは?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
完璧ならざるシステム
とある有名企業のECサイト
TV番組でもよく取り上げられる企業。
そのブランドのファンも多い。
ECサイトの月間PVは1000万ぐらい。
秒間アクセス数は10∼1000ぐらい。
11
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
完璧ならざるシステム
12
←TV放送前に起動
システム構成
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
完璧ならざるシステム
13
しかし、
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
完璧ならざるシステム
とにかく処理が遅い!
検索に30秒ぐらい掛かる。
購入に1∼3分ぐらい掛かる。
大量アクセスを裁けない!
TV放送時にシステムダウン。
購入しようとした人も諦める。
セキュリティの脆弱性がある!
詳しく話せるわけないだろ!
14
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
完璧ならざるシステム
システムエラーが発生する!
購入時のシステムエラーが毎日数十回。
たまに金額を間違える(!)
直そうにもソースの可読性が低い!
ネストは10段ぐらい余裕。
ifとelseで同じ処理を書くとか余裕。
複雑度とか200ぐらい余裕。
15
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
完璧ならざるシステム
元の開発会社には、直せない!
そもそも、ちゃんと作れない。
問題を直すと、他の問題を発生させる。
他の開発会社にも、直せない!
A社「これはイチから作り直しですね」
B社「これは作り直すこともできませんね」
弊社「やりましょう」
16
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
完璧ならざるシステム
17
_人人人人人人人人_
> やりましょう <
 ̄Y^Y^Y^Y^Y^Y^Y ̄
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
アジェンダ
トラブルシュートの方針
Mission 1 : 検索処理を高速化せよ!
Mission 2 : 購入エラーをぶっ潰せ!
Mission 3 : 大量アクセスを捌ききれ!
システムの今後
18
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
最初の方針
(1) Seleniumの自動試験を作成しよう
–直す過程で壊すことがないように。
(2) Checkstyle / FindBugsを掛けつつリファクタ。
– 可読性を向上させながら、ソースを理解しよう。



その結果・・・
19
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
ダメでした。
20
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
何がダメだったのか?
(1) 300KLもあるクソコード。
– しかも大半がデッドコード。
(2) 試験項目の作成中にもエラーが頻発。
– まともに試験項目が作れない。
(3) その間にも、本番システムではエラーが多発。
– 事件は現場で起きてるんだ!
21
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
22
トリアージ
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
23
「一番の問題は何か?」
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
24
一番の問題は

「購入に失敗する」

ということ
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
購入に失敗する理由
(1) 購入時にシステムエラーが起きる。
(2) 検索が遅くて、購入まで りつけない。
(3) TV放送などでアクセスが集中すると、

システムがダウンしてしまう。
25
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
26
これらの改善こそ

「顧客が望むこと」

である
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
27
では、どうやって

重要な問題を見つけるか?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
「現場で起きている問題」を掴む
(1) エラーの発生頻度
• HTTPステータス
• アプリケーションエラー
(2) 性能の傾向
• レスポンス時間
• アクセス数とレスポンス時間の関係
• レスポンス悪化時のリソース状況
(3)その他の典型的な問題
28
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
どうやって現場の問題を掴むのか?
(1) ログの収集
• アクセスログ
• アプリケーションログ
• MySQLのスロークエリログ
(2) 低負荷な解析ツールの適用
• ENdoSnipe
29
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
30
ログ分析が必要だ。

そうだ、

Elasticsearchを使おう。
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
31
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
ログの収集と分析
(1) Elasticsearch(蓄積)
• リアルタイム検索・解析エンジン
• 平たく言えば、ログの検索システム
(2) Kibana(可視化)
• ログ検索&可視化ツール
• 平たく言えば、Elasticsearchのフロントエンド
(3) fluentd(収集)
• 各サーバで動くログ収集のエージェント
• 平たく言えば、ログをtailしてElasticsearchに送るヤツ
32
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
典型的な問題の検出
(1) ENdoSnipe
• OSSのトラブルシュートツール
• メモリリークや同一SQL発行回数の警告など

典型的な問題を検出する
• 平たく言えば、動的なFindBugs
33
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
Elasticsearch + Kibanaによるログ可視化
34
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
トラブルシュートの方針
35
さて、これで準備はできた。

いざ、トラシュー開始!
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
36
Mission 1



検索処理を高速化せよ!
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
問題点の確認
(1) 検索処理が、日常的に遅い。
• ページによるが、10∼30秒程度。
(2) 2∼3日に一度の頻度で、極めて遅くなる。
• 数時間で回復する or システムがダウンする。
37
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
全アクセス数(上)と、レスポンス時間(下)
38
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
全アクセス数(上)と、レスポンス時間(下)
39
10件/秒
100件/秒
30秒
20秒
10秒
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
時々発生する、 のレスポンス劣化
40
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
時々発生する、 のレスポンス劣化
41
3000秒
2000秒
1000秒
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
レスポンス劣化時のMySQLスロークエリログ
42
ほぼ間違いなくDB要因の問題
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
レスポンス劣化時のMySQLスロークエリログ
43
2000秒
1000秒
ほぼ間違いなくDB要因の問題
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
でも、なんで線形的に駆け上がるの?
44
ちなみに、スロークエリはすべて

同じストアドプロシージャだった
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
45
仮説
1. ストアドの中でテーブルロックしている?
2. DBコネクション数の上限まで至っている?
3. CPUがボトルネック?
4. ディスクI/Oのボトルネック?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
46
ENdoSnipeの結果を確認
1. 同一のSQLを1万回ぐらい実行している

という警告が出ていた

→数回のSQLで済むよう修正。

 →改善はしたが、まだ遅い。
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
47
スロークエリのストアドプロシージャを精査
1. Temporary Tableに数万件のinsert
2. 明らかに無駄な処理が多数

→とりあえず無駄な処理を削って様子見

 →問題は改善されず (^^;;
3. Temporary Tableをon memoryで作成するよう

create temporary table文を修正&メモリチューニング

→その結果・・・
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
結果・・・ディスクI/Oが激減!
48
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
結果・・・I/O wait激減!
49
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
同等の負荷が

掛かった時の

CPU使用率比較
その差は歴然!
50
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
MySQLスロークエリも大幅改善
51
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 1 : 検索処理を高速化せよ!
MySQLスロークエリも大幅改善
52
500秒
100秒
なんか重いバッチ。キニシナイ!
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
53
Mission 1



検索処理を高速化せよ!

→撃破!
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
54
Mission 2



購入エラーをぶっ潰せ!
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 2 : 購入エラーをぶっ潰せ!
問題点の確認
(1) 購入処理の途中でエラーが発生する
• システム内要因(NullPointerExceptionなど)
• 外部システム要因(応答なし、など)
(2) お客様からのクレームで気づくことも。
(3) カード決済など絡んでいるので、色々まずい。
55
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 2 : 購入エラーをぶっ潰せ!
問題解決へのアプローチ
(1) 購入処理の開始時にロギング。
(2) 処理の途中、終了時にもロギング。
(3) ログを解析して、

正常終了した処理と、

終了していない処理に分類。

→分類後に可視化
56
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 2 : 購入エラーをぶっ潰せ!
成功(青) 失敗(赤) ユーザ起因(他)
57
この日は10件のエラー。少なめです!
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 2 : 購入エラーをぶっ潰せ!
ここでもトリアージ
(1) エラー原因ごとに発生件数を整理して、

発生件数が多いエラーから順に対応する。
(2) バグパッチを当てるたびに、

購入エラー数が半減した。
(3) 現在は、外部システム要因を除き、

ほぼエラーが発生しない。
58
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 2 : 購入エラーをぶっ潰せ!
成功(青) 失敗(赤) ユーザ起因(他)
59
この日はエラーが0件でした!
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
60
Mission 2



購入エラーをぶっ潰せ!

→いったん、撃破!
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
61
Mission 3



大量アクセスを捌ききれ!
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 3 : 大量アクセスを捌ききれ!
問題点の確認
(1) TV放送などで大量アクセスがあると、

レスポンスが悪化し、システムがダウンする。
(2) TV放送前にはAPサーバの台数を

増やしているが、捌ききれない。
(3) 例のストアドプロシージャが、

やはりネックになっている。
62
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 3 : 大量アクセスを捌ききれ!
問題解決へのアプローチ
(1) 同時アクセス数制限の強化
• APサーバごとに、検索処理の同時リクエスト数が

一定数を超えたら、503エラーページを表示。
(2) 検索結果のキャッシング&同時検索数を制限
• APサーバごとに、重いストアドプロシージャの

同時実行数を制限。
• 単なる順番待ちにならないよう、

後続の処理は、検索結果のキャッシュを利用。

→一定の成果は出たが、根本解決はしない。
63
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 3 : 大量アクセスを捌ききれ!
64
困った。

スケールアウトしても

捌けないし。
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 3 : 大量アクセスを捌ききれ!
65
ん・・・?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 3 : 大量アクセスを捌ききれ!
66
←スケールアウト
システム構成
↑こいつが重い
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 3 : 大量アクセスを捌ききれ!
67
 DBがボトルネックなのに

なんでAPサーバを

スケールアウトするの?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 3 : 大量アクセスを捌ききれ!
68
・・・スケールアウト、

やめれば?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Mission 3 : 大量アクセスを捌ききれ!
問題解決へのアプローチ
(1) TV放送時にもスケールアウトしないよう決断。

→システムダウンはなくなった (^^;;

→レスポンス改善、

 さらに購入処理の改善にも繋がった。
69
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
70
Mission 3



大量アクセスを捌ききれ!

→撃破!
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
71
このシステムの今後
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
このシステムの今後
将来的なロードマップ
1. 全面的なデザインリニューアルに伴い、

処理をRESTful APIとして再実装
2. 購入処理を非同期化
• レスポンスの高速化
• 自動リトライにより、エラーをリカバリ
3. AWS化して、HA化 / スケーラビリティも向上
72
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
このシステムの今後
将来的なロードマップ
4. Elasticsearch / Kibanaの改善 or リプレース
• シングルノードで運用しているせいか、
たまに死ぬ(今日も死んでる)
• 処理負荷が高すぎて過去ログを

流し込めない
73
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
このシステムの今後
ちなみに・・・
関連する案件もいっぱい受注できて、

弊社的には嬉しい悲鳴!
Java8 + Spring Bootで開発しているんダ!
一緒に働く仲間を募集しているヨ!
74
Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved.
まとめ
1. 長期的なトラブルシュートにおいて

ログを可視化するのは、超効果的。
• 現実に起きてる問題が分かる。
• 改善効果が如実に分かる。
2. スケールアウトを間違えると怖い。
3. Java8 + Spring Bootやりたい人を

募集しているヨ!(大事なことなので2回)
75
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
76
Javaならざるセッションにお付き合いいただき、

ありがとうございました!!

Más contenido relacionado

La actualidad más candente

第2回 ioDrive+MySQL勉強会 @外道父 ioDriveの世界へようこそ
第2回 ioDrive+MySQL勉強会 @外道父 ioDriveの世界へようこそ第2回 ioDrive+MySQL勉強会 @外道父 ioDriveの世界へようこそ
第2回 ioDrive+MySQL勉強会 @外道父 ioDriveの世界へようこそ外道 父
 
Microprofileでエンタープライズ品質
Microprofileでエンタープライズ品質Microprofileでエンタープライズ品質
Microprofileでエンタープライズ品質Kenji Kazumura
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpJavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpYuji Kubota
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るGo Miyasaka
 
技術勉強会(Solr入門編)
技術勉強会(Solr入門編)技術勉強会(Solr入門編)
技術勉強会(Solr入門編)Atsushi Takayasu
 
位置情報を常に取得するのはつらいよ
位置情報を常に取得するのはつらいよ位置情報を常に取得するのはつらいよ
位置情報を常に取得するのはつらいよDrecom Co., Ltd.
 
コンピュータ将棋・囲碁における機械学習活用
コンピュータ将棋・囲碁における機械学習活用コンピュータ将棋・囲碁における機械学習活用
コンピュータ将棋・囲碁における機械学習活用Takashi Kato
 
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話Rakuten Group, Inc.
 
#CCSE2019 GREE VR Studio Lab 「VTuber向け特殊表情コントローラの可能性と機械学習的アプローチ」(速公開版)
#CCSE2019 GREE VR Studio Lab 「VTuber向け特殊表情コントローラの可能性と機械学習的アプローチ」(速公開版)#CCSE2019 GREE VR Studio Lab 「VTuber向け特殊表情コントローラの可能性と機械学習的アプローチ」(速公開版)
#CCSE2019 GREE VR Studio Lab 「VTuber向け特殊表情コントローラの可能性と機械学習的アプローチ」(速公開版)GREE VR Studio Lab
 
12thwocs 発表資料20150120
12thwocs 発表資料2015012012thwocs 発表資料20150120
12thwocs 発表資料20150120Kiyoshi Ogawa
 
レガシーコード改善のススメ
レガシーコード改善のススメレガシーコード改善のススメ
レガシーコード改善のススメAkira Hirasawa
 
さまざまなキャプチャーデータを合成して再分配するシステム「REALITY Studio Motion Engine」について
さまざまなキャプチャーデータを合成して再分配するシステム「REALITY Studio Motion Engine」についてさまざまなキャプチャーデータを合成して再分配するシステム「REALITY Studio Motion Engine」について
さまざまなキャプチャーデータを合成して再分配するシステム「REALITY Studio Motion Engine」についてgree_tech
 
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介khisano
 
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜Kentaro Matsumae
 
iOS 10 new Camera
iOS 10 new CameraiOS 10 new Camera
iOS 10 new CameraGaprot
 
20180123 rancher meetupyokohama_minehiko_nohara
20180123 rancher meetupyokohama_minehiko_nohara20180123 rancher meetupyokohama_minehiko_nohara
20180123 rancher meetupyokohama_minehiko_noharaMinehiko Nohara
 
SPICE及びSPICEモデルとは(SPICE活用のメリット)
SPICE及びSPICEモデルとは(SPICE活用のメリット)SPICE及びSPICEモデルとは(SPICE活用のメリット)
SPICE及びSPICEモデルとは(SPICE活用のメリット)Tsuyoshi Horigome
 
フライングゲットガチャ セミナー資料
フライングゲットガチャ セミナー資料フライングゲットガチャ セミナー資料
フライングゲットガチャ セミナー資料Drecom Co., Ltd.
 

La actualidad más candente (20)

第2回 ioDrive+MySQL勉強会 @外道父 ioDriveの世界へようこそ
第2回 ioDrive+MySQL勉強会 @外道父 ioDriveの世界へようこそ第2回 ioDrive+MySQL勉強会 @外道父 ioDriveの世界へようこそ
第2回 ioDrive+MySQL勉強会 @外道父 ioDriveの世界へようこそ
 
Microprofileでエンタープライズ品質
Microprofileでエンタープライズ品質Microprofileでエンタープライズ品質
Microprofileでエンタープライズ品質
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpJavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
 
microprofile
microprofilemicroprofile
microprofile
 
技術勉強会(Solr入門編)
技術勉強会(Solr入門編)技術勉強会(Solr入門編)
技術勉強会(Solr入門編)
 
位置情報を常に取得するのはつらいよ
位置情報を常に取得するのはつらいよ位置情報を常に取得するのはつらいよ
位置情報を常に取得するのはつらいよ
 
コンピュータ将棋・囲碁における機械学習活用
コンピュータ将棋・囲碁における機械学習活用コンピュータ将棋・囲碁における機械学習活用
コンピュータ将棋・囲碁における機械学習活用
 
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
 
#CCSE2019 GREE VR Studio Lab 「VTuber向け特殊表情コントローラの可能性と機械学習的アプローチ」(速公開版)
#CCSE2019 GREE VR Studio Lab 「VTuber向け特殊表情コントローラの可能性と機械学習的アプローチ」(速公開版)#CCSE2019 GREE VR Studio Lab 「VTuber向け特殊表情コントローラの可能性と機械学習的アプローチ」(速公開版)
#CCSE2019 GREE VR Studio Lab 「VTuber向け特殊表情コントローラの可能性と機械学習的アプローチ」(速公開版)
 
12thwocs 発表資料20150120
12thwocs 発表資料2015012012thwocs 発表資料20150120
12thwocs 発表資料20150120
 
レガシーコード改善のススメ
レガシーコード改善のススメレガシーコード改善のススメ
レガシーコード改善のススメ
 
さまざまなキャプチャーデータを合成して再分配するシステム「REALITY Studio Motion Engine」について
さまざまなキャプチャーデータを合成して再分配するシステム「REALITY Studio Motion Engine」についてさまざまなキャプチャーデータを合成して再分配するシステム「REALITY Studio Motion Engine」について
さまざまなキャプチャーデータを合成して再分配するシステム「REALITY Studio Motion Engine」について
 
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介
 
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
 
UE4におけるエフェクトの基本戦略事例 後半
UE4におけるエフェクトの基本戦略事例  後半UE4におけるエフェクトの基本戦略事例  後半
UE4におけるエフェクトの基本戦略事例 後半
 
iOS 10 new Camera
iOS 10 new CameraiOS 10 new Camera
iOS 10 new Camera
 
20180123 rancher meetupyokohama_minehiko_nohara
20180123 rancher meetupyokohama_minehiko_nohara20180123 rancher meetupyokohama_minehiko_nohara
20180123 rancher meetupyokohama_minehiko_nohara
 
SPICE及びSPICEモデルとは(SPICE活用のメリット)
SPICE及びSPICEモデルとは(SPICE活用のメリット)SPICE及びSPICEモデルとは(SPICE活用のメリット)
SPICE及びSPICEモデルとは(SPICE活用のメリット)
 
フライングゲットガチャ セミナー資料
フライングゲットガチャ セミナー資料フライングゲットガチャ セミナー資料
フライングゲットガチャ セミナー資料
 

Destacado

Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 FallJavaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 FallYusuke Suzuki
 
20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_public20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_publicYoshiharu Hashimoto
 
JJUG CCC 2014 fall Javaが見るニュータイプの夢
JJUG CCC 2014 fall Javaが見るニュータイプの夢JJUG CCC 2014 fall Javaが見るニュータイプの夢
JJUG CCC 2014 fall Javaが見るニュータイプの夢なおき きしだ
 
RxJava on Android
RxJava on AndroidRxJava on Android
RxJava on Androidyo_waka
 
JJUG CCC 2015 Fall keynote
JJUG CCC 2015 Fall keynoteJJUG CCC 2015 Fall keynote
JJUG CCC 2015 Fall keynote心 谷本
 
[B15] HiRDBのSQL実行プランはどのように決定しているのか?by Masaaki Narita
[B15] HiRDBのSQL実行プランはどのように決定しているのか?by Masaaki Narita[B15] HiRDBのSQL実行プランはどのように決定しているのか?by Masaaki Narita
[B15] HiRDBのSQL実行プランはどのように決定しているのか?by Masaaki NaritaInsight Technology, Inc.
 
日本一細かいJavaOne2011報告
日本一細かいJavaOne2011報告日本一細かいJavaOne2011報告
日本一細かいJavaOne2011報告心 谷本
 
qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所Takeshi HASEGAWA
 
qpstudy 2014.04 インフラエンジニアとは、なんだ
qpstudy 2014.04 インフラエンジニアとは、なんだqpstudy 2014.04 インフラエンジニアとは、なんだ
qpstudy 2014.04 インフラエンジニアとは、なんだTakashi Abe
 
勝敗は常に見積もりで決まる〜Redmineを使った時間記録の話
勝敗は常に見積もりで決まる〜Redmineを使った時間記録の話勝敗は常に見積もりで決まる〜Redmineを使った時間記録の話
勝敗は常に見積もりで決まる〜Redmineを使った時間記録の話心 谷本
 
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所Masahiro NAKAYAMA
 
ソーシャルメディア大百科川井パート(ファンドレイジングセミナー2012より)
ソーシャルメディア大百科川井パート(ファンドレイジングセミナー2012より)ソーシャルメディア大百科川井パート(ファンドレイジングセミナー2012より)
ソーシャルメディア大百科川井パート(ファンドレイジングセミナー2012より)himanainu inc.
 
20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi
20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi
20140605_じどうかの窓口_ソフトウェアテスト自動化のRoiSHIFT Inc.
 
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料Y Watanabe
 
なれる!フリーランス
なれる!フリーランスなれる!フリーランス
なれる!フリーランスleverages_event
 

Destacado (20)

Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 FallJavaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
 
20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_public20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_public
 
JJUG CCC 2014 fall Javaが見るニュータイプの夢
JJUG CCC 2014 fall Javaが見るニュータイプの夢JJUG CCC 2014 fall Javaが見るニュータイプの夢
JJUG CCC 2014 fall Javaが見るニュータイプの夢
 
RxJava on Android
RxJava on AndroidRxJava on Android
RxJava on Android
 
JJUG CCC 2015 Fall keynote
JJUG CCC 2015 Fall keynoteJJUG CCC 2015 Fall keynote
JJUG CCC 2015 Fall keynote
 
[B15] HiRDBのSQL実行プランはどのように決定しているのか?by Masaaki Narita
[B15] HiRDBのSQL実行プランはどのように決定しているのか?by Masaaki Narita[B15] HiRDBのSQL実行プランはどのように決定しているのか?by Masaaki Narita
[B15] HiRDBのSQL実行プランはどのように決定しているのか?by Masaaki Narita
 
日本一細かいJavaOne2011報告
日本一細かいJavaOne2011報告日本一細かいJavaOne2011報告
日本一細かいJavaOne2011報告
 
qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所
 
qpstudy 2014.04 インフラエンジニアとは、なんだ
qpstudy 2014.04 インフラエンジニアとは、なんだqpstudy 2014.04 インフラエンジニアとは、なんだ
qpstudy 2014.04 インフラエンジニアとは、なんだ
 
勝敗は常に見積もりで決まる〜Redmineを使った時間記録の話
勝敗は常に見積もりで決まる〜Redmineを使った時間記録の話勝敗は常に見積もりで決まる〜Redmineを使った時間記録の話
勝敗は常に見積もりで決まる〜Redmineを使った時間記録の話
 
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
 
TPPの罠
TPPの罠TPPの罠
TPPの罠
 
ソーシャルメディア大百科川井パート(ファンドレイジングセミナー2012より)
ソーシャルメディア大百科川井パート(ファンドレイジングセミナー2012より)ソーシャルメディア大百科川井パート(ファンドレイジングセミナー2012より)
ソーシャルメディア大百科川井パート(ファンドレイジングセミナー2012より)
 
Ilerpg Study 004
Ilerpg Study 004Ilerpg Study 004
Ilerpg Study 004
 
Ilerpg Study 003
Ilerpg Study 003Ilerpg Study 003
Ilerpg Study 003
 
Ilerpg Study 002
Ilerpg Study 002Ilerpg Study 002
Ilerpg Study 002
 
Ilerpg Study 006
Ilerpg Study 006Ilerpg Study 006
Ilerpg Study 006
 
20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi
20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi
20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi
 
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
 
なれる!フリーランス
なれる!フリーランスなれる!フリーランス
なれる!フリーランス
 

Similar a 実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡

おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップKoichiro Sumi
 
NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野livedoor
 
リアクティブシステムとAkka
リアクティブシステムとAkkaリアクティブシステムとAkka
リアクティブシステムとAkkaTIS Inc.
 
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~Takanori Suzuki
 
スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果Koichiro Sumi
 
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張典子 松本
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後Shingo Sasaki
 
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet ServicesNaoto Gohko
 
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]David Buck
 
[JISA][変革リーダー養成部会]組織の中で自分を活かす生き方
[JISA][変革リーダー養成部会]組織の中で自分を活かす生き方[JISA][変革リーダー養成部会]組織の中で自分を活かす生き方
[JISA][変革リーダー養成部会]組織の中で自分を活かす生き方Shigeki Morizane
 
Elasticsearch workshop 23_sql
Elasticsearch workshop 23_sqlElasticsearch workshop 23_sql
Elasticsearch workshop 23_sqlshinhiguchi
 
スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由Serverworks Co.,Ltd.
 
第45回elasticsearch勉強会 BERTモデルを利用した文書分類
第45回elasticsearch勉強会 BERTモデルを利用した文書分類第45回elasticsearch勉強会 BERTモデルを利用した文書分類
第45回elasticsearch勉強会 BERTモデルを利用した文書分類shinhiguchi
 
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumiYahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumiYahoo!デベロッパーネットワーク
 
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋Ayumu Aizawa
 
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システムOSSで作るOpenStack監視システム
OSSで作るOpenStack監視システムsatsuki fukazu
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤Godai Nakamura
 
20190319 xtech recochoku_15m_pub
20190319 xtech recochoku_15m_pub20190319 xtech recochoku_15m_pub
20190319 xtech recochoku_15m_pubDai Fujikawa
 

Similar a 実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡 (20)

おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野
 
リアクティブシステムとAkka
リアクティブシステムとAkkaリアクティブシステムとAkka
リアクティブシステムとAkka
 
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
 
スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果
 
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後
 
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services
 
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
 
[JISA][変革リーダー養成部会]組織の中で自分を活かす生き方
[JISA][変革リーダー養成部会]組織の中で自分を活かす生き方[JISA][変革リーダー養成部会]組織の中で自分を活かす生き方
[JISA][変革リーダー養成部会]組織の中で自分を活かす生き方
 
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_cccSpring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
 
Elasticsearch workshop 23_sql
Elasticsearch workshop 23_sqlElasticsearch workshop 23_sql
Elasticsearch workshop 23_sql
 
スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由
 
第45回elasticsearch勉強会 BERTモデルを利用した文書分類
第45回elasticsearch勉強会 BERTモデルを利用した文書分類第45回elasticsearch勉強会 BERTモデルを利用した文書分類
第45回elasticsearch勉強会 BERTモデルを利用した文書分類
 
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumiYahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
 
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
 
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システムOSSで作るOpenStack監視システム
OSSで作るOpenStack監視システム
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
 
20190319 xtech recochoku_15m_pub
20190319 xtech recochoku_15m_pub20190319 xtech recochoku_15m_pub
20190319 xtech recochoku_15m_pub
 

Más de 心 谷本

Let's reconsider about collecting logs. Plus, visiting elastic@Moutain View!
Let's reconsider about collecting logs. Plus, visiting elastic@Moutain View!Let's reconsider about collecting logs. Plus, visiting elastic@Moutain View!
Let's reconsider about collecting logs. Plus, visiting elastic@Moutain View!心 谷本
 
Spring Boot + Netflix Eureka
Spring Boot + Netflix EurekaSpring Boot + Netflix Eureka
Spring Boot + Netflix Eureka心 谷本
 
プレゼンの技術 2 実践編
プレゼンの技術 2 実践編プレゼンの技術 2 実践編
プレゼンの技術 2 実践編心 谷本
 
プレゼンの技術 1 考え方
プレゼンの技術 1 考え方プレゼンの技術 1 考え方
プレゼンの技術 1 考え方心 谷本
 
プレゼンの技術
プレゼンの技術プレゼンの技術
プレゼンの技術心 谷本
 
from old java to java8 - KanJava Edition
from old java to java8 - KanJava Editionfrom old java to java8 - KanJava Edition
from old java to java8 - KanJava Edition心 谷本
 
from old Java to modern Java
from old Java to modern Javafrom old Java to modern Java
from old Java to modern Java心 谷本
 
日本で二番目に「細かい」JavaOne2011報告
日本で二番目に「細かい」JavaOne2011報告日本で二番目に「細かい」JavaOne2011報告
日本で二番目に「細かい」JavaOne2011報告心 谷本
 
[関ジャバ]Java News 2011 Mar
[関ジャバ]Java News 2011 Mar[関ジャバ]Java News 2011 Mar
[関ジャバ]Java News 2011 Mar心 谷本
 

Más de 心 谷本 (9)

Let's reconsider about collecting logs. Plus, visiting elastic@Moutain View!
Let's reconsider about collecting logs. Plus, visiting elastic@Moutain View!Let's reconsider about collecting logs. Plus, visiting elastic@Moutain View!
Let's reconsider about collecting logs. Plus, visiting elastic@Moutain View!
 
Spring Boot + Netflix Eureka
Spring Boot + Netflix EurekaSpring Boot + Netflix Eureka
Spring Boot + Netflix Eureka
 
プレゼンの技術 2 実践編
プレゼンの技術 2 実践編プレゼンの技術 2 実践編
プレゼンの技術 2 実践編
 
プレゼンの技術 1 考え方
プレゼンの技術 1 考え方プレゼンの技術 1 考え方
プレゼンの技術 1 考え方
 
プレゼンの技術
プレゼンの技術プレゼンの技術
プレゼンの技術
 
from old java to java8 - KanJava Edition
from old java to java8 - KanJava Editionfrom old java to java8 - KanJava Edition
from old java to java8 - KanJava Edition
 
from old Java to modern Java
from old Java to modern Javafrom old Java to modern Java
from old Java to modern Java
 
日本で二番目に「細かい」JavaOne2011報告
日本で二番目に「細かい」JavaOne2011報告日本で二番目に「細かい」JavaOne2011報告
日本で二番目に「細かい」JavaOne2011報告
 
[関ジャバ]Java News 2011 Mar
[関ジャバ]Java News 2011 Mar[関ジャバ]Java News 2011 Mar
[関ジャバ]Java News 2011 Mar
 

Último

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
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
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
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介: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
 
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
 
論文紹介: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
 

Último (10)

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」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
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
 
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...
 
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
 
論文紹介: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
 

実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡

  • 2. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 自己紹介 2 • 谷本 心 (Shin Tanimoto) - Acroquest Technology株式会社 - 開発&トラブルシュート教育 - JavaOneスピーカー - JJUG / 関ジャバ / S2JSFコミッタ - Twitter : @cero_t (日本語) - Facebook : shin.tanimoto (英語)
  • 3. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 世の中のシステムは
 完璧だろうか? 3
  • 4. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 最近、あなたが
 リリースしたシステムは
 完璧だろうか? 4
  • 5. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 5
  • 6. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 私の名は@cero_t!
 完璧ならざるシステムに
 戦いを挑む、
 君の友人である! 6
  • 7. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. ここで滑るのも
 想定の範囲内である! 7
  • 8. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 完璧ならざるシステム 8 皆さんもご存知の通り
 世の中のシステムは
 往々にして問題を抱えている
  • 9. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 完璧ならざるシステム 処理が遅い 大量アクセスを捌けない セキュリティの脆弱性がある システムエラーが発生する 直そうにもソースの可読性が低い 9
  • 10. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 完璧ならざるシステム 10 では、今日お話する
 システムは?
  • 11. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 完璧ならざるシステム とある有名企業のECサイト TV番組でもよく取り上げられる企業。 そのブランドのファンも多い。 ECサイトの月間PVは1000万ぐらい。 秒間アクセス数は10∼1000ぐらい。 11
  • 12. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 完璧ならざるシステム 12 ←TV放送前に起動 システム構成
  • 13. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 完璧ならざるシステム 13 しかし、
  • 14. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 完璧ならざるシステム とにかく処理が遅い! 検索に30秒ぐらい掛かる。 購入に1∼3分ぐらい掛かる。 大量アクセスを裁けない! TV放送時にシステムダウン。 購入しようとした人も諦める。 セキュリティの脆弱性がある! 詳しく話せるわけないだろ! 14
  • 15. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 完璧ならざるシステム システムエラーが発生する! 購入時のシステムエラーが毎日数十回。 たまに金額を間違える(!) 直そうにもソースの可読性が低い! ネストは10段ぐらい余裕。 ifとelseで同じ処理を書くとか余裕。 複雑度とか200ぐらい余裕。 15
  • 16. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 完璧ならざるシステム 元の開発会社には、直せない! そもそも、ちゃんと作れない。 問題を直すと、他の問題を発生させる。 他の開発会社にも、直せない! A社「これはイチから作り直しですね」 B社「これは作り直すこともできませんね」 弊社「やりましょう」 16
  • 17. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 完璧ならざるシステム 17 _人人人人人人人人_ > やりましょう <  ̄Y^Y^Y^Y^Y^Y^Y ̄
  • 18. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. アジェンダ トラブルシュートの方針 Mission 1 : 検索処理を高速化せよ! Mission 2 : 購入エラーをぶっ潰せ! Mission 3 : 大量アクセスを捌ききれ! システムの今後 18
  • 19. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 最初の方針 (1) Seleniumの自動試験を作成しよう –直す過程で壊すことがないように。 (2) Checkstyle / FindBugsを掛けつつリファクタ。 – 可読性を向上させながら、ソースを理解しよう。
 
 その結果・・・ 19
  • 20. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. ダメでした。 20
  • 21. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 何がダメだったのか? (1) 300KLもあるクソコード。 – しかも大半がデッドコード。 (2) 試験項目の作成中にもエラーが頻発。 – まともに試験項目が作れない。 (3) その間にも、本番システムではエラーが多発。 – 事件は現場で起きてるんだ! 21
  • 22. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 22 トリアージ
  • 23. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 23 「一番の問題は何か?」
  • 24. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 24 一番の問題は
 「購入に失敗する」
 ということ
  • 25. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 購入に失敗する理由 (1) 購入時にシステムエラーが起きる。 (2) 検索が遅くて、購入まで りつけない。 (3) TV放送などでアクセスが集中すると、
 システムがダウンしてしまう。 25
  • 26. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 26 これらの改善こそ
 「顧客が望むこと」
 である
  • 27. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 27 では、どうやって
 重要な問題を見つけるか?
  • 28. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 「現場で起きている問題」を掴む (1) エラーの発生頻度 • HTTPステータス • アプリケーションエラー (2) 性能の傾向 • レスポンス時間 • アクセス数とレスポンス時間の関係 • レスポンス悪化時のリソース状況 (3)その他の典型的な問題 28
  • 29. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 どうやって現場の問題を掴むのか? (1) ログの収集 • アクセスログ • アプリケーションログ • MySQLのスロークエリログ (2) 低負荷な解析ツールの適用 • ENdoSnipe 29
  • 30. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 30 ログ分析が必要だ。
 そうだ、
 Elasticsearchを使おう。
  • 31. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 31
  • 32. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 ログの収集と分析 (1) Elasticsearch(蓄積) • リアルタイム検索・解析エンジン • 平たく言えば、ログの検索システム (2) Kibana(可視化) • ログ検索&可視化ツール • 平たく言えば、Elasticsearchのフロントエンド (3) fluentd(収集) • 各サーバで動くログ収集のエージェント • 平たく言えば、ログをtailしてElasticsearchに送るヤツ 32
  • 33. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 典型的な問題の検出 (1) ENdoSnipe • OSSのトラブルシュートツール • メモリリークや同一SQL発行回数の警告など
 典型的な問題を検出する • 平たく言えば、動的なFindBugs 33
  • 34. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 Elasticsearch + Kibanaによるログ可視化 34
  • 35. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. トラブルシュートの方針 35 さて、これで準備はできた。
 いざ、トラシュー開始!
  • 36. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 36 Mission 1
 
 検索処理を高速化せよ!
  • 37. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! 問題点の確認 (1) 検索処理が、日常的に遅い。 • ページによるが、10∼30秒程度。 (2) 2∼3日に一度の頻度で、極めて遅くなる。 • 数時間で回復する or システムがダウンする。 37
  • 38. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! 全アクセス数(上)と、レスポンス時間(下) 38
  • 39. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! 全アクセス数(上)と、レスポンス時間(下) 39 10件/秒 100件/秒 30秒 20秒 10秒
  • 40. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! 時々発生する、 のレスポンス劣化 40
  • 41. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! 時々発生する、 のレスポンス劣化 41 3000秒 2000秒 1000秒
  • 42. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! レスポンス劣化時のMySQLスロークエリログ 42 ほぼ間違いなくDB要因の問題
  • 43. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! レスポンス劣化時のMySQLスロークエリログ 43 2000秒 1000秒 ほぼ間違いなくDB要因の問題
  • 44. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! でも、なんで線形的に駆け上がるの? 44 ちなみに、スロークエリはすべて
 同じストアドプロシージャだった
  • 45. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! 45 仮説 1. ストアドの中でテーブルロックしている? 2. DBコネクション数の上限まで至っている? 3. CPUがボトルネック? 4. ディスクI/Oのボトルネック?
  • 46. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! 46 ENdoSnipeの結果を確認 1. 同一のSQLを1万回ぐらい実行している
 という警告が出ていた
 →数回のSQLで済むよう修正。
  →改善はしたが、まだ遅い。
  • 47. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! 47 スロークエリのストアドプロシージャを精査 1. Temporary Tableに数万件のinsert 2. 明らかに無駄な処理が多数
 →とりあえず無駄な処理を削って様子見
  →問題は改善されず (^^;; 3. Temporary Tableをon memoryで作成するよう
 create temporary table文を修正&メモリチューニング
 →その結果・・・
  • 48. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! 結果・・・ディスクI/Oが激減! 48
  • 49. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! 結果・・・I/O wait激減! 49
  • 50. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! 同等の負荷が
 掛かった時の
 CPU使用率比較 その差は歴然! 50
  • 51. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! MySQLスロークエリも大幅改善 51
  • 52. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 1 : 検索処理を高速化せよ! MySQLスロークエリも大幅改善 52 500秒 100秒 なんか重いバッチ。キニシナイ!
  • 53. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 53 Mission 1
 
 検索処理を高速化せよ!
 →撃破!
  • 54. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 54 Mission 2
 
 購入エラーをぶっ潰せ!
  • 55. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 2 : 購入エラーをぶっ潰せ! 問題点の確認 (1) 購入処理の途中でエラーが発生する • システム内要因(NullPointerExceptionなど) • 外部システム要因(応答なし、など) (2) お客様からのクレームで気づくことも。 (3) カード決済など絡んでいるので、色々まずい。 55
  • 56. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 2 : 購入エラーをぶっ潰せ! 問題解決へのアプローチ (1) 購入処理の開始時にロギング。 (2) 処理の途中、終了時にもロギング。 (3) ログを解析して、
 正常終了した処理と、
 終了していない処理に分類。
 →分類後に可視化 56
  • 57. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 2 : 購入エラーをぶっ潰せ! 成功(青) 失敗(赤) ユーザ起因(他) 57 この日は10件のエラー。少なめです!
  • 58. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 2 : 購入エラーをぶっ潰せ! ここでもトリアージ (1) エラー原因ごとに発生件数を整理して、
 発生件数が多いエラーから順に対応する。 (2) バグパッチを当てるたびに、
 購入エラー数が半減した。 (3) 現在は、外部システム要因を除き、
 ほぼエラーが発生しない。 58
  • 59. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 2 : 購入エラーをぶっ潰せ! 成功(青) 失敗(赤) ユーザ起因(他) 59 この日はエラーが0件でした!
  • 60. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 60 Mission 2
 
 購入エラーをぶっ潰せ!
 →いったん、撃破!
  • 61. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 61 Mission 3
 
 大量アクセスを捌ききれ!
  • 62. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 3 : 大量アクセスを捌ききれ! 問題点の確認 (1) TV放送などで大量アクセスがあると、
 レスポンスが悪化し、システムがダウンする。 (2) TV放送前にはAPサーバの台数を
 増やしているが、捌ききれない。 (3) 例のストアドプロシージャが、
 やはりネックになっている。 62
  • 63. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 3 : 大量アクセスを捌ききれ! 問題解決へのアプローチ (1) 同時アクセス数制限の強化 • APサーバごとに、検索処理の同時リクエスト数が
 一定数を超えたら、503エラーページを表示。 (2) 検索結果のキャッシング&同時検索数を制限 • APサーバごとに、重いストアドプロシージャの
 同時実行数を制限。 • 単なる順番待ちにならないよう、
 後続の処理は、検索結果のキャッシュを利用。
 →一定の成果は出たが、根本解決はしない。 63
  • 64. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 3 : 大量アクセスを捌ききれ! 64 困った。
 スケールアウトしても
 捌けないし。
  • 65. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 3 : 大量アクセスを捌ききれ! 65 ん・・・?
  • 66. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 3 : 大量アクセスを捌ききれ! 66 ←スケールアウト システム構成 ↑こいつが重い
  • 67. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 3 : 大量アクセスを捌ききれ! 67  DBがボトルネックなのに
 なんでAPサーバを
 スケールアウトするの?
  • 68. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 3 : 大量アクセスを捌ききれ! 68 ・・・スケールアウト、
 やめれば?
  • 69. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. Mission 3 : 大量アクセスを捌ききれ! 問題解決へのアプローチ (1) TV放送時にもスケールアウトしないよう決断。
 →システムダウンはなくなった (^^;;
 →レスポンス改善、
  さらに購入処理の改善にも繋がった。 69
  • 70. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 70 Mission 3
 
 大量アクセスを捌ききれ!
 →撃破!
  • 71. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. 71 このシステムの今後
  • 72. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. このシステムの今後 将来的なロードマップ 1. 全面的なデザインリニューアルに伴い、
 処理をRESTful APIとして再実装 2. 購入処理を非同期化 • レスポンスの高速化 • 自動リトライにより、エラーをリカバリ 3. AWS化して、HA化 / スケーラビリティも向上 72
  • 73. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. このシステムの今後 将来的なロードマップ 4. Elasticsearch / Kibanaの改善 or リプレース • シングルノードで運用しているせいか、 たまに死ぬ(今日も死んでる) • 処理負荷が高すぎて過去ログを
 流し込めない 73
  • 74. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. このシステムの今後 ちなみに・・・ 関連する案件もいっぱい受注できて、
 弊社的には嬉しい悲鳴! Java8 + Spring Bootで開発しているんダ! 一緒に働く仲間を募集しているヨ! 74
  • 75. Copyright © Acroquest Technology Co., Ltd. All rights reserved.Copyright © Acroquest Technology Co., Ltd. All rights reserved. まとめ 1. 長期的なトラブルシュートにおいて
 ログを可視化するのは、超効果的。 • 現実に起きてる問題が分かる。 • 改善効果が如実に分かる。 2. スケールアウトを間違えると怖い。 3. Java8 + Spring Bootやりたい人を
 募集しているヨ!(大事なことなので2回) 75
  • 76. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 76 Javaならざるセッションにお付き合いいただき、
 ありがとうございました!!