OpenLM SLM データベースを小さく保つ
OpenLM SLM のデータベースの空き容量が不足したら、何かを削除する前に、どのテーブルが増えているかを特定します。使用履歴は設計上増え続けるもので、Cleanup Manager で削減します。永続メッセージのテーブルは小さいままのはずです。このテーブルが大きくなっている場合は、OpenLM SLM が一部のメッセージを処理していないため、それらを削除できます。
容量を使っているテーブルを特定する
変更を加える前にデータベースをバックアップします。次に、サイズの大きいテーブルを一覧表示します。
Microsoft SQL Server の場合:
SELECT t.name AS table_name, SUM(a.total_pages) * 8 / 1024 AS size_mb
FROM sys.tables t
JOIN sys.indexes i ON t.object_id = i.object_id
JOIN sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
JOIN sys.allocation_units a ON p.partition_id = a.container_id
GROUP BY t.name
ORDER BY size_mb DESC;
MySQL または MariaDB の場合は、<openlm_database> を OpenLM SLM データベースの名前に置き換えます。
SELECT table_name, ROUND((data_length + index_length) / 1024 / 1024) AS size_mb
FROM information_schema.tables
WHERE table_schema = '<openlm_database>'
ORDER BY size_mb DESC;
特に重要なテーブルは次の 2 つです。
OLM_USED_LICENSES_HSには使用履歴が格納されます。通常は最も大きいテーブルです。縮小するには、Cleanup Manager で古い履歴をパージします。OLM_PERSISTED_MESSAGEには、Broker が送信し、OpenLM SLM がまだ処理していないメッセージが格納されます。小さいか空のはずです。大きい場合は、次のセクションを参照してください。
滞留した永続メッセージを削除する
OpenLM SLM は、監視対象の各ライセンスサーバーの Broker メッセージを処理し、処理が済んだメッセージを削除します。削除、無効化、または名前を変更したライセンスサーバーのメッセージは OpenLM SLM が処理しないため、OLM_PERSISTED_MESSAGE に残り、テーブルが大きくなり続けます。
-
メッセージがどのライセンスサーバーのものかを特定します。
Microsoft SQL Server の場合:
SELECT [LM_SERVER], [PORT], MIN([INSERT_TIME_UTC]) AS MIN_TIME, MAX([INSERT_TIME_UTC]) AS MAX_TIME, COUNT(*) AS NRFROM [OLM_PERSISTED_MESSAGE]GROUP BY [LM_SERVER], [PORT]ORDER BY COUNT(*) DESC;MySQL または MariaDB の場合:
SELECT LM_SERVER, PORT, MIN(INSERT_TIME_UTC) AS MIN_TIME, MAX(INSERT_TIME_UTC) AS MAX_TIME, COUNT(*) AS NRFROM olm_persisted_messageGROUP BY LM_SERVER, PORTORDER BY COUNT(*) DESC; -
一覧の上位にある各ライセンスサーバーを EasyAdmin で確認します。
- 監視しなくなったサーバーの場合、OpenLM SLM はそのメッセージを処理しません。手順 3 に進みます。
- 引き続き監視しているサーバーのメッセージが増え続けている場合、OpenLM SLM はそれらを処理できていません。削除する前に、EasyAdmin でサーバーのデータエラーを確認し、Broker の設定を確認してください。
-
監視しなくなったライセンスサーバーのメッセージを削除します。
<host>と<port>を手順 1 の値に置き換えます。DELETE FROM OLM_PERSISTED_MESSAGE WHERE LM_SERVER = '<host>' AND PORT = <port>;すべてのメッセージが監視しなくなったライセンスサーバーのものである場合は、代わりに
TRUNCATE TABLE OLM_PERSISTED_MESSAGE;でテーブルを空にできます。引き続き監視しているサーバーのメッセージは削除しないでください。それらは OpenLM がまだ記録していない使用状況です。 -
その後の数日間、テーブルが再び大きくならないことを確認します。
新しいバージョンの OpenLM SLM では、このテーブルに保持されるメッセージが少なくなるため、OpenLM SLM のアップグレード も効果があります。テーブルが再び大きくなる前に警告を受け取るには、アラート で Persistence queue overflow アラートを有効にします。
不要になったワークステーションをリタイアする
Cleanup Manager は履歴、グループ、ユーザーを削除しますが、ワークステーションは削除しません。たとえば Workstation Agent を誤って多数のマシンにインストールした後など、ワークステーションを削除するには、次の手順を実行します。
- EasyAdmin で Start → Users & Groups → Workstations に移動します。
- 削除するワークステーションを選択し、Retire を選択します。
Workstation Agent がまだ OpenLM SLM に報告しているワークステーションはリタイアできません。先にそのマシンからエージェントをアンインストールしてください。
Workstation Agent が作成し、使用状況のないユーザーも削除するには、作成元を Agent にして Users に対して Cleanup Manager を実行します。Cleanup Manager モジュール を参照してください。
ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。