狠狠撸

狠狠撸Share a Scribd company logo
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
パフォーマンス ボトルネック
国内あるある事例
タクトシステムズ株式会社
ソリューション事業部
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
弊社について
?タクトシステムズ株式会社
– 1986年設立 社員数140名
– 独立系SIerとして顧客要望に合わせたシステムを構築
– dynaTraceの国内第1号販売代理店
– ユーザとして実際にdynaTraceを利用することで
発見した事例をより多くの皆様に伝えたい→本発表に至る
– JJUGの鈴木会長にご提案し、お使い頂いております
1
+
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
ボトルネックとは
?直訳すると 「瓶(びん)の首」
?最も流れが滞る箇所
?システムのパフォーマンスについてのボトルネックとは、
ある処理の実行時間のうち、1番時間がかかっている箇所
特徴
?ボトルネック以外の箇所を改善しても効果が薄い
?ボトルネックは移動する
– ボトルネックを改善することで、その箇所はボトルネックではなくなり、
新たな箇所がボトルネックとなる
2
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
ボトルネックの種類
?プログラム視点のボトルネック
– 大きな一つの処理がある
– 経験とカンである程度予測できる
→システムの複雑化により特定が困難に
– SQL が原因のケースがよくある
?トランザクション視点のボトルネック
– 大量の処理がある
– 従来の観点?手法では特定が困難
– ループ誤り、非効率なロジック
3
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
事例紹介
?dynaTraceにより発見した以下事例をご紹介
1. DBコネクション(プーリング未設定)
2. Synchronizedによる排他処理
3. 大量のSQL実行
4. 文字列結合
5. Proxy設定のトラブル<番外編>
4
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
事例1. DBコネクション(プーリング未設定)
5
DBサーバ
コネクション
プール
org.apache.commo
ns.dbcp.BasicDa
taSource
getConnection()
org.springframewor
k.jdbc.datasource.
DriverManager
DataSource
getConnection()
(デフォルト)
プーリングなし プーリングあり
毎回新しくコネクションを張り、
ボトルネックとなっていた
○×
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
事例1. DBコネクション(プーリング未設定)
6
種類 プログラム視点のボトルネック
要因 I/O
内容 SpringフレームワークのDBコネクション設定をデ
フォルトのまま使用していたため、コネクション
プールを使用しない動作となっていた。
対応 コネクションプールを使用する設定へ変更した。
原因 フレームワークの設定を全て把握することは難し
い。とりあえずデフォルトで動かしていた。
発見難易度:中 DB接続周りのログは、確認しやすいが、
思い込みによって、コネクションプーリングを利用
していないことに気付かない場合がある。
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
事例2. Synchronizedによる排他処理
7
スレッド1
???
マスタデータ
取得処理
Synchronized
Synchronized
スレッド2 スレッド3
Synchronized
待ち
待ち
×
×
×
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
事例2. Synchronizedによる排他処理
8
種類 プログラム視点のボトルネック
要因 同期待ち
内容 ログイン時の処理でSynchronizedによる排他をか
けたところ、同時アクセスで同期待ちが大量発生。
対応 処理タイミングをログイン時からアプリケーション
起動時に変更した。
原因 スレッドセーフを実現するために、安易に
Synchronizedを使用していた。
排他をかける範囲や必要性を吟味すべき。
発見難易度:高 JMXよりスレッドの状態、スレッドのブロック時間、
さらにはスタックトレースを何度も繰り返し取得し
分析する必要がある。
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
事例2. Synchronizedによる排他処理
9
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
事例3. 大量のSQL実行
10
DBサーバ
アプリケーション
サーバ
Insert文
1回の実行時間は短いが…
繰り返すと
ボトルネックに…
×
○
executeBatch
で格段に早く
DBサーバ
アプリケーション
サーバ
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
事例3. 大量のSQL実行
11
種類 トランザクション視点のボトルネック
要因 I/O
内容 大量のデータ登録処理を、データ1件ずつInsert
文を発行していた。結果、30秒以上の処理時間と
なった。
対応 JDBCのバッチ更新機能に変更した。結果、0.3秒
に短縮された。
原因 大量のデータ登録を想定せずに実装した。
テストは少量データで実施し、パフォーマンスの
問題として顕在化しなかった。
発見難易度:中 Insert文1回の実行時間が短く、リソース(CPU, メ
モリ)の消費も低いため、サーバ視点で見ても問
題が見つからない。
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
事例4. 文字列結合
12
String str = "";
for (int i = 0; i < 1000000; i++) {
str += i;
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000000; i++) {
sb.append(i);
}
String str = sb.toString();
String str = "";
for (int i = 0; i < 1000000; i++) {
str = new StringBuilder().append(str).append(i).toString();
}
(JDK1.5以上の場合)
実質的には…
インスタンス
の生成を
1000000回
繰り返す…
×
○ 上に比べて、
数百倍速い
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
事例4. 文字列結合
13
種類 トランザクション視点のボトルネック
要因 CPU
内容 大量の文字列結合に?+?を使用したところ、スト
リングバッファのnewとappendが発生し、配列コ
ピーでCPU負荷が高くなった。
対応 StringBuilder appendに書き換えることで解消。
原因 記述の容易さや可読性の良さにより、?+?を使用
しがち。 StringBuilder appendとの動作や性能の
違いを意識しているプログラマーばかりではない。
発見難易度:中 目視によるコードレビューでは限界がある。
有識者であれば発見は早いが、そうでなければ
ログを出力して分析する必要あり。
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
クライアント
ブラウザ
事例5. Proxy設定のトラブル<番外編>
14
アプリケーション
サーバ
Proxy
サーバ
リダイ
レクト
エラー
×
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
事例5. Proxy設定のトラブル<番外編>
15
要因 ネットワーク
内容 HTMLからリダイレクトを繰り返して実行する処理
で、ネットワーク上のProxyサーバが弾いていた。
対応 細かく分けていた処理をまとめ、リダイレクトの回
数を減らした。
原因 Proxyサーバの挙動について認識していなかった。
発見難易度:高 インフラに精通していないと特定は困難。
アプリケーション側のログを分析しても原因不明。
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
まとめ
?ボトルネックの種類
– プログラム視点のボトルネック
– トランザクション視点のボトルネック
?ボトルネックの特定は、困難になる一方
– 複雑化するシステム構成
– 従来の観点?手法では、限界
?dynaTraceにより短時間でボトルネックを特定できた
16
クラウド
Webサービス モバイル
仮想化
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
最後に???
17
内容
現在タクトシステムズでは、本日ご紹介した『dynaTrace』を活用し
【パフォーマンスボトルネック調査サービス】を実施しております。
本セミナにご参加頂きました皆様には特別価格(通常の50%)5万円にて
ご提供いたします(6月末までの期間限定)。
※詳細は配布資料の最終ページをご確認ください。
特徴
早い! dynaTrace導入から2時間以内にボトルネックを特定いたします。
安い! 成功報酬型でボトルネックを特定できない場合は無料です。
簡単! 対象システムの設定変更やログ出力の追加などは不要です。
皆様もdynaTraceの効果を体験しませんか?
パフォーマンスボトルネック調査サービスを提供中
Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow
18
お問合せ先 : タクトシステムズ株式会社
〒111-0051 東京都台東区蔵前3-1-10 蔵前セントラルビル2F
ソリューション事業部 (03)5820-8150
〒532-0003 大阪市淀川区宮原4-5-36 セントラル新大阪ビル7F
ソリューション営業部 (06)6399-1700
http://www.takt.co.jp/
Please “CON ” us.Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow

More Related Content

What's hot (20)

週末趣味のAWS VPC Traffic Mirroring
週末趣味のAWS VPC Traffic Mirroring週末趣味のAWS VPC Traffic Mirroring
週末趣味のAWS VPC Traffic Mirroring
Namba Kazuo
?
础奥厂て?はし?める惭尝翱辫蝉
础奥厂て?はし?める惭尝翱辫蝉础奥厂て?はし?める惭尝翱辫蝉
础奥厂て?はし?める惭尝翱辫蝉
MariOhbuchi
?
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
?
シスコ装置を使い倒す!组込み机能による可视化からセキュリティ强化
シスコ装置を使い倒す!组込み机能による可视化からセキュリティ强化シスコ装置を使い倒す!组込み机能による可视化からセキュリティ强化
シスコ装置を使い倒す!组込み机能による可视化からセキュリティ强化
シスコシステムズ合同会社
?
闯补惫补开発の强力な相棒として今すく?使える骋谤辞辞惫测
闯补惫补开発の强力な相棒として今すく?使える骋谤辞辞惫测闯补惫补开発の强力な相棒として今すく?使える骋谤辞辞惫测
闯补惫补开発の强力な相棒として今すく?使える骋谤辞辞惫测
Yasuharu Nakano
?
惭测厂蚕尝?笔辞蝉迟驳谤别厂蚕尝だけで作る高速あいまい全文検索システム
惭测厂蚕尝?笔辞蝉迟驳谤别厂蚕尝だけで作る高速あいまい全文検索システム惭测厂蚕尝?笔辞蝉迟驳谤别厂蚕尝だけで作る高速あいまい全文検索システム
惭测厂蚕尝?笔辞蝉迟驳谤别厂蚕尝だけで作る高速あいまい全文検索システム
Kouhei Sutou
?
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
?
骋谤补辫丑蚕尝の蝉耻产蝉肠谤颈辫迟颈辞苍て?出来ること
骋谤补辫丑蚕尝の蝉耻产蝉肠谤颈辫迟颈辞苍て?出来ること骋谤补辫丑蚕尝の蝉耻产蝉肠谤颈辫迟颈辞苍て?出来ること
骋谤补辫丑蚕尝の蝉耻产蝉肠谤颈辫迟颈辞苍て?出来ること
Shingo Fukui
?
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
?
ウェブセキュリティのありがちな误解を解説する
ウェブセキュリティのありがちな误解を解説するウェブセキュリティのありがちな误解を解説する
ウェブセキュリティのありがちな误解を解説する
Hiroshi Tokumaru
?
「骋谤补辫丑顿叠彻底入门」?构造や仕组み理解から使いどころ?种々の骋谤补辫丑顿叠の比较まで幅広く?
「骋谤补辫丑顿叠彻底入门」?构造や仕组み理解から使いどころ?种々の骋谤补辫丑顿叠の比较まで幅広く?「骋谤补辫丑顿叠彻底入门」?构造や仕组み理解から使いどころ?种々の骋谤补辫丑顿叠の比较まで幅広く?
「骋谤补辫丑顿叠彻底入门」?构造や仕组み理解から使いどころ?种々の骋谤补辫丑顿叠の比较まで幅広く?
Takahiro Inoue
?
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
GREE VR Studio Lab
?
AWS Black Belt Techシリーズ Amazon Kinesis
AWS Black Belt Techシリーズ  Amazon KinesisAWS Black Belt Techシリーズ  Amazon Kinesis
AWS Black Belt Techシリーズ Amazon Kinesis
Amazon Web Services Japan
?
20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions
Amazon Web Services Japan
?
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
Amazon Web Services Japan
?
顿别惫翱辫蝉における础苍蝉颈产濒别の立ち位置と使い所
顿别惫翱辫蝉における础苍蝉颈产濒别の立ち位置と使い所顿别惫翱辫蝉における础苍蝉颈产濒别の立ち位置と使い所
顿别惫翱辫蝉における础苍蝉颈产濒别の立ち位置と使い所
Hidetoshi Hirokawa
?
DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡
DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡
DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡
BIGLOBE Inc.
?
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
Amazon Web Services Japan
?
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
?
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
?
週末趣味のAWS VPC Traffic Mirroring
週末趣味のAWS VPC Traffic Mirroring週末趣味のAWS VPC Traffic Mirroring
週末趣味のAWS VPC Traffic Mirroring
Namba Kazuo
?
础奥厂て?はし?める惭尝翱辫蝉
础奥厂て?はし?める惭尝翱辫蝉础奥厂て?はし?める惭尝翱辫蝉
础奥厂て?はし?める惭尝翱辫蝉
MariOhbuchi
?
シスコ装置を使い倒す!组込み机能による可视化からセキュリティ强化
シスコ装置を使い倒す!组込み机能による可视化からセキュリティ强化シスコ装置を使い倒す!组込み机能による可视化からセキュリティ强化
シスコ装置を使い倒す!组込み机能による可视化からセキュリティ强化
シスコシステムズ合同会社
?
闯补惫补开発の强力な相棒として今すく?使える骋谤辞辞惫测
闯补惫补开発の强力な相棒として今すく?使える骋谤辞辞惫测闯补惫补开発の强力な相棒として今すく?使える骋谤辞辞惫测
闯补惫补开発の强力な相棒として今すく?使える骋谤辞辞惫测
Yasuharu Nakano
?
惭测厂蚕尝?笔辞蝉迟驳谤别厂蚕尝だけで作る高速あいまい全文検索システム
惭测厂蚕尝?笔辞蝉迟驳谤别厂蚕尝だけで作る高速あいまい全文検索システム惭测厂蚕尝?笔辞蝉迟驳谤别厂蚕尝だけで作る高速あいまい全文検索システム
惭测厂蚕尝?笔辞蝉迟驳谤别厂蚕尝だけで作る高速あいまい全文検索システム
Kouhei Sutou
?
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
?
骋谤补辫丑蚕尝の蝉耻产蝉肠谤颈辫迟颈辞苍て?出来ること
骋谤补辫丑蚕尝の蝉耻产蝉肠谤颈辫迟颈辞苍て?出来ること骋谤补辫丑蚕尝の蝉耻产蝉肠谤颈辫迟颈辞苍て?出来ること
骋谤补辫丑蚕尝の蝉耻产蝉肠谤颈辫迟颈辞苍て?出来ること
Shingo Fukui
?
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
?
ウェブセキュリティのありがちな误解を解説する
ウェブセキュリティのありがちな误解を解説するウェブセキュリティのありがちな误解を解説する
ウェブセキュリティのありがちな误解を解説する
Hiroshi Tokumaru
?
「骋谤补辫丑顿叠彻底入门」?构造や仕组み理解から使いどころ?种々の骋谤补辫丑顿叠の比较まで幅広く?
「骋谤补辫丑顿叠彻底入门」?构造や仕组み理解から使いどころ?种々の骋谤补辫丑顿叠の比较まで幅広く?「骋谤补辫丑顿叠彻底入门」?构造や仕组み理解から使いどころ?种々の骋谤补辫丑顿叠の比较まで幅広く?
「骋谤补辫丑顿叠彻底入门」?构造や仕组み理解から使いどころ?种々の骋谤补辫丑顿叠の比较まで幅広く?
Takahiro Inoue
?
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
GREE VR Studio Lab
?
20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions
Amazon Web Services Japan
?
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
Amazon Web Services Japan
?
顿别惫翱辫蝉における础苍蝉颈产濒别の立ち位置と使い所
顿别惫翱辫蝉における础苍蝉颈产濒别の立ち位置と使い所顿别惫翱辫蝉における础苍蝉颈产濒别の立ち位置と使い所
顿别惫翱辫蝉における础苍蝉颈产濒别の立ち位置と使い所
Hidetoshi Hirokawa
?
DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡
DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡
DDD Alliance レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡
BIGLOBE Inc.
?
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
Amazon Web Services Japan
?
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
?
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
?

Similar to パフォーマンス ボトルネック 国内あるある事例 (20)

IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
?
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
?
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
SORACOM,INC
?
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
Unity Technologies Japan K.K.
?
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
Unity Technologies Japan K.K.
?
[db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ! by 株式会社日立製作所 村上順一
 [db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ!  by 株式会社日立製作所 村上順一 [db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ!  by 株式会社日立製作所 村上順一
[db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ! by 株式会社日立製作所 村上順一
Insight Technology, Inc.
?
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
Insight Technology, Inc.
?
Ladder of cqrs+es
Ladder of cqrs+esLadder of cqrs+es
Ladder of cqrs+es
Masaki Toyoshima
?
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
Insight Technology, Inc.
?
データサイエンティスト協会 木曜勉強会 #09 『意志の力が拓くシステム~最適化の適用事例から見たデータ活用システムの現在と未来~』
データサイエンティスト協会 木曜勉強会 #09 『意志の力が拓くシステム~最適化の適用事例から見たデータ活用システムの現在と未来~』データサイエンティスト協会 木曜勉強会 #09 『意志の力が拓くシステム~最適化の適用事例から見たデータ活用システムの現在と未来~』
データサイエンティスト協会 木曜勉強会 #09 『意志の力が拓くシステム~最適化の適用事例から見たデータ活用システムの現在と未来~』
The Japan DataScientist Society
?
エッジヘビーコンピューティングと机械学习
エッジヘビーコンピューティングと机械学习エッジヘビーコンピューティングと机械学习
エッジヘビーコンピューティングと机械学习
Preferred Networks
?
辫驳冲产颈驳尘を用いた全文検索のしくみ(后编)
辫驳冲产颈驳尘を用いた全文検索のしくみ(后编)辫驳冲产颈驳尘を用いた全文検索のしくみ(后编)
辫驳冲产颈驳尘を用いた全文検索のしくみ(后编)
NTT DATA OSS Professional Services
?
作って(壊して?)学ふ?インターネットのしくみ サイハ?ーエーシ?ェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ふ?インターネットのしくみ サイハ?ーエーシ?ェントの実験用ASの紹介 / Introduce experimental AS in ...作って(壊して?)学ふ?インターネットのしくみ サイハ?ーエーシ?ェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ふ?インターネットのしくみ サイハ?ーエーシ?ェントの実験用ASの紹介 / Introduce experimental AS in ...
whywaita
?
ゲーム事业×データ分析 ドリコムにおける组织と仕事の组み立て方
ゲーム事业×データ分析 ドリコムにおける组织と仕事の组み立て方ゲーム事业×データ分析 ドリコムにおける组织と仕事の组み立て方
ゲーム事业×データ分析 ドリコムにおける组织と仕事の组み立て方
Hisahiko Shiraishi
?
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
Insight Technology, Inc.
?
良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、厂蚕颈笔シンポジウムアブストラクト作成のポイント
良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、厂蚕颈笔シンポジウムアブストラクト作成のポイント良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、厂蚕颈笔シンポジウムアブストラクト作成のポイント
良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、厂蚕颈笔シンポジウムアブストラクト作成のポイント
Naoki Ohsugi
?
.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート
TomomitsuKusaba
?
颁狈狈チュートリアル
颁狈狈チュートリアル颁狈狈チュートリアル
颁狈狈チュートリアル
Ikuro Sato
?
笔测诲补迟补冲リクルートにおける产补苍诲颈迟アルコ?リス?ム冲実装前まて?のフ?ロセス
笔测诲补迟补冲リクルートにおける产补苍诲颈迟アルコ?リス?ム冲実装前まて?のフ?ロセス笔测诲补迟补冲リクルートにおける产补苍诲颈迟アルコ?リス?ム冲実装前まて?のフ?ロセス
笔测诲补迟补冲リクルートにおける产补苍诲颈迟アルコ?リス?ム冲実装前まて?のフ?ロセス
Shoichi Taguchi
?
GTMF 2017:Unityプロファイリングマニアクス ユニティ?テクノロジーズ?ジャパン合同会社
GTMF 2017:Unityプロファイリングマニアクス ユニティ?テクノロジーズ?ジャパン合同会社GTMF 2017:Unityプロファイリングマニアクス ユニティ?テクノロジーズ?ジャパン合同会社
GTMF 2017:Unityプロファイリングマニアクス ユニティ?テクノロジーズ?ジャパン合同会社
Game Tools & Middleware Forum
?
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
?
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
?
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
SORACOM,INC
?
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
Unity Technologies Japan K.K.
?
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
Unity Technologies Japan K.K.
?
[db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ! by 株式会社日立製作所 村上順一
 [db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ!  by 株式会社日立製作所 村上順一 [db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ!  by 株式会社日立製作所 村上順一
[db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ! by 株式会社日立製作所 村上順一
Insight Technology, Inc.
?
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
Insight Technology, Inc.
?
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
Insight Technology, Inc.
?
データサイエンティスト協会 木曜勉強会 #09 『意志の力が拓くシステム~最適化の適用事例から見たデータ活用システムの現在と未来~』
データサイエンティスト協会 木曜勉強会 #09 『意志の力が拓くシステム~最適化の適用事例から見たデータ活用システムの現在と未来~』データサイエンティスト協会 木曜勉強会 #09 『意志の力が拓くシステム~最適化の適用事例から見たデータ活用システムの現在と未来~』
データサイエンティスト協会 木曜勉強会 #09 『意志の力が拓くシステム~最適化の適用事例から見たデータ活用システムの現在と未来~』
The Japan DataScientist Society
?
エッジヘビーコンピューティングと机械学习
エッジヘビーコンピューティングと机械学习エッジヘビーコンピューティングと机械学习
エッジヘビーコンピューティングと机械学习
Preferred Networks
?
辫驳冲产颈驳尘を用いた全文検索のしくみ(后编)
辫驳冲产颈驳尘を用いた全文検索のしくみ(后编)辫驳冲产颈驳尘を用いた全文検索のしくみ(后编)
辫驳冲产颈驳尘を用いた全文検索のしくみ(后编)
NTT DATA OSS Professional Services
?
作って(壊して?)学ふ?インターネットのしくみ サイハ?ーエーシ?ェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ふ?インターネットのしくみ サイハ?ーエーシ?ェントの実験用ASの紹介 / Introduce experimental AS in ...作って(壊して?)学ふ?インターネットのしくみ サイハ?ーエーシ?ェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ふ?インターネットのしくみ サイハ?ーエーシ?ェントの実験用ASの紹介 / Introduce experimental AS in ...
whywaita
?
ゲーム事业×データ分析 ドリコムにおける组织と仕事の组み立て方
ゲーム事业×データ分析 ドリコムにおける组织と仕事の组み立て方ゲーム事业×データ分析 ドリコムにおける组织と仕事の组み立て方
ゲーム事业×データ分析 ドリコムにおける组织と仕事の组み立て方
Hisahiko Shiraishi
?
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
Insight Technology, Inc.
?
良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、厂蚕颈笔シンポジウムアブストラクト作成のポイント
良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、厂蚕颈笔シンポジウムアブストラクト作成のポイント良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、厂蚕颈笔シンポジウムアブストラクト作成のポイント
良い原稿を作る3つの要素、読み易い文章を作る5つのコツ、厂蚕颈笔シンポジウムアブストラクト作成のポイント
Naoki Ohsugi
?
.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート
TomomitsuKusaba
?
颁狈狈チュートリアル
颁狈狈チュートリアル颁狈狈チュートリアル
颁狈狈チュートリアル
Ikuro Sato
?
笔测诲补迟补冲リクルートにおける产补苍诲颈迟アルコ?リス?ム冲実装前まて?のフ?ロセス
笔测诲补迟补冲リクルートにおける产补苍诲颈迟アルコ?リス?ム冲実装前まて?のフ?ロセス笔测诲补迟补冲リクルートにおける产补苍诲颈迟アルコ?リス?ム冲実装前まて?のフ?ロセス
笔测诲补迟补冲リクルートにおける产补苍诲颈迟アルコ?リス?ム冲実装前まて?のフ?ロセス
Shoichi Taguchi
?
GTMF 2017:Unityプロファイリングマニアクス ユニティ?テクノロジーズ?ジャパン合同会社
GTMF 2017:Unityプロファイリングマニアクス ユニティ?テクノロジーズ?ジャパン合同会社GTMF 2017:Unityプロファイリングマニアクス ユニティ?テクノロジーズ?ジャパン合同会社
GTMF 2017:Unityプロファイリングマニアクス ユニティ?テクノロジーズ?ジャパン合同会社
Game Tools & Middleware Forum
?

More from 日本闯补惫补ユーザーグループ (12)

日本闯补惫补ユーザーグループ 2018年度 定期総会
日本闯补惫补ユーザーグループ 2018年度 定期総会日本闯补惫补ユーザーグループ 2018年度 定期総会
日本闯补惫补ユーザーグループ 2018年度 定期総会
日本闯补惫补ユーザーグループ
?
日本Javaグループ2017年定期総会 #jjug
日本Javaグループ2017年定期総会 #jjug 日本Javaグループ2017年定期総会 #jjug
日本Javaグループ2017年定期総会 #jjug
日本闯补惫补ユーザーグループ
?
日本Javaグループ2016年定期総会 #jjug #ccc_soukai
日本Javaグループ2016年定期総会 #jjug #ccc_soukai日本Javaグループ2016年定期総会 #jjug #ccc_soukai
日本Javaグループ2016年定期総会 #jjug #ccc_soukai
日本闯补惫补ユーザーグループ
?
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本闯补惫补ユーザーグループ
?
JCache Using JCache
JCache Using JCacheJCache Using JCache
JCache Using JCache
日本闯补惫补ユーザーグループ
?
JJUG CCC 2015 Spring 総会資料
JJUG CCC 2015 Spring 総会資料JJUG CCC 2015 Spring 総会資料
JJUG CCC 2015 Spring 総会資料
日本闯补惫补ユーザーグループ
?
JJUG CCC 2014 Spring 定期総会
JJUG CCC 2014 Spring 定期総会JJUG CCC 2014 Spring 定期総会
JJUG CCC 2014 Spring 定期総会
日本闯补惫补ユーザーグループ
?
パフォーマンス管理最前線 米国大規模システムにおける最新トレンド
パフォーマンス管理最前線 米国大規模システムにおける最新トレンドパフォーマンス管理最前線 米国大規模システムにおける最新トレンド
パフォーマンス管理最前線 米国大規模システムにおける最新トレンド
日本闯补惫补ユーザーグループ
?
闯闯补惫补プログラム実行の仕组みと、高速?安定动作に向けた取り组み
闯闯补惫补プログラム実行の仕组みと、高速?安定动作に向けた取り组み闯闯补惫补プログラム実行の仕组みと、高速?安定动作に向けた取り组み
闯闯补惫补プログラム実行の仕组みと、高速?安定动作に向けた取り组み
日本闯补惫补ユーザーグループ
?
JJUG CCC 2013 Spring 定期総会資料
JJUG CCC 2013 Spring 定期総会資料JJUG CCC 2013 Spring 定期総会資料
JJUG CCC 2013 Spring 定期総会資料
日本闯补惫补ユーザーグループ
?
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
日本闯补惫补ユーザーグループ
?
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本闯补惫补ユーザーグループ
?
パフォーマンス管理最前線 米国大規模システムにおける最新トレンド
パフォーマンス管理最前線 米国大規模システムにおける最新トレンドパフォーマンス管理最前線 米国大規模システムにおける最新トレンド
パフォーマンス管理最前線 米国大規模システムにおける最新トレンド
日本闯补惫补ユーザーグループ
?
闯闯补惫补プログラム実行の仕组みと、高速?安定动作に向けた取り组み
闯闯补惫补プログラム実行の仕组みと、高速?安定动作に向けた取り组み闯闯补惫补プログラム実行の仕组みと、高速?安定动作に向けた取り组み
闯闯补惫补プログラム実行の仕组みと、高速?安定动作に向けた取り组み
日本闯补惫补ユーザーグループ
?
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
日本闯补惫补ユーザーグループ
?

パフォーマンス ボトルネック 国内あるある事例

  • 1. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow パフォーマンス ボトルネック 国内あるある事例 タクトシステムズ株式会社 ソリューション事業部
  • 2. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 弊社について ?タクトシステムズ株式会社 – 1986年設立 社員数140名 – 独立系SIerとして顧客要望に合わせたシステムを構築 – dynaTraceの国内第1号販売代理店 – ユーザとして実際にdynaTraceを利用することで 発見した事例をより多くの皆様に伝えたい→本発表に至る – JJUGの鈴木会長にご提案し、お使い頂いております 1 +
  • 3. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow ボトルネックとは ?直訳すると 「瓶(びん)の首」 ?最も流れが滞る箇所 ?システムのパフォーマンスについてのボトルネックとは、 ある処理の実行時間のうち、1番時間がかかっている箇所 特徴 ?ボトルネック以外の箇所を改善しても効果が薄い ?ボトルネックは移動する – ボトルネックを改善することで、その箇所はボトルネックではなくなり、 新たな箇所がボトルネックとなる 2
  • 4. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow ボトルネックの種類 ?プログラム視点のボトルネック – 大きな一つの処理がある – 経験とカンである程度予測できる →システムの複雑化により特定が困難に – SQL が原因のケースがよくある ?トランザクション視点のボトルネック – 大量の処理がある – 従来の観点?手法では特定が困難 – ループ誤り、非効率なロジック 3
  • 5. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 事例紹介 ?dynaTraceにより発見した以下事例をご紹介 1. DBコネクション(プーリング未設定) 2. Synchronizedによる排他処理 3. 大量のSQL実行 4. 文字列結合 5. Proxy設定のトラブル<番外編> 4
  • 6. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 事例1. DBコネクション(プーリング未設定) 5 DBサーバ コネクション プール org.apache.commo ns.dbcp.BasicDa taSource getConnection() org.springframewor k.jdbc.datasource. DriverManager DataSource getConnection() (デフォルト) プーリングなし プーリングあり 毎回新しくコネクションを張り、 ボトルネックとなっていた ○×
  • 7. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 事例1. DBコネクション(プーリング未設定) 6 種類 プログラム視点のボトルネック 要因 I/O 内容 SpringフレームワークのDBコネクション設定をデ フォルトのまま使用していたため、コネクション プールを使用しない動作となっていた。 対応 コネクションプールを使用する設定へ変更した。 原因 フレームワークの設定を全て把握することは難し い。とりあえずデフォルトで動かしていた。 発見難易度:中 DB接続周りのログは、確認しやすいが、 思い込みによって、コネクションプーリングを利用 していないことに気付かない場合がある。
  • 8. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 事例2. Synchronizedによる排他処理 7 スレッド1 ??? マスタデータ 取得処理 Synchronized Synchronized スレッド2 スレッド3 Synchronized 待ち 待ち × × ×
  • 9. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 事例2. Synchronizedによる排他処理 8 種類 プログラム視点のボトルネック 要因 同期待ち 内容 ログイン時の処理でSynchronizedによる排他をか けたところ、同時アクセスで同期待ちが大量発生。 対応 処理タイミングをログイン時からアプリケーション 起動時に変更した。 原因 スレッドセーフを実現するために、安易に Synchronizedを使用していた。 排他をかける範囲や必要性を吟味すべき。 発見難易度:高 JMXよりスレッドの状態、スレッドのブロック時間、 さらにはスタックトレースを何度も繰り返し取得し 分析する必要がある。
  • 10. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 事例2. Synchronizedによる排他処理 9
  • 11. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 事例3. 大量のSQL実行 10 DBサーバ アプリケーション サーバ Insert文 1回の実行時間は短いが… 繰り返すと ボトルネックに… × ○ executeBatch で格段に早く DBサーバ アプリケーション サーバ
  • 12. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 事例3. 大量のSQL実行 11 種類 トランザクション視点のボトルネック 要因 I/O 内容 大量のデータ登録処理を、データ1件ずつInsert 文を発行していた。結果、30秒以上の処理時間と なった。 対応 JDBCのバッチ更新機能に変更した。結果、0.3秒 に短縮された。 原因 大量のデータ登録を想定せずに実装した。 テストは少量データで実施し、パフォーマンスの 問題として顕在化しなかった。 発見難易度:中 Insert文1回の実行時間が短く、リソース(CPU, メ モリ)の消費も低いため、サーバ視点で見ても問 題が見つからない。
  • 13. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 事例4. 文字列結合 12 String str = ""; for (int i = 0; i < 1000000; i++) { str += i; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < 1000000; i++) { sb.append(i); } String str = sb.toString(); String str = ""; for (int i = 0; i < 1000000; i++) { str = new StringBuilder().append(str).append(i).toString(); } (JDK1.5以上の場合) 実質的には… インスタンス の生成を 1000000回 繰り返す… × ○ 上に比べて、 数百倍速い
  • 14. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 事例4. 文字列結合 13 種類 トランザクション視点のボトルネック 要因 CPU 内容 大量の文字列結合に?+?を使用したところ、スト リングバッファのnewとappendが発生し、配列コ ピーでCPU負荷が高くなった。 対応 StringBuilder appendに書き換えることで解消。 原因 記述の容易さや可読性の良さにより、?+?を使用 しがち。 StringBuilder appendとの動作や性能の 違いを意識しているプログラマーばかりではない。 発見難易度:中 目視によるコードレビューでは限界がある。 有識者であれば発見は早いが、そうでなければ ログを出力して分析する必要あり。
  • 15. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow クライアント ブラウザ 事例5. Proxy設定のトラブル<番外編> 14 アプリケーション サーバ Proxy サーバ リダイ レクト エラー ×
  • 16. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 事例5. Proxy設定のトラブル<番外編> 15 要因 ネットワーク 内容 HTMLからリダイレクトを繰り返して実行する処理 で、ネットワーク上のProxyサーバが弾いていた。 対応 細かく分けていた処理をまとめ、リダイレクトの回 数を減らした。 原因 Proxyサーバの挙動について認識していなかった。 発見難易度:高 インフラに精通していないと特定は困難。 アプリケーション側のログを分析しても原因不明。
  • 17. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow まとめ ?ボトルネックの種類 – プログラム視点のボトルネック – トランザクション視点のボトルネック ?ボトルネックの特定は、困難になる一方 – 複雑化するシステム構成 – 従来の観点?手法では、限界 ?dynaTraceにより短時間でボトルネックを特定できた 16 クラウド Webサービス モバイル 仮想化
  • 18. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 最後に??? 17 内容 現在タクトシステムズでは、本日ご紹介した『dynaTrace』を活用し 【パフォーマンスボトルネック調査サービス】を実施しております。 本セミナにご参加頂きました皆様には特別価格(通常の50%)5万円にて ご提供いたします(6月末までの期間限定)。 ※詳細は配布資料の最終ページをご確認ください。 特徴 早い! dynaTrace導入から2時間以内にボトルネックを特定いたします。 安い! 成功報酬型でボトルネックを特定できない場合は無料です。 簡単! 対象システムの設定変更やログ出力の追加などは不要です。 皆様もdynaTraceの効果を体験しませんか? パフォーマンスボトルネック調査サービスを提供中
  • 19. Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow 18 お問合せ先 : タクトシステムズ株式会社 〒111-0051 東京都台東区蔵前3-1-10 蔵前セントラルビル2F ソリューション事業部 (03)5820-8150 〒532-0003 大阪市淀川区宮原4-5-36 セントラル新大阪ビル7F ソリューション営業部 (06)6399-1700 http://www.takt.co.jp/ Please “CON ” us.Technology and Knowledge for TomorrowTechnology and Knowledge for Tomorrow