性能改善

データベーススペシャリスト集団による性能改善提案



 
APMを導入し、システム性能のボトムネックを探り当て、データベーススペシャリストによりDB構成やSQLなど性能の問題点を一つずつ解決していきます。またAPMの導入が困難なシステムでは、インストール不要の独自ツールやコマンド等の直接実行、ログ等の手動解析などにより、問題を解決していきます。アプリケーション側のロジックに問題がある場合も、なぜそうなるか、どのように改修すればよくなるのかを効果や改修の容易さ困難さ、改修による問題点などを含めできるだけ複数かつ具体的に提案し、システムの責任者が最適な判断を下せるようにしています。


成功の秘訣

性能改善のポイントは、いかに早い段階で問題を見つけるかが第一のポイントです。 サービス開始前の試験段階、あるいはもっと早い設計段階で問題となりうるものを発見できれば、それだけ改修が楽になり、影響も最小限で抑えることができるため、できるだけ設計段階の早い時点からシステムに関わり、問題となるポイントをつぶすことを第一としています。また、性能試験や性能検証においても最適なツールを用いて効率的な試験/検証が行える環境を作ります。

サービス開始以後においても、APMの導入により性能改善の専門家でないシステムの運用担当者であっても問題の一時切り分けが可能となり、問題が表面化する前に警告を出し将来の問題発生を減らすことが可能となります。APMにより問題の早期発見を行い、独自ツールやログの手動解析、設計書あるいはソースコードの確認など、様々な方法でさらなる情報を取得し、より良い解決案を提示していきます。



成功の秘訣 その2

性能問題の多くは、
・好ましくないSQL実行計画
・非効率的な処理ロジック
の2つが大半です。


好ましくない実行計画に関しては、
・SQL自体が悪い
・データベースのオプティマイザが悪い
ケースなど。


処理ロジックに問題があるケースでは、
・まとめて処理を行えば早いのに1件ずつ処理している
などある程度パターン化できるものが少なくありません。


そういったパターン化できるケースは若手に任せ経験と実績を積ませ、彼らの手におえないようなものやパターン化が難しいようなケースは、熟練のスペシャリストに任せるなどしています。

性能改善は経験の積み重ねと幅広い知識が比較的大きくものをいう分野でもあり、積極的な若手の育成と数々のノウハウの蓄積、新しい技術の習得にも力を入れています。


事例

某社において新しいサービスを提供する際に、ピーク時のアクセス数やデータ件数が非常に多いため設計の初期段階から案件に参加しました。早い段階で参加できたため、かなり突っ込んだ形での提案ができ、SQLチューニングなどはもちろん、必要性が希薄で他の機能でも代替え可能な処理を取りやめたり、結果キャッシュを有効に利用してより負荷を減らすなど多岐にわたって対応しました。

また、実機を用いた性能試験の最中に我々の担当外の機能(監視機能)で高負荷なものがあり、それの改修案についても提示するなどしたため、担当部分だけではなくシステム全体、サービス全体を見ていると高評価にもつながり、その後の同社案件にも広く参画できるようになりました。

またシステムの担当者に提案をよく受け入れていただけたことと、サーバ機器がフレキシブルに変更できたことなどもあり、当初予定の半分以下のサーバスペックで要求性能を達成。そのためライセンス費用などを大幅に削減するといった成果もあげています。本システムは本稿執筆時点でサービス開始後3年近く経っていますが、大きな性能問題も出さずにこれまで稼働しています。