適用対象: Configuration Manager
状態メッセージングは、Configuration Manager の最も重要なレポート メカニズムの 1 つです。 これは、アプリケーションと更新のデプロイの統計情報、およびその他の多くのフローを担当します。
この記事では、受信状態メッセージを処理し、データベースを更新するSMS_STATE_SYSTEM コンポーネント (StateSys とも呼ばれます) について説明します。
状態メッセージング システムの詳細については、「 Configuration Manager での状態メッセージングの説明を参照してください。
現象
Configuration Manager 管理者は、ソフトウェア更新プログラムのコンプライアンスとアプリケーションの展開の報告が大幅に遅れることに気付きます。 このような場合、 <Configuration Manager Installation Directory>\Inboxes\auth\statesys.box\incoming
フォルダーには多数のファイルが含まれています。 たとえば、何百万ものファイルがあります。
StateSys
でInboxMon.log ファイルをフィルター処理する場合の出力例を次に示します。
06-11-2021 08:53:35.276 SMS_INBOX_MONITOR 8972 (0X230C) FILE COUNT FOR DIRECTORY F:\PROGRAM FILES\MICROSOFT CONFIGURATION MANAGER\INBOXES\AUTH\STATESYS.BOX\INCOMING\HIGH IS 13360.~
06-11-2021 08:53:35.401 SMS_INBOX_MONITOR 8972 (0X230C) FILE COUNT FOR DIRECTORY F:\PROGRAM FILES\MICROSOFT CONFIGURATION MANAGER\INBOXES\AUTH\STATESYS.BOX\INCOMING\LOW IS 347.~
06-11-2021 08:53:36.556 SMS_INBOX_MONITOR 8972 (0X230C) FILE COUNT FOR DIRECTORY F:\PROGRAM FILES\MICROSOFT CONFIGURATION MANAGER\INBOXES\AUTH\STATESYS.BOX\INCOMING IS 1087076.~
06-11-2021 09:00:00.785 SMS_INBOX_MONITOR 8972 (0X230C) FILE COUNT FOR DIRECTORY F:\PROGRAM FILES\MICROSOFT CONFIGURATION MANAGER\INBOXES\AUTH\STATESYS.BOX\INCOMING\HIGH IS 7.~
06-11-2021 09:00:01.170 SMS_INBOX_MONITOR 8972 (0X230C) FILE COUNT FOR DIRECTORY F:\PROGRAM FILES\MICROSOFT CONFIGURATION MANAGER\INBOXES\AUTH\STATESYS.BOX\INCOMING\LOW IS 213.~
06-11-2021 09:00:02.885 SMS_INBOX_MONITOR 8972 (0X230C) FILE COUNT FOR DIRECTORY F:\PROGRAM FILES\MICROSOFT CONFIGURATION MANAGER\INBOXES\AUTH\STATESYS.BOX\INCOMING IS 1099177.~
06-11-2021 09:15:00.135 SMS_INBOX_MONITOR 8972 (0X230C) FILE COUNT FOR DIRECTORY F:\PROGRAM FILES\MICROSOFT CONFIGURATION MANAGER\INBOXES\AUTH\STATESYS.BOX\INCOMING\HIGH IS 23.~
06-11-2021 09:15:00.240 SMS_INBOX_MONITOR 8972 (0X230C) FILE COUNT FOR DIRECTORY F:\PROGRAM FILES\MICROSOFT CONFIGURATION MANAGER\INBOXES\AUTH\STATESYS.BOX\INCOMING\LOW IS 0.~
06-11-2021 09:15:01.130 SMS_INBOX_MONITOR 8972 (0X230C) FILE COUNT FOR DIRECTORY F:\PROGRAM FILES\MICROSOFT CONFIGURATION MANAGER\INBOXES\AUTH\STATESYS.BOX\INCOMING IS 1117189.~
ファイルの数が増え続ける場合や、適切な時間内にファイルを処理するには時間がかかりすぎる可能性があります。 この問題は、サーバーの長時間の停止または大規模なデプロイの後に発生する可能性があります。
原因
受信ファイルは、通常、ファイル名拡張子が .smx
または .smw
のプレーンテキスト XML ファイルです。 これらのファイルには、クライアント ID (SMS GUID と呼ばれます) とペイロードが含まれています。 通常、すべてのファイルに複数のメッセージが含まれます。 これは、クライアントがメッセージを送信する前にメッセージをバッチ処理するためです (既定値は 15 分です)。
StateSys は、ファイルをバッチで取得し、XML ファイルを解析し、データベースを更新するように設計されています。 データベースを更新すると、Configuration Manager によって提供される一部の SQL ストアド プロシージャと CLR アセンブリが実行されます。 そのため、主に SQL Server バックエンドのパフォーマンスに依存します。 SQL Server が長時間、他のタスクで飽和状態になると、状態メッセージが蓄積される可能性があります。
同時に、StateSys には、何百万ものファイルのバックログに追いつくことができない設計がいくつかあります。
- ファイルは、"先入れ先出し (FIFO)" の順序ではなく、アルファベット順で処理されます。 管理ポイントはファイルのランダムな名前を生成するため、古いメッセージの前に新しいメッセージが処理される可能性があります。 StateSys は、このような状況に対する回復性があります。
- 各メッセージにはシーケンス番号が含まれています。 StateSys は、
SR_MissingRanges
テーブルに格納されている不足している範囲の一覧を保持します。 不足している範囲が 2 日より古くなった場合 (既定)、StateSys はクライアントの再同期を発行します。 再同期により、クライアントは、他のすべてのメッセージと同じキューに送信される大きな XML ファイルを送信します。 新しい状態メッセージが古いメッセージより 2 日前に常に処理される場合、この状態は一部のクライアントにとって悪循環になり、頻繁に再同期が発生する可能性があります。
解決方法
パフォーマンスの問題をトラブルシューティングするには、次の手順に従います。
バックログの原因となる問題を特定して排除します。
問題が大規模なデプロイである場合は、デプロイを一時的に無効にするか、デプロイ戦略を再検討します。 たとえば、1,000 更新プログラムのソフトウェア更新プログラム グループを展開する場合、各更新プログラム、各状態 (既定)、各クライアント、およびグループ全体に適用状態メッセージが生成されることがあります。 これにより、何百万もの状態メッセージが作成される可能性があります。
問題が SQL Server のパフォーマンスに劣る場合は、データベース管理者と協力して問題を解決してください。 処理できないファイルが多数ある場合は、最初に根本原因を調査してください。
Configuration Manager のパフォーマンス ベースラインを確立して、環境の通常の処理速度を把握します。 StateSys の特定のパフォーマンス カウンターには、"Message Records Processed/min" と "Message File Records PreProcessed/min" があります。通常、これらの平均数万。 処理するファイルがない場合、両方のカウンターが 0 に減少します。
通常の処理速度がバックログを処理するのに十分でない場合は、次の手順に進みます。
SMS_STATE_SYSTEM コンポーネントの 内部設定 を変更します。
警告
これらの設定を正しく変更しないと、重大な問題が発生する可能性があります。 Microsoft では、これらの問題を解決できることを保証することはできません。また、このシナリオはサポートされていません。 自分の責任で設定を変更してください。 バックログを解決した後、これらの設定を復元することをお勧めします。
これらの設定を変更するには、少なくとも Configuration Manager インフラストラクチャ管理者のアクセス許可が必要です。
Windows Management Instrumentation Tester ツール (Wbemtest) を使用して SMS プロバイダーに接続します。 [ Connect を選択し、サイト サーバーを Namespace に入力して、 Connect を選択します。 ローカル接続の
root\SMS\site_<site code>
を入力するか、リモート接続の\\MachineName\root\SMS\site_<site code>
を入力します。Queryを選択し、次のクエリを入力して、Apply を選択します。
SELECT * FROM SMS_SCI_COMPONENT WHERE ITEMNAME = 'SMS_STATE_SYSTEM|SMS SITE SERVER'
このクエリは、SMS_STATE_SYSTEM コンポーネントがインストールされている Configuration Manager サイトの一覧を返します。
設定を変更するサイトをダブルクリックし、<site>/StateSys インスタンスのプロパティの一覧から Props をダブルクリックします。
このインスタンスの埋め込みプロパティの一覧を表示するには、 View Embedded を選択します。
各埋め込みプロパティをダブルクリックして、プロパティの名前と値を確認します。 Loader Threads という名前のプロパティと値 4 を探します。
Value をダブルクリックし、値を 16 に増やします。 Save プロパティを選択し、オブジェクト保存を選択します。
名前が Min Missing Message Age と値が 2,880 (分) の別の埋め込みプロパティを探します。
Value をダブルクリックし、不要な再同期を防ぐために値を 10,080 (7 日間) に増やします。 Save プロパティを選択し、オブジェクト保存を選択します。
Propsのプロパティ エディターダイアログボックスで、プロパティの保存選択。
StateSys インスタンスの [ オブジェクト エディター ダイアログで、オブジェクトの保存 選択。
Wbemtest を閉じます。
Configuration Manager Service Manager を使用して、SMS_STATE_SYSTEM コンポーネントを停止してから再起動します。
SMS_STATE_SYSTEM コンポーネントが再起動されると、次のように新しい設定が StateSys.logに記録されます。
08-24-2021 21:24:16.574 SMS_STATE_SYSTEM 19380 (0X4BB4) USING THE FOLLOWING CONFIGURATION PROPERTIES FROM THE SITEF CONTROL FILE: 08-24-2021 21:24:16.575 SMS_STATE_SYSTEM 19380 (0X4BB4) SITE CODE CB1 08-24-2021 21:24:16.575 SMS_STATE_SYSTEM 19380 (0X4BB4) PARENT SITE CODE 08-24-2021 21:24:16.576 SMS_STATE_SYSTEM 19380 (0X4BB4) LOADER THREADS 16 08-24-2021 21:24:16.576 SMS_STATE_SYSTEM 19380 (0X4BB4) INBOX POLLING INTERVAL (SECS) 900 08-24-2021 21:24:16.577 SMS_STATE_SYSTEM 19380 (0X4BB4) LOADER CHUNK SIZE (KB) 256 08-24-2021 21:24:16.578 SMS_STATE_SYSTEM 19380 (0X4BB4) MAX CHUNKS FETCHED 100 08-24-2021 21:24:16.578 SMS_STATE_SYSTEM 19380 (0X4BB4) VERBOSE LOGGING NO 08-24-2021 21:24:16.579 SMS_STATE_SYSTEM 19380 (0X4BB4) MIN RESYNC PERIOD (HOURS) 72 08-24-2021 21:24:16.579 SMS_STATE_SYSTEM 19380 (0X4BB4) RESYNC CHECK INTERVAL (MIN) 15 08-24-2021 21:24:16.580 SMS_STATE_SYSTEM 19380 (0X4BB4) MIN MISSING MESSAGE AGE (MIN) 10880 08-24-2021 21:24:16.581 SMS_STATE_SYSTEM 19380 (0X4BB4) HEARTBEAT MESSAGE INTERVAL (MIN) 60 08-24-2021 21:24:16.581 SMS_STATE_SYSTEM 19380 (0X4BB4) === STATESYS HAS BEEN SUCCESSFULLY INITIALIZED. ===
パフォーマンス カウンターと SQL Server の CPU 負荷を使用して、処理速度の向上を監視します。 CPU 負荷が引き続き 80% を超える場合は、他の Configuration Manager アクティビティが飽和しないようにローダー スレッドの値を減らすことを検討してください。 逆に、CPU コストなしで処理速度が増加する場合は、スレッドの数を増やします。
詳細
Microsoft Premier Services では、次のプロアクティブ配信が提供されます。
これらの契約を計画するには、Premier サポート契約についてカスタマー サクセス アカウント マネージャー (CSAM) にお問い合わせください。