2020-10-13

license peak usage log


ここでは Houdini 18 から可能になり、18.0.525 以降で改良されたライセンスサーバのピーク使用量ログの取り方と Houdini Launcher 導入によるライセンスツールの変更について説明する。


使用したビルド:
  • Houdini 18.0.597 (18.0.525 以降が基本的には必須) Windows 10
  • 最後に使ったのは Houdini 19.0.455 (ライセンスツール) + 460 (Python3)
  • Python/Hython2.7 または 3.x
    • pytz
    • tzlocal
    • xlsxwriter

1. Houdini 19 および Launcher によるライセンスツールの場所の移動 (Windows)

Windows で Houdini 19 または Launcher を使って ライセンスツールをインストールすると、

  • sesictrl.exe
  • sesinetd.exe
ライセンスツールは、C:\Program Files\Side Effects Software\License Server 以下にインストールされる。他の OS での変更はない。いずれにせよ、古い場所 (C:\Windows\System32) で sesinetd.options を編集してツールの設定を変更しても影響しないので注意が必要。

2. sesinetd.options の設定

C:\Program Files\Side Effects Software\License Server に sesinetd.options を作成、以下のように記述し、sesinetd を再起動することでピークログの記録が始まる。

-V 3 -z 1048576 -U minute -G -l C:/sesinetd.log 

Windows での sesinetd の再起動は Win キー + R で services.msc を実行、Houdini License Server サービスをリストから見つけ、RMB->Restart とする。

-U と -G フラグが正しく認識されれば、ライセンスファイルのあるディレクトリ (C:\Windows\keys)に、sesinetd_peak_usage.bin というファイルができるはず。

3. parsepeakuserlog.py の設定

parsepeakuserlog.py は Houdini 18.0.525 以降に同梱のファイル。これをフルに活用するには 以下のPython 追加モジュールのインストールが必要。

これらのモジュールは 2.7/3.x どちらにも互換がある模様。

pip を使っていない人にとって、最も手っ取り早いインストール方法は、

  1. それぞれのソース (tar.gz) をダウンロードし解凍。
  2. PYTHONPATH を、例えば、C:\Python27\Lib\site-packages (または 3x 以下の同じディレクトリ) に設定。
  3. 解凍したファイルのうち、pytz, tzlocal, xlsxwriter ディレクトリをC:\Python27\Lib\site-packages 以下にコピー。

各モジュールが正しくインストールされれば、
$ hython (または python) parsepeakuserlog.py
としたときに

usage: parsepeakuserlog.py [-h] [--no-progress-info] [--verbosity VERBOSITY]
                           [--time-zone TIME_ZONE]
                           [--group-by {hour,day,month}] [--usage-by-license]
                           [--export-dir EXPORT_DIR]
                           [--export-type {csv,mysql,xlsx}] [--export-users]
                           [--csv-dialect {excel}] [--start-date START_DATE]
                           [--end-date END_DATE]
                           log_file
parsepeakuserlog.py: error: too few arguments
正しいフラグの指定方法と入力ファイルの指定が無いこと以上の警告が出ない。それぞれが無ければ、以下のような警告が出る。
WARNING: The pytz Python module is not installed, so the --time-zone
option is not available and all times will be converted to the local
time zone.  Please install pytz to add proper support for time zones.

WARNING: The xlsxwriter Python module is not installed, so the xlsx
export type is not available. Please install xlsxwriter if you intend
on exporting as xlsx.

pytz がインストールされ、tzlocal がないと以下のような警告が追加で出る。

WARNING: The tzlocal Python module is not installed, so the time
information may be off depending on Daylight Savings Time. Please
install tzlocal to enable accurate timezone information.

4. parsepeakuserlog.py の実行

  1. C:\Windows\keys に書き込み権限があることを確認する。もしくは、C:\Windows\keys\sesinetd_peak_usage.bin を別ディレクトリにコピーする (例: C:\temp\sesinetd_peak_usage.bin)
  2. Houdini の Command Line Tools を実行する。
  3. cd %HFS% (Houdini インストールディレクトリに行く。)
  4. 以下のコマンド実行。
    Python 2.7 版の Houdini の場合
    $ python27\python.exe houdini\python2.7libs\parsepeakuserlog.py C:\temp\sesinetd_peak_usage.bin
    Python 3.7 版の Houdini の場合
    $ python37\python.exe houdini\python3.7libs\parsepeakuserlog.py C:\temp\sesinetd_peak_usage.bin
    Cygwin や Linux および MacOS であれば、環境設定後に環境変数を使って以下のように実行可能。
    $ $HFS/python37/python.exe $HHP/parsepeakuserlog.py sesinetd_peak_usage.bin
    正しく実行されれば、以下のようなメッセージが出る。
    Finished reading usage file..xxx%
    C:\temp 以下には、sesinetd_peak_usage.bin.exported というディレクトリができ、その中に以下ように二つ (以上) のファイルができる。
    • usage_license_table.csv
    • usage_log_FX.csv
Engine (usage_log_Engine.csv) や Mantra (usage_log_Mantra.csv) や Karma (usage_log_Karma.csv) も起動すれば、それぞれのファイルが出来るはず。
これらのファイルは、テキストエディタでも Excel などでも開くことができる。さらに細かい調整は、上記のフラグを見て設定していく。

5. トラブルシューティング

ログが正しく書かれないなど、問題があったときには、sesinetd.options で指定したログファイルの中身を見てみる。例えば、

[2022-01-06 10:46:05] Manager - Invalid log file
等とある場合には、sesinetd_peak_usage.bin が何らかの理由で壊れた可能性がある。そうすると Python コマンドを実行しても usage_license_table.csv にヘッダだけ書かれ中身がない。
  1. sesinetd_peak_usage.bin を作り直してみる
      一度、sesinetd (HoudiniLicenseServer) と hserver (HoudiniServer) を停止し、既存の C:\Windows\keys\sesinetd_peak_usage.bin を別ディレクトリに移し、C:\Windows\keys\ に新しく sesinetd_peak_usage.bin が作られるようにして、sesinetd と hserver を再開する。
      新しく作成された sesinetd_peak_usage.bin からは問題なくログ情報が取れる(はず)。
  2. Cygwin で TZ が正しく認識されていない
      Windows (Cygwin) で実行する場合、環境変数 TZ を tzlocal が理解できる形で再定義しておいた方が良いかもしれない。TZ が "Asia/Japan" などとなっていると以下のようなエラーが起きる。

      Timezone offset does not match system offset: -14400 != 3600. Please, check your config files.

      この場合、(Cygwin で実行している場合)、
      $ export TZ=JST-9
      等と TZ 環境変数を再定義しておく。

リンク


最終更新: 2022-01-06

0 件のコメント:

コメントを投稿