SlideShare a Scribd company logo
Copyright © 2015 Takashi Natsume All Rights Reserved.
情報システムの性能マネジメントについて
公益社団法人日本技術士会
登録グループ IT21の会 2015年9月例会
2015年9月4日(金)
夏目 貴史
技術士(情報工学部門・総合技術監理部門)
Copyright © 2015 Takashi Natsume All Rights Reserved.
自己紹介
【名前】 夏目 貴史(なつめ たかし)
【学位・資格】
• 修士(工学) ― 電子情報工学専攻
• 技術士(情報工学部門・総合技術監理部門) ― 情報システム・データ工学
• 米国PMI認定PMP
【業務経歴】
オープンソースソフトウェアとミッションクリティカルな大規模システムに関する
システム開発や評価(検証)、情報システムの性能評価、性能問題解決に従
事 。
現在はOpenStackを利用したIaaSシステムの開発およびOpenStackのコミュニ
ティ活動に従事。
【日本技術士会での活動】
• 日本技術士会 国際委員会委員(2015年7月~)
• 日本技術士会 情報工学部会 幹事(2015年3月~)
2
Copyright © 2015 Takashi Natsume All Rights Reserved.
開発フェーズ
企画 要件定義 設計 実装 テスト 運用
開発のそれぞれのフェーズで情報システムの性能を確保する
ために行うべきこと、注意すべき点を説明します。
ウォーターフォール・モデル
注:開発モデル、開発方法論によってはフェーズの定義や用語が違う場合があります。
(一般的には上記のフェーズよりも細かく分かれます。)
例えば、「TERASOLUNA開発手順」(※1)では12のプロセス体系となっており、
「基本構想プロセス(BP)」、「システム要件定義プロセス(RD)」、
「AP外部設計プロセス(ED)」、「AP内部設計プロセス(ID)」などのプロセスが
定義されています。
※1: TERASOLUNA のご紹介
http://www.terasoluna.jp/announcement/pdf/TERASOLUNA.pdf
3
Copyright © 2015 Takashi Natsume All Rights Reserved.
開発における性能確保の考え方
各フェーズにおいて「不確実性」を低減させていく。
運用時にも「不確実性」(リスク)が残るので、それを監視する。
要件定義 設計 実装 テスト 運用
高
低
不確実性
残存する
部分が
存在する
4
Copyright © 2015 Takashi Natsume All Rights Reserved.
要件定義
• 性能要件をきちんと決める
• 性能要件=負荷要件+性能目標
• 負荷要件
• 情報システムへの「入力」
• 性能目標
• 情報システムの「出力」
情報システム 出力入力
5
Copyright © 2015 Takashi Natsume All Rights Reserved.
性能要件
非機能要求グレード(※2)から抜粋すると以下のようになる。
• 負荷条件
• ユーザ数
• 同時アクセス数
• データ量
• オンラインリクエスト件数
• バッチ処理件数
• 業務量増大度
(ユーザ数増大率、オンラインリクエスト件数増大率、他)
• 他
• 性能目標
• オンラインレスポンス
• バッチレスポンス(ターンアラウンドタイム)
• オンラインスループット
• バッチスループット
• 他
※2:非機能要求グレード
http://www.ipa.go.jp/sec/softwareengineering/reports/20100416.html
6
Copyright © 2015 Takashi Natsume All Rights Reserved.
性能要件定義の注意点
• 「非機能要求グレード」に補うべき項目がある
• 「非機能要求グレード」は「発注者と受注者との認識の行き違い」
を「防止することを目的」したもの
• 他に考慮すべき主な項目
• データベースのテーブルのカーディナリティ(値の種類、偏り)
• 競合(オンラインとバッチ)
• 事例
• 主要な機能のみ性能目標が定義されていた
• 動画配信の機能については定義されていたが、その他は未定義
• 単位時間を決めるのは難しい
(例:1時間当たり何件のリクエスト)
• オンラインのレスポンスタイムはパーセンタイル値(例: 90パーセ
ンタイル値)がお勧め
( 「非機能要求グレード」 では「順守率」の表現)
• 性能測定の起点(インターネット・アクセスがあるシステムで、
データセンタの「入り口」における目標を定義。)
7
Copyright © 2015 Takashi Natsume All Rights Reserved.
サイジング
• ハードウェアについては発注してから納品されるまで
タイムラグがある(オンプレミスのシステム)
• 以下について見積もりを行う
• CPU
• メモリ
• ディスク容量
• ディスクのI/O帯域
• ネットワーク(帯域)
8
Copyright © 2015 Takashi Natsume All Rights Reserved.
サイジング方法
• CPU
• 方法
• 類似システム
• ベンチマーク
• SPECint、TPC-Cなど
• プロトタイプ
• シミュレーション・ツール
• 精度を上げるため、複数の方法を使用して見積りを行なう
• 「類似」の定義は難しい
• メモリ/ディスク容量/ディスクのI/O帯域/ネットワーク
(帯域)
• 積み上げ方式
• 安全率を使用する
• 安全率としてこの値を使用するのが良いという値はない
9
Copyright © 2015 Takashi Natsume All Rights Reserved.
設計
• 設計での考慮点はいろいろとあるが今回は時間の
都合により省略
• 事例
• 「塵も積もれば山となる」(ループ処理)
• ディスクI/Oのパス(帯域)も設計する
• 拡張性設計
• スケールアウトさせてもリニアに性能は向上しない場合もある
• 運用設計
• 性能問題発生時の解析
• 監視(情報取得)ツールをあらかじめ導入しておく
• 商用環境に後からツールを入れることに難色を示すお客様もいる
• クラウド・コンピューティング・サービスにおける仮想リソースの上
限増加申請のリードタイムも考慮する。
10
Copyright © 2015 Takashi Natsume All Rights Reserved.
実装
• 実装での考慮点はいろいろとあるが今回は時間
の都合により省略
• 事例
• データベース(RDB)のインデックスがきちんと使用され
ているか確認する
11
Copyright © 2015 Takashi Natsume All Rights Reserved.
テスト
• 性能テストを行なう
• テストデータ
• DBレコード
• カーディナリティを考慮し、システム・ライフサイクルにおける
想定される最大件数のデータを準備する
• 負荷クライアント
• 例えばHTTPリクエストを送る負荷ツール
• その負荷ツールがクライアントのリソースを使い切って
しまい、想定の負荷がかからないことがある
12
Copyright © 2015 Takashi Natsume All Rights Reserved.
パフォーマンス・チューニングの考え方
• 性能要件を満たさない場合はチューニングを行う
• チューニングを止める(完了させる)のはいつか?
→性能要件を満たすようになった時
開始
性能テスト
ボトルネック解析
チューニング
終了
性能要件を満たしているか?
Yes
No
あるボトルネックを解消すると
別の箇所がボトルネックとなる
13
Copyright © 2015 Takashi Natsume All Rights Reserved.
運用
• システムテスト(性能テスト)でのボトルネック候補を監
視してプロアクティブに対応する
• 性能問題発生の兆候が出たら、事前に対策・対応する
• 事例
• テスト環境と商用環境の差異
• テスト環境は商用環境に比べリソースを落としているケースがある
• 性能特性が異なると性能問題の再現に影響が出ることがある
14
Copyright © 2015 Takashi Natsume All Rights Reserved.
性能問題解決に行き詰ったケース
• 性能問題解決に行き詰った
• チューニングも限界にきている
• リソース(ハードウェア)の増強もすぐにはできない
• 処理期限の迫ったデータが山積みになっている
運用対処を行なった。
性能問題発生の原因はデータベースのアクセスパスに
問題があったことである。(テーブルのフルスキャンが発生。)
運用対処として、特定の機能の使用禁止、特定の画面にお
ける検索キーの入力を必ず行ってもらう、などの対策を行
なって運用を続けた。
15
Copyright © 2015 Takashi Natsume All Rights Reserved.
まとめ
• 開発の各フェーズで不確実性を減少させていく
• 各フェーズでやるべきことをやる
• 残存する不確実性(リスク)は運用時に監視する
• 最後の手段として運用対処で乗り切る方法も
16
Copyright © 2015 Takashi Natsume All Rights Reserved.
今後の発表・講演予定
• FIT 2015(第14回情報科学技術フォーラム)で発表
します
• 9月16日(水)15:30-17:30(のうちの20分)
• 愛媛県松山市
• OpenStackのコミュニティ活動について(新機能提案に
おける傾向分析)
• http://www.ipsj.or.jp/event/fit/fit2015/FIT2015_web_pr
ogram/data/html/abstract/B-003.html
• OpenStack Summit Tokyoで講演を行ないます
• 10月29日(木)9:00-9:40AM
• 品川
• タイトル:「NTT's journey with OpenStack」
• NTT研究所のOpenStackの取り組みについて
• http://sched.co/49vA
17
Copyright © 2015 Takashi Natsume All Rights Reserved.
ご清聴ありがとうございました。

More Related Content

Similar to 情報システムの性能マネジメントについて

Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
apkiban
 
JJUG CCC 2018 Spring 『情報処理安全確保支援士とエンジニア』
JJUG CCC 2018 Spring 『情報処理安全確保支援士とエンジニア』JJUG CCC 2018 Spring 『情報処理安全確保支援士とエンジニア』
JJUG CCC 2018 Spring 『情報処理安全確保支援士とエンジニア』
Tatushi Sato
 
Jupyter勉強会 20160701 at NII
Jupyter勉強会 20160701 at NIIJupyter勉強会 20160701 at NII
Jupyter勉強会 20160701 at NII
axsh co., LTD.
 
Azure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data LakeAzure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data Lake
Hideo Takagi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
アプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なことアプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なこと
Atsushi Takayasu
 
Msセミナー20170830 slideshare
Msセミナー20170830 slideshareMsセミナー20170830 slideshare
Msセミナー20170830 slideshare
NHN テコラス株式会社
 
DRIVE CHARTを支えるAI技術
DRIVE CHARTを支えるAI技術DRIVE CHARTを支えるAI技術
DRIVE CHARTを支えるAI技術
Yusuke Uchida
 
ベアメタルOpenStackで始めるクラウド環境構築
ベアメタルOpenStackで始めるクラウド環境構築ベアメタルOpenStackで始めるクラウド環境構築
ベアメタルOpenStackで始めるクラウド環境構築
Nobuyuki Tamaoki
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Yuichi Hasegawa
 
大規模データに対するデータサイエンスの進め方 #CWT2016
大規模データに対するデータサイエンスの進め方 #CWT2016大規模データに対するデータサイエンスの進め方 #CWT2016
大規模データに対するデータサイエンスの進め方 #CWT2016
Cloudera Japan
 
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントJAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントToshiyuki Konparu
 
データ分析チームの振り返り
データ分析チームの振り返りデータ分析チームの振り返り
データ分析チームの振り返り
Satoshi Noto
 
ITインフラsummit 2017発表資料
ITインフラsummit 2017発表資料ITインフラsummit 2017発表資料
ITインフラsummit 2017発表資料
Masayuki Hyugaji
 
AIを活用した交通事故削減支援サービスでのテスト自動化
AIを活用した交通事故削減支援サービスでのテスト自動化AIを活用した交通事故削減支援サービスでのテスト自動化
AIを活用した交通事故削減支援サービスでのテスト自動化
Shota Suzuki
 
メディアコンテンツを支えるデータストアサービスをAWSで
メディアコンテンツを支えるデータストアサービスをAWSでメディアコンテンツを支えるデータストアサービスをAWSで
メディアコンテンツを支えるデータストアサービスをAWSで
Yasuhiro Murata
 
20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング
20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング
20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング
オラクルエンジニア通信
 
[Modern Cloud Day Tokyo 2019] 次世代型データベース・クラウドの魅力に迫る ~ Autonomous Database Dee...
[Modern Cloud Day Tokyo 2019] 次世代型データベース・クラウドの魅力に迫る ~ Autonomous Database Dee...[Modern Cloud Day Tokyo 2019] 次世代型データベース・クラウドの魅力に迫る ~ Autonomous Database Dee...
[Modern Cloud Day Tokyo 2019] 次世代型データベース・クラウドの魅力に迫る ~ Autonomous Database Dee...
オラクルエンジニア通信
 
Data platformdesign
Data platformdesignData platformdesign
Data platformdesign
Ryoma Nagata
 

Similar to 情報システムの性能マネジメントについて (20)

Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
 
JJUG CCC 2018 Spring 『情報処理安全確保支援士とエンジニア』
JJUG CCC 2018 Spring 『情報処理安全確保支援士とエンジニア』JJUG CCC 2018 Spring 『情報処理安全確保支援士とエンジニア』
JJUG CCC 2018 Spring 『情報処理安全確保支援士とエンジニア』
 
Jupyter勉強会 20160701 at NII
Jupyter勉強会 20160701 at NIIJupyter勉強会 20160701 at NII
Jupyter勉強会 20160701 at NII
 
Azure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data LakeAzure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data Lake
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
アプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なことアプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なこと
 
Msセミナー20170830 slideshare
Msセミナー20170830 slideshareMsセミナー20170830 slideshare
Msセミナー20170830 slideshare
 
DRIVE CHARTを支えるAI技術
DRIVE CHARTを支えるAI技術DRIVE CHARTを支えるAI技術
DRIVE CHARTを支えるAI技術
 
ベアメタルOpenStackで始めるクラウド環境構築
ベアメタルOpenStackで始めるクラウド環境構築ベアメタルOpenStackで始めるクラウド環境構築
ベアメタルOpenStackで始めるクラウド環境構築
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
 
大規模データに対するデータサイエンスの進め方 #CWT2016
大規模データに対するデータサイエンスの進め方 #CWT2016大規模データに対するデータサイエンスの進め方 #CWT2016
大規模データに対するデータサイエンスの進め方 #CWT2016
 
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントJAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
 
データ分析チームの振り返り
データ分析チームの振り返りデータ分析チームの振り返り
データ分析チームの振り返り
 
ITインフラsummit 2017発表資料
ITインフラsummit 2017発表資料ITインフラsummit 2017発表資料
ITインフラsummit 2017発表資料
 
AIを活用した交通事故削減支援サービスでのテスト自動化
AIを活用した交通事故削減支援サービスでのテスト自動化AIを活用した交通事故削減支援サービスでのテスト自動化
AIを活用した交通事故削減支援サービスでのテスト自動化
 
メディアコンテンツを支えるデータストアサービスをAWSで
メディアコンテンツを支えるデータストアサービスをAWSでメディアコンテンツを支えるデータストアサービスをAWSで
メディアコンテンツを支えるデータストアサービスをAWSで
 
20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング
20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング
20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング
 
[Modern Cloud Day Tokyo 2019] 次世代型データベース・クラウドの魅力に迫る ~ Autonomous Database Dee...
[Modern Cloud Day Tokyo 2019] 次世代型データベース・クラウドの魅力に迫る ~ Autonomous Database Dee...[Modern Cloud Day Tokyo 2019] 次世代型データベース・クラウドの魅力に迫る ~ Autonomous Database Dee...
[Modern Cloud Day Tokyo 2019] 次世代型データベース・クラウドの魅力に迫る ~ Autonomous Database Dee...
 
Data platformdesign
Data platformdesignData platformdesign
Data platformdesign
 

More from Takashi Natsume

OpenStackアップストリーム活動実践 中級
OpenStackアップストリーム活動実践 中級OpenStackアップストリーム活動実践 中級
OpenStackアップストリーム活動実践 中級
Takashi Natsume
 
KubeCon + CloudNativeCon Europe 2019 参加報告
KubeCon + CloudNativeCon Europe 2019 参加報告KubeCon + CloudNativeCon Europe 2019 参加報告
KubeCon + CloudNativeCon Europe 2019 参加報告
Takashi Natsume
 
国際委員会 総括・広報の取り組み
国際委員会 総括・広報の取り組み国際委員会 総括・広報の取り組み
国際委員会 総括・広報の取り組み
Takashi Natsume
 
赤門技術士会設立について
赤門技術士会設立について赤門技術士会設立について
赤門技術士会設立について
Takashi Natsume
 
日本OpenStackユーザ会第40回勉強会 Nova最新動向
日本OpenStackユーザ会第40回勉強会 Nova最新動向日本OpenStackユーザ会第40回勉強会 Nova最新動向
日本OpenStackユーザ会第40回勉強会 Nova最新動向
Takashi Natsume
 
OpenStack Summit Vancouver 2018 Nova最新動向
OpenStack Summit Vancouver 2018 Nova最新動向OpenStack Summit Vancouver 2018 Nova最新動向
OpenStack Summit Vancouver 2018 Nova最新動向
Takashi Natsume
 
オープンソースソフトウェア開発におけるバグ修正活動の課題分析とその解決方法の提案
オープンソースソフトウェア開発におけるバグ修正活動の課題分析とその解決方法の提案オープンソースソフトウェア開発におけるバグ修正活動の課題分析とその解決方法の提案
オープンソースソフトウェア開発におけるバグ修正活動の課題分析とその解決方法の提案
Takashi Natsume
 
オープンソースソフトウェア開発におけるコミュニティ活動の課題分析とその解決方法の提案
オープンソースソフトウェア開発におけるコミュニティ活動の課題分析とその解決方法の提案オープンソースソフトウェア開発におけるコミュニティ活動の課題分析とその解決方法の提案
オープンソースソフトウェア開発におけるコミュニティ活動の課題分析とその解決方法の提案
Takashi Natsume
 

More from Takashi Natsume (8)

OpenStackアップストリーム活動実践 中級
OpenStackアップストリーム活動実践 中級OpenStackアップストリーム活動実践 中級
OpenStackアップストリーム活動実践 中級
 
KubeCon + CloudNativeCon Europe 2019 参加報告
KubeCon + CloudNativeCon Europe 2019 参加報告KubeCon + CloudNativeCon Europe 2019 参加報告
KubeCon + CloudNativeCon Europe 2019 参加報告
 
国際委員会 総括・広報の取り組み
国際委員会 総括・広報の取り組み国際委員会 総括・広報の取り組み
国際委員会 総括・広報の取り組み
 
赤門技術士会設立について
赤門技術士会設立について赤門技術士会設立について
赤門技術士会設立について
 
日本OpenStackユーザ会第40回勉強会 Nova最新動向
日本OpenStackユーザ会第40回勉強会 Nova最新動向日本OpenStackユーザ会第40回勉強会 Nova最新動向
日本OpenStackユーザ会第40回勉強会 Nova最新動向
 
OpenStack Summit Vancouver 2018 Nova最新動向
OpenStack Summit Vancouver 2018 Nova最新動向OpenStack Summit Vancouver 2018 Nova最新動向
OpenStack Summit Vancouver 2018 Nova最新動向
 
オープンソースソフトウェア開発におけるバグ修正活動の課題分析とその解決方法の提案
オープンソースソフトウェア開発におけるバグ修正活動の課題分析とその解決方法の提案オープンソースソフトウェア開発におけるバグ修正活動の課題分析とその解決方法の提案
オープンソースソフトウェア開発におけるバグ修正活動の課題分析とその解決方法の提案
 
オープンソースソフトウェア開発におけるコミュニティ活動の課題分析とその解決方法の提案
オープンソースソフトウェア開発におけるコミュニティ活動の課題分析とその解決方法の提案オープンソースソフトウェア開発におけるコミュニティ活動の課題分析とその解決方法の提案
オープンソースソフトウェア開発におけるコミュニティ活動の課題分析とその解決方法の提案
 

情報システムの性能マネジメントについて

  • 1. Copyright © 2015 Takashi Natsume All Rights Reserved. 情報システムの性能マネジメントについて 公益社団法人日本技術士会 登録グループ IT21の会 2015年9月例会 2015年9月4日(金) 夏目 貴史 技術士(情報工学部門・総合技術監理部門)
  • 2. Copyright © 2015 Takashi Natsume All Rights Reserved. 自己紹介 【名前】 夏目 貴史(なつめ たかし) 【学位・資格】 • 修士(工学) ― 電子情報工学専攻 • 技術士(情報工学部門・総合技術監理部門) ― 情報システム・データ工学 • 米国PMI認定PMP 【業務経歴】 オープンソースソフトウェアとミッションクリティカルな大規模システムに関する システム開発や評価(検証)、情報システムの性能評価、性能問題解決に従 事 。 現在はOpenStackを利用したIaaSシステムの開発およびOpenStackのコミュニ ティ活動に従事。 【日本技術士会での活動】 • 日本技術士会 国際委員会委員(2015年7月~) • 日本技術士会 情報工学部会 幹事(2015年3月~) 2
  • 3. Copyright © 2015 Takashi Natsume All Rights Reserved. 開発フェーズ 企画 要件定義 設計 実装 テスト 運用 開発のそれぞれのフェーズで情報システムの性能を確保する ために行うべきこと、注意すべき点を説明します。 ウォーターフォール・モデル 注:開発モデル、開発方法論によってはフェーズの定義や用語が違う場合があります。 (一般的には上記のフェーズよりも細かく分かれます。) 例えば、「TERASOLUNA開発手順」(※1)では12のプロセス体系となっており、 「基本構想プロセス(BP)」、「システム要件定義プロセス(RD)」、 「AP外部設計プロセス(ED)」、「AP内部設計プロセス(ID)」などのプロセスが 定義されています。 ※1: TERASOLUNA のご紹介 http://www.terasoluna.jp/announcement/pdf/TERASOLUNA.pdf 3
  • 4. Copyright © 2015 Takashi Natsume All Rights Reserved. 開発における性能確保の考え方 各フェーズにおいて「不確実性」を低減させていく。 運用時にも「不確実性」(リスク)が残るので、それを監視する。 要件定義 設計 実装 テスト 運用 高 低 不確実性 残存する 部分が 存在する 4
  • 5. Copyright © 2015 Takashi Natsume All Rights Reserved. 要件定義 • 性能要件をきちんと決める • 性能要件=負荷要件+性能目標 • 負荷要件 • 情報システムへの「入力」 • 性能目標 • 情報システムの「出力」 情報システム 出力入力 5
  • 6. Copyright © 2015 Takashi Natsume All Rights Reserved. 性能要件 非機能要求グレード(※2)から抜粋すると以下のようになる。 • 負荷条件 • ユーザ数 • 同時アクセス数 • データ量 • オンラインリクエスト件数 • バッチ処理件数 • 業務量増大度 (ユーザ数増大率、オンラインリクエスト件数増大率、他) • 他 • 性能目標 • オンラインレスポンス • バッチレスポンス(ターンアラウンドタイム) • オンラインスループット • バッチスループット • 他 ※2:非機能要求グレード http://www.ipa.go.jp/sec/softwareengineering/reports/20100416.html 6
  • 7. Copyright © 2015 Takashi Natsume All Rights Reserved. 性能要件定義の注意点 • 「非機能要求グレード」に補うべき項目がある • 「非機能要求グレード」は「発注者と受注者との認識の行き違い」 を「防止することを目的」したもの • 他に考慮すべき主な項目 • データベースのテーブルのカーディナリティ(値の種類、偏り) • 競合(オンラインとバッチ) • 事例 • 主要な機能のみ性能目標が定義されていた • 動画配信の機能については定義されていたが、その他は未定義 • 単位時間を決めるのは難しい (例:1時間当たり何件のリクエスト) • オンラインのレスポンスタイムはパーセンタイル値(例: 90パーセ ンタイル値)がお勧め ( 「非機能要求グレード」 では「順守率」の表現) • 性能測定の起点(インターネット・アクセスがあるシステムで、 データセンタの「入り口」における目標を定義。) 7
  • 8. Copyright © 2015 Takashi Natsume All Rights Reserved. サイジング • ハードウェアについては発注してから納品されるまで タイムラグがある(オンプレミスのシステム) • 以下について見積もりを行う • CPU • メモリ • ディスク容量 • ディスクのI/O帯域 • ネットワーク(帯域) 8
  • 9. Copyright © 2015 Takashi Natsume All Rights Reserved. サイジング方法 • CPU • 方法 • 類似システム • ベンチマーク • SPECint、TPC-Cなど • プロトタイプ • シミュレーション・ツール • 精度を上げるため、複数の方法を使用して見積りを行なう • 「類似」の定義は難しい • メモリ/ディスク容量/ディスクのI/O帯域/ネットワーク (帯域) • 積み上げ方式 • 安全率を使用する • 安全率としてこの値を使用するのが良いという値はない 9
  • 10. Copyright © 2015 Takashi Natsume All Rights Reserved. 設計 • 設計での考慮点はいろいろとあるが今回は時間の 都合により省略 • 事例 • 「塵も積もれば山となる」(ループ処理) • ディスクI/Oのパス(帯域)も設計する • 拡張性設計 • スケールアウトさせてもリニアに性能は向上しない場合もある • 運用設計 • 性能問題発生時の解析 • 監視(情報取得)ツールをあらかじめ導入しておく • 商用環境に後からツールを入れることに難色を示すお客様もいる • クラウド・コンピューティング・サービスにおける仮想リソースの上 限増加申請のリードタイムも考慮する。 10
  • 11. Copyright © 2015 Takashi Natsume All Rights Reserved. 実装 • 実装での考慮点はいろいろとあるが今回は時間 の都合により省略 • 事例 • データベース(RDB)のインデックスがきちんと使用され ているか確認する 11
  • 12. Copyright © 2015 Takashi Natsume All Rights Reserved. テスト • 性能テストを行なう • テストデータ • DBレコード • カーディナリティを考慮し、システム・ライフサイクルにおける 想定される最大件数のデータを準備する • 負荷クライアント • 例えばHTTPリクエストを送る負荷ツール • その負荷ツールがクライアントのリソースを使い切って しまい、想定の負荷がかからないことがある 12
  • 13. Copyright © 2015 Takashi Natsume All Rights Reserved. パフォーマンス・チューニングの考え方 • 性能要件を満たさない場合はチューニングを行う • チューニングを止める(完了させる)のはいつか? →性能要件を満たすようになった時 開始 性能テスト ボトルネック解析 チューニング 終了 性能要件を満たしているか? Yes No あるボトルネックを解消すると 別の箇所がボトルネックとなる 13
  • 14. Copyright © 2015 Takashi Natsume All Rights Reserved. 運用 • システムテスト(性能テスト)でのボトルネック候補を監 視してプロアクティブに対応する • 性能問題発生の兆候が出たら、事前に対策・対応する • 事例 • テスト環境と商用環境の差異 • テスト環境は商用環境に比べリソースを落としているケースがある • 性能特性が異なると性能問題の再現に影響が出ることがある 14
  • 15. Copyright © 2015 Takashi Natsume All Rights Reserved. 性能問題解決に行き詰ったケース • 性能問題解決に行き詰った • チューニングも限界にきている • リソース(ハードウェア)の増強もすぐにはできない • 処理期限の迫ったデータが山積みになっている 運用対処を行なった。 性能問題発生の原因はデータベースのアクセスパスに 問題があったことである。(テーブルのフルスキャンが発生。) 運用対処として、特定の機能の使用禁止、特定の画面にお ける検索キーの入力を必ず行ってもらう、などの対策を行 なって運用を続けた。 15
  • 16. Copyright © 2015 Takashi Natsume All Rights Reserved. まとめ • 開発の各フェーズで不確実性を減少させていく • 各フェーズでやるべきことをやる • 残存する不確実性(リスク)は運用時に監視する • 最後の手段として運用対処で乗り切る方法も 16
  • 17. Copyright © 2015 Takashi Natsume All Rights Reserved. 今後の発表・講演予定 • FIT 2015(第14回情報科学技術フォーラム)で発表 します • 9月16日(水)15:30-17:30(のうちの20分) • 愛媛県松山市 • OpenStackのコミュニティ活動について(新機能提案に おける傾向分析) • http://www.ipsj.or.jp/event/fit/fit2015/FIT2015_web_pr ogram/data/html/abstract/B-003.html • OpenStack Summit Tokyoで講演を行ないます • 10月29日(木)9:00-9:40AM • 品川 • タイトル:「NTT's journey with OpenStack」 • NTT研究所のOpenStackの取り組みについて • http://sched.co/49vA 17
  • 18. Copyright © 2015 Takashi Natsume All Rights Reserved. ご清聴ありがとうございました。