メインコンテンツまでスキップ
バージョン: 4.6.1

モニタリングベストプラクティス

このガイドでは、リアルタイムでメトリックをモニタリングし、実用的な決定を下す方法を説明します。一般的な問題に対応し、進入許容数を調整する方法を扱います。

クイックリファレンス

注意すべき主要メトリック:

  • 待機ユーザー数 + 待ち時間: 進入許容数の適切性を示す
  • 進入量 vs 処理完了量: 統合状態を示す
  • 処理時間: サーバー負荷状態を示す

健全な指標:

  • 進入量 ≈ 処理完了量(10-20%以内)
  • 処理時間: 安定しているか減少
  • 待機ユーザー数: 低く、短い待ち時間
  • 処理完了率: >80%

警告シグナル:

  • 処理時間が持続的に増加 → サーバーストレスまたはパフォーマンス低下
  • 処理完了率 <70% → 明示的な終了の欠落または統合問題
  • 待機ユーザー数が増加し、待ち時間が増加 → 需要が進入許容数を超過

重大な問題(即座の対応が必要):

  • 処理時間が急激に急増 → 即座に進入許容数を減少
  • 処理完了率 <50% → 重大な統合失敗; タイムアウト減少および調査
  • 待機ユーザー数が急速に増加し、高い待ち時間 → 進入許容数の枯渇; サーバー状態の評価

一般的なシナリオと対応

シナリオ1: 高い待機列、高い待ち時間、サーバーリソースに余裕あり

症状:

  • 待機ユーザー数: 高い
  • 平均待ち時間: 高い
  • サーバーリソース: 未活用

意味: 進入許容数が低すぎる設定になっています。サーバーはより多くのトラフィックを処理できますが、NetFUNNELが進入を過度に制限しています。

即座の対応:

  1. サーバーリソース使用率を確認(CPU、メモリ、I/O)
  2. リソースが未活用状態であれば、進入許容数を10-20%増加
  3. 5-10分間、待機ユーザー数と待ち時間をモニタリング - 減少する必要がある
  4. 改善されたら、追加の段階的な増加を検討

例:

現在の状況:
- 進入許容数: 100 TPS
- 待機ユーザー数: 200名
- 待ち時間: 20秒
- サーバーCPU: 50%(リソースに余裕あり)

対応: 進入許容数を110-120 TPSに増加
モニタリング: 待機ユーザー数/待ち時間が減少する必要がある

シナリオ2: 高い待機ユーザー数と低い処理完了率

症状:

  • 進入量: 100 TPS
  • 処理完了量: 50 TPS(またはそれ以下)
  • 処理完了率: <50%
  • 待機ユーザー数: 増加中
  • 待ち時間: 増加中

意味: 明示的なサービス終了が適切に発生していません。ユーザーが進入しますが、明示的にキーを返却しないため、進入許容数が不必要に保持されています。

即座の対応:

  1. タイムアウト値を即座に減少:
    • 処理時間が1-2秒の場合、タイムアウト最小値を1秒、最大値を2秒に設定
    • これは新しいユーザーのために進入許容数を迅速に解放します
    • タイムアウト設定はセグメント高度な設定 - タイミング(基本制御)または高度な設定 - タイミング(区間制御)で調整できます
  2. 待機ユーザー数をモニタリング - 減少し始める必要がある
  3. タイムアウト調整後も待機ユーザー数が長い場合は、進入許容数の増加を検討(サーバーリソースが許容する場合)

長期的な対応:

  1. 根本原因の調査:
    • コードにnfStop()呼び出しが欠落していないか確認
    • 統合実装の検証
    • 統合失敗に関するエラーログの確認
  2. 統合問題の修正:
    • すべての適切な場所にnfStop()呼び出しを追加
    • エラー処理にキー返却が含まれるように保証
  3. タイムアウト設定の最適化:
    • 実際の処理時間 + バッファに基づいてタイムアウト設定
    • 例: 処理時間が平均5秒の場合、タイムアウトを6-7秒に設定
明示的な終了の欠落

処理完了率が持続的に70%未満の場合、これは重大な統合問題です。タイムアウトが即座に問題を緩和できますが、根本原因を修正する必要があります。

シナリオ3: 処理時間の増加

症状:

  • 処理時間: 段階的に増加
  • 待機ユーザー数: 増加する場合もあれば増加しない場合もある

意味: サーバー負荷が増加しているか、パフォーマンスが低下しています。これはサーバーストレスの間接的な指標です。

即座の対応:

  1. サーバーリソースを確認(APMまたはサーバーモニタリングによるCPU、メモリ)
  2. サーバーが過負荷状態の場合: 即座に進入許容数を40-50%減少
  3. サーバーリソースに余裕がある場合: 他の問題の可能性(ネットワーク、データベースなど)- 調査
  4. 処理時間のトレンドをモニタリング - 継続的に増加する場合は、進入許容数をさらに減少

例:

現在の状況:
- 進入許容数: 100 TPS
- 処理時間: 2秒から5秒に増加
- サーバーCPU: 90%(過負荷)

対応: 即座に進入許容数を50-60 TPSに減少
モニタリング: 処理時間が安定化する必要がある

長期的な対応:

  1. パフォーマンス最適化:
    • 遅いコンポーネントを識別するためにアプリケーションプロファイリング
    • データベースクエリの最適化
    • 必要に応じてサーバーリソースの拡張
  2. 進入許容数の計画:
    • 処理時間の閾値に基づいて最適な進入許容数を決定
    • 処理時間が閾値を超過する場合のアラート設定

タイムアウトの最適化

タイムアウト設定は、明示的な終了が発生しない場合に、NetFUNNELがキーを自動的に返却する前に待機する時間を決定します。

基本範囲: 6-20秒(最小値-最大値)

動作方法:

  • NetFUNNELは最初に最大値を使用します
  • nfStop()が呼び出されない場合、タイムアウト後にキーが自動的に返却されます

最適なタイムアウト設定:

  1. 時間にわたる処理時間をモニタリングして、一般的な範囲を識別
  2. 最小値を一般的な最小処理時間に設定
  3. 最大値を一般的な最大処理時間 + 20-30%バッファに設定
  4. 例: 処理時間が8-12秒の場合、タイムアウトを8-15秒に設定
  5. 処理完了率が低い場合(<70%)、進入許容数をより迅速に解放するためにタイムアウトを減少
タイムアウト vs 処理時間

処理時間が定期的にタイムアウトを超過する場合、ユーザーはサービス完了前に強制的に終了されます。常に安全バッファを含めて、タイムアウトを一般的な処理時間より高く設定してください。

重要な注意事項

進入許容数の調整について:

  • 増加: 10-20%段階的に増加、5-10分間モニタリング
  • 減少: サーバー保護時は40-50%積極的に減少

処理時間について:

  • NetFUNNELはサーバーCPU/メモリを直接モニタリングしません
  • 処理時間はサーバー負荷の間接的な指標です
  • 常にサーバーモニタリングツール(APMなど)と相互参照してください