概要
Web Playerで分析を開く際に、以下のエラーが表示されてしまい、分析を開けない場合があります。
エラーメッセージ:すべての Web Player サービスの容量が最大に達したため分析を開くことができませんでした。後でやり直してください。
Automation Servicesでジョブを実行する際、「Job added to the queue and will be processed when an instance is free」のメッセージがずっと表示された状態で処理が進まない場合があります。
(こちらのメッセージは本件以外に起因している可能性もありますので、下記のWeb管理画面「Monitoring & Diagnostics」で再確認してください)
Web管理画面「Monitoring & Diagnostics」でWeb PlayerやAutomation Servicesの状態を確認すると「EXHAUSTED」となっています。
同時に、Web PlayerまたはAutomation Servicesのサービスログには以下のような情報が出力されます。
(本例ではメモリ使用率が高いためEXHAUSTED状態となっています)
C:\spotfire\nodemanager\14.0.6\nm\logs\Spotfire.Dxp.Worker.Host.<WPまたはASインスタンスID>.log
・Web Playerログ
WARN ;2025-03-31T14:49:09,126+09:00;2025-03-31 05:49:09,126;d4d38a7f-c102-4de6-b293-b5e64afdeb24;311407087cX-7C;DataBlockStorage.MemoryStatusUpdater;;;Spotfire.Dxp.Web.SiteManager;"Evaluating service instance health status. CPU: Ok, Memory: Exhausted, Paging Ok, TempDisk Ok, WCF Ok, ThreadPool Ok. Combined: Exhausted (Exhausted). Update slots: 2 (2). "
・Automation Servicesログ
WARN ;2025-03-31T14:54:12,775+09:00;2025-03-31 05:54:12,775;381ef2db-41d0-4dda-bed1-81723b2c4390;311453087czd03;DataBlockStorage.MemoryStatusUpdater;;;Spotfire.Dxp.Web.SiteManager;"Evaluating service instance health status. CPU: Ok, Memory: Exhausted, Paging Ok, TempDisk Ok, WCF Ok, ThreadPool Ok. Combined: Exhausted (Exhausted). Automation job slots: 20 (20). "
本記事では上記エラーの発生原因や対策について情報を整理いたします。
動作確認環境
本記事は以下の環境で動作確認したうえで作成しています。
- Spotfire Server 14.0.6
- Web Player 14.0.6
- Automation Services 14.0.6
本記事の内容はSpotfire Web Player / Automation Services 10.10 LTS以降に適用できます。
原因
Spotfire製品の仕様上、Web PlayerやAutomation Servicesサーバー(インスタンス)の場合、サーバー端末の負荷状況(CPU使用率、メモリ使用率など)によって以下の3つのうちいずれかの状態になることがあります。サーバー端末の負荷状況が一定な閾値に達した場合に状態遷移が自動的に行われます。
- AVAILABLE
- 負荷がかかっていないことを示します。
- 通常通りに利用可能な状態です。
- ユーザーからのリクエスト(ブラウザで分析を開く、Automation Servicesジョブ実行など、以下同)はこのインスタンスを利用して処理されることができます。
-
STRAINED
- 負荷がかかっていることを示します。
- 優先度は低いですが、利用可能な状態です。
- 他にAVAILABLE状態のインスタンスが存在する場合はそちらが優先に利用されます。
- 全てのインスタンスがSTRAINED状態の場合、STRAINED状態のインスタンス同士が同じ優先度で利用されます。
-
EXHAUSTED
- 過負荷であることを示します。
- 完全に利用不可な状態です。
- すべてのWeb PlayerやAutomation ServicesインスタンスともEXHAUSTED状態となっている場合、本記事の「概要」部分記載のエラーが発生します。
上記の各種状態へ遷移する閾値(デフォルト設定)は下表の通りです。
状態 | CPU使用率 | メモリ使用率 |
ディスク空き容量 (製品のインストール先ドライブ) |
AVAILABLE | <50% | <75% | >16,000MB |
STRAINED | ≧50% | ≧75% | ≦16,000MB |
EXHAUSTED | ≧90% |
≧90% ※Spotfire 12.1以降 ≧98% ※Spotfire 12.0まで |
≦1,500MB |
また、上記以外に以下の指標によって状態遷移が発生することもありますが、本記事では省略とさせていただきます。
- Paging
- WCF
- ThreadPool
状態遷移閾値の確認や変更手順
状態遷移が行われる閾値の設定は以下の手順で確認・変更できます。
※Web PlayerとAutomation Servicesの設定は別々で管理されています。
1.以下の手順書を参考にWeb PlayerまたはAutomation Servicesの設定をエクスポートしてください。
2.エクスポートされた設定ファイルから現行設定(下記はデフォルト値)を確認してください。
.\config\root\Spotfire.Dxp.Worker.Host.exe.config
約101行目:
<setting name="WebPlayer_AverageCpuLoadExhaustedLimit" serializeAs="String">
<value>90</value>
</setting>
<setting name="WebPlayer_AverageCpuLoadNotExhaustedLimit" serializeAs="String">
<value>85</value>
</setting>
<setting name="WebPlayer_AverageCpuLoadStrainedLimit" serializeAs="String">
<value>50</value>
</setting>
<setting name="WebPlayer_AverageCpuLoadNotStrainedLimit" serializeAs="String">
<value>45</value>
</setting>
約128行目:
<setting name="Health_ExhaustedTempDiskMb" serializeAs="String">
<value>1500</value>
</setting>
省略・・・
<setting name="Health_StrainedTempDiskMb" serializeAs="String">
<value>16000</value>
</setting>
約264行目:
<setting name="DataBlockStorage_MemoryLoadExhaustedLimit" serializeAs="String">
<value>90</value>
</setting>
<setting name="DataBlockStorage_MemoryLoadNotExhaustedLimit" serializeAs="String">
<value>87</value>
</setting>
<setting name="DataBlockStorage_MemoryLoadStrainedLimit" serializeAs="String">
<value>75</value>
</setting>
<setting name="DataBlockStorage_MemoryLoadNotStrainedLimit" serializeAs="String">
<value>70</value>
</setting>
設定項目の一覧は下表の通りです。
設定項目 | 分類 | 状態遷移 | デフォルト値 |
WebPlayer_AverageCpuLoadExhaustedLimit | CPU使用率(%) | STRAINED ⇒ EXHAUSTED | 90 |
WebPlayer_AverageCpuLoadNotExhaustedLimit | EXHAUSTED ⇒ STRAINED | 85 | |
WebPlayer_AverageCpuLoadStrainedLimit | AVAILABLE ⇒ STRAINED | 50 | |
WebPlayer_AverageCpuLoadNotStrainedLimit | STRAINED ⇒ AVAILABLE | 45 | |
DataBlockStorage_MemoryLoadExhaustedLimit | メモリ使用率(%) | STRAINED ⇒ EXHAUSTED | 90 |
DataBlockStorage_MemoryLoadNotExhaustedLimit | EXHAUSTED ⇒ STRAINED | 87 | |
DataBlockStorage_MemoryLoadStrainedLimit | AVAILABLE ⇒ STRAINED | 75 | |
DataBlockStorage_MemoryLoadNotStrainedLimit | STRAINED ⇒ AVAILABLE | 70 | |
Health_ExhaustedTempDiskMb |
ディスク空き容量(MB) |
STRAINED ⇒ EXHAUSTED | 1500 |
Health_StrainedTempDiskMb | AVAILABLE ⇒ STRAINED | 16000 |
3.閾値を変更したい場合、上記の設定変更手順を参考に該当設定項目の値を変更し、対象Web PlayerまたはAutomation Servicesへ適用してください。
対策
まずは、Web PlayerやAutomation ServicesのサービスログからEXHAUSTED状態となった原因を確認してください。
下記例(Web Playerログ)では、メモリ使用率が高いためEXHAUSTED状態となっていることがわかります。
WARN ;2025-03-31T14:49:09,126+09:00;2025-03-31 05:49:09,126;d4d38a7f-c102-4de6-b293-b5e64afdeb24;311407087cX-7C;DataBlockStorage.MemoryStatusUpdater;;;Spotfire.Dxp.Web.SiteManager;"Evaluating service instance health status. CPU: Ok, Memory: Exhausted, Paging Ok, TempDisk Ok, WCF Ok, ThreadPool Ok. Combined: Exhausted (Exhausted). Update slots: 2 (2). "
次に、EXHAUSTED状態となった原因から、以下を参考に対策をご検討ください。
-
メモリ使用率が原因の場合
- Web PlayerやAutomation Servicesサービスを再起動、またはサーバー端末を再起動すればすぐにAVAILABLE状態に戻れるが、利用状況によって再発する可能性がある。
- 他のアプリケーションがメモリを大量に使用している場合、該当アプリケーションを閉じてメモリを解放する。
- 同時に実行するAutomation Servicesジョブの数を減らすため、ジョブの実行時間をずらす。
- Scheduled Updatesでメモリにロードしている分析の数を減らす。
- メモリを増設する。
- 同一サーバーに複数サービス(Web Player、Automation Services、TERR/Python/Rサービスなど)が構築されている場合、他のサーバーへの移行する。
- 複数台のWeb Player、Automation Servicesサーバーを立ててクラスター構成にして負荷分散を行う。
- サーバー端末に搭載されているメモリ容量がとても大きく、STRAINED / EXHAUSTED状態となる閾値で算出された余りの分が多い場合、閾値を調整して余りの部分を活用する。
- Web Playerの場合ルーティングルールを利用して重い処理を行う分析をスペックのよいサーバーへ振り分ける。
-
CPU使用率が原因の場合
- Web PlayerやAutomation Servicesサービスを再起動、またはサーバー端末を再起動すればすぐにAVAILABLE状態に戻れるが、利用状況によって再発する可能性がある。
- 他のアプリケーションがCPUに負荷をかけている場合、該当アプリケーションを閉じてメモリを解放する。
- 同時に実行するAutomation Servicesジョブの数を減らすため、ジョブの実行時間をずらす。
- Scheduled Updatesのロードやリロードの実行タイミングをずらす。
- CPUを増設する。
- 同一サーバーに複数サービス(Web Player、Automation Services、TERR/Python/Rサービスなど)が構築されている場合、他のサーバーへ移行する。
- 複数台のWeb Player、Automation Servicesサーバーを立ててクラスター構成にして負荷分散を行う。
- Web Playerの場合ルーティングルールを利用して重い処理を行う分析をスペックのよいサーバーへ振り分ける。
-
ディスク空き容量が原因の場合
- 不要なファイルを削除またはほかのドライブへ移動して、Web PlayerやAutomation Servicesのインストール先ドライブの空き容量を増やす。
参考資料
Web Player and Automation Services resource usage
Troubleshoot distributing resources for Spotfire Web Player instances
Temporarily disabling the CPU exhausted limit
Spotfire.Dxp.Worker.Host.exe.config file