NetSuiteを活用してシステムを構築・運用していると、カスタマイズや多様なスクリプト、ワークフローを組み合わせる機会が増えてきます。その中で、システムパフォーマンスの問題は避けて通れません。
本記事では、NetSuiteの APM (Application Performance Management) 機能を中心に、パフォーマンス調査や改善につながる活用ポイントを紹介します。
APM概要
-
Performance Health Dashboard (パフォーマンスの健全性ダッシュボード)
- スクリプトやワークフローなどの実行統計を一目で把握できる。
- 過去のパフォーマンス履歴(トレンド)と現在の状況を比較可能。
-
Suite Script Analysis (SuiteScript分析)
- User Event、Scheduled、RESTletなどSuiteScriptの実行状況を詳細表示。
- CPU時間、メモリ使用量、実行回数、エラー発生状況をグラフやテーブルで確認。
-
Search Performance Analysis (検索パフォーマンスの分析)
- 保存検索のパフォーマンス状況を可視化する機能
- 遅い検索や実行回数の多い検索を特定し、システム全体のパフォーマンス向上を図る
- ID、実行回数、平均処理時間、最大処理時間をグラフやテーブルで確認。
-
Record Pages Monitor (レコードページモニター)/
Page Time Summary (検索パフォーマンスの分析)- レコードページの表示速度を分析し、User Event Scripts やサブリストが読み込み遅延の原因になっていないか確認。
- ページのカスタマイズやフォーム構成がパフォーマンスに与える影響を把握。
-
Data Visualizations (データ可視化)
- 時間帯やユーザロールなどでフィルタリングし、より具体的なボトルネックを発見可能。
-
アクセス権限の設定
- Administratorロール、もしくはAPM機能を利用できる権限が必要。
- ロールごとにAPMの表示可否や編集可能範囲を調整。
APM (Application Performance Management)とは
NetSuiteのAPM機能は、以下のような目的で利用されます。
-
スクリプトのパフォーマンス分析
- SuiteScript(User Event、Scheduled、RESTlet など)の実行時間やメモリ使用量・実行回数を可視化。
-
ワークフローのパフォーマンス分析
- ワークフローがどのように動作しているかを分析し、遅延やボトルネックを特定。
-
ページ表示速度やシステム全体のパフォーマンス測定
- 特定のレコードページやフォーム、保存検索の読み込みに時間がかかっていないかを可視化し、問題の切り分けをサポート。
これらの機能はそれぞれ専用の画面(Suite Script Analysis / Page Time Summery / Record Pages Monitor / )で統合的に管理することができます。
APM機能へのアクセス方法
APM機能はNetSuiteの特定メニューからアクセス可能です。ロールやUIによって多少異なりますが、一般的な手順をまとめます。
- メインメニュー → カスタマイゼーション → Performance
- APMのダッシュボードが開くと、以下のセクションに切り替えられます。
- Performance Health Dashiboard: システム全体のトレンド・概要
- Script Analysis: スクリプトパフォーマンス状況
- Page Time Summary: ページ読み込み速度の分析
- Search Performance Analysis: 保存検索の読み込み速度の分析
※ 権限設定によってはAPMのメニューが表示されない場合があります。必要に応じてAdministratorロール、もしくはAPM利用が許可されたロールでログインしてください。
APMで得られる主な指標
APMでは、以下の指標がグラフィカルに表示され、トラブルシューティングに役立ちます。
-
Execution Time (実行時間)
- スクリプトやワークフローが完了するまでの時間
- ページ表示にかかる時間など
-
Throughput (スループット)
- 単位時間あたりの実行回数や処理件数
-
CPU Time / Memory Usage
- CPU時間やメモリ使用量の観点から、スクリプトロジックの効率性を分析
-
Error Count / Error Rate (エラー数・エラー率)
- 特定のスクリプトやワークフローで頻繁に起きているエラーの把握
具体的な活用シナリオ
1. スクリプトのパフォーマンス問題を特定
-
Scenario
大量のレコードを取り扱うスケジュールドスクリプトがタイムアウトやスロットリングを頻発。 -
APMでの分析
- 「Script Analysis」で対象スクリプトの実行時間、CPU時間、メモリ使用量をチェック
- 検索回数が多い、ループが過剰などのボトルネック部分を特定
-
対処例
-
search.create()
を一度にまとめる、検索条件を見直す - 高負荷処理を複数のスクリプトに分割
- バッチ処理のタイミングを調整し、競合を避ける
-
2. ワークフローが思ったより遅い/多重実行している
-
Scenario
複雑なワークフローを構築していたところ、処理が遅くユーザーからクレームが発生。 -
APMでの分析
- 「Page Time Summary」で該当ワークフローの各ステップの実行時間やトランジション回数を可視化
- イベント(Create/Edit時など)の実施タイミングが重複していないか確認
-
対処例
- ワークフローをシンプルに統合・分割してみる
- 必要なステップだけ残し、条件分岐を厳密化
- 重複トリガーを排除
3. ページ表示が重い
-
Scenario
特定のカスタマイズレコードページが表示に数秒以上かかり、業務効率が低下。 -
APMでの分析
- 「Page Time Analysis」でページ読み込みプロセスを確認
- 呼び出されるUser Event Scriptやサブリスト読み込みに時間がかかっていないか確認
-
対処例
- 画面ロード時に動くスクリプトを見直し、処理を最小化
- 初期表示のサブタブやサブリストを絞り、オンデマンドで展開する
- フィールド数やサブレコード数を適度に減らす
APM活用時のベストプラクティス
-
定期的なモニタリング
- リリース直後だけでなく、週1回・月1回など定期的にAPMダッシュボードを確認し、パフォーマンスの傾向を追う。
-
チームでの可視化共有
- APMのグラフやレポート結果をチームで共有することで、問題箇所を迅速に把握し、対策を協議しやすくなる。
-
Sandbox環境との比較
- SandboxでもAPMを利用できる場合は、本番とのパフォーマンス差や再現性を検証しやすい。
-
Scriptログ / Workflowログとの併用
- APMの統計情報だけでなく、各スクリプトのログやワークフローの実行ログを併用することで、原因特定をさらに絞り込む。
-
最新ドキュメントの参照
- APMはNetSuiteのアップグレードで強化されることがあるため、公式ドキュメントを定期的にチェックし、追加・変更された機能を把握することが重要。
まとめ
NetSuiteはERPからCRMまで幅広い機能を提供しているため、カスタマイズが複雑化すると、パフォーマンス課題が顕在化しやすくなります。そこでAPM (Application Performance Management) 機能を活用することで、以下を実現できます。
- ボトルネックを可視化し、問題箇所を素早く特定できる
- エラーの原因やCPU/メモリ過多を早期に把握・対処できる
- チーム全体で同じデータを参照してスピーディに改善策を検討できる
ポイントは、APMの結果を定期的に確認して早期に対処することです。 ぜひ、公式ドキュメントを活用しつつ、日々の運用や開発にお役立てください。
参考リンク
本記事が、NetSuiteでのパフォーマンス管理に役立てば幸いです。
また、より具体的なお悩みがあるなどありましたら、コメント頂けますと更なる記事の改善を進めてまいります。必要に応じて機能毎のより深い解説をできたらとおもっています。よろしくお願い致します。