チューニングパラメータ
本付録では、Qmonus SDKの起動パラメータにおけるチューニング可能項目を説明します。
--timezone
:
タイムゾーンを指定します。デフォルトは、Asia/Tokyo
です。尚、Scheduleサーバは、JSTとUTCのみをサポートしているため、Asia/Tokyo
と指定した場合は、JSTでそれ以外はUTCで動作することに注意が必要です。
--curl_max_clients
:
curlクライアントの同時最大接続数を指定します。デフォルトは、256
です。
--heartbeat_url
:
定期的に外部のエンドポイントにハートビートを送信するためのURLを指定します。デフォルトは、None
です。指定されたURLではPOSTメソッドを受け付ける必要があります。ボディーにはQmonus SDKインスタンスのシステム情報が格納されます。
--heartbeat_interval
:
ハートビート間隔を指定します。デフォルトは、15000
msecです。
--hotspot_script_timeout
:
各種プラグインで実行するユーザカスタムコードの実行タイムアウト値を指定します。デフォルトは、7200.0
秒です。
--callout_connect_timeout
:
HTTP通信のデフォルト接続タイムアウト値を指定します。デフォルトは、60
秒です。callout
組込み関数で個別指定しない場合は、本パラメータが適用されます。
--callout_request_timeout
:
HTTP通信のデフォルト要求タイムアウト値を指定します。デフォルトは、60
秒です。callout
組込み関数で個別指定しない場合は、本パラメータが適用されます。
--address
:
サーバアドレスを指定します。デフォルトは、127.0.0.1
です。
--port
:
HTTP待ち受けポート番号を指定します。デフォルトは、9099
です。
--ws_port
:
Websocketのポート番号を指定します。デフォルトは、None
です。None
の場合は、--port
と同一ポートとなります。
Warning
WebSocketポートを指定する場合は、Frontal側のWebSocket接続先ポートも変更する必要があります。
--websocket_aging_timeout
:
Qmonus SDKのFrontalとバックエンドサーバの間で確立するWebsocketはキープアライブでセッションを維持しており、このセッションのエージングタイムアウトを指定します。
デフォルトは、180
秒です。無通信状態でタイムアウトが発生した場合、バックエンドサーバはWebsocketを切断します。
--ws_max_message_size
:
Websocket通信におけるメッセージ最大サイズを指定します。デフォルトは、10
Mbytesです。
--redis_conn_pool_min
:
Qmonus SDKは、プラグイン定義情報や揮発性が高く高速な入出力を要求するトランザクション情報をRedisメモリストアに蓄積します。Redisコネクションプールの最小サイズを指定します。デフォルトは、1
です。
--redis_conn_pool_max
:
Redisコネクションプールの最大サイズを指定します。デフォルトは、128
です。
--pool_rebuild_retry_count
:
Redisコネクションプールから有効な接続が得られない場合にプールの再生成を試行する回数を指定します。リトライオーバした場合、Qmonus SDKインスタンスは、OutOfServiceに遷移して再開を試みます。
--db_product
:
データベース製品を指定します。mysql
、postgresql
、sqlite
が選択できます。デフォルトは、mysql
です。
--db_host
:
データベースサーバのアドレスを指定します。デフォルトは、localhost
です。
--db_port
:
データベースサーバのポート番号を指定します。デフォルトは、3306
です。
--db_name
:
データベース名を指定します。デフォルトは、axis
です。
--db_user
:
データベースのユーザ名を指定します。デフォルトは、axis
です。
--db_pass
:
データベースのパスワードを指定します。デフォルトは、axis
です。
--db_pool_min
:
データベースのコネクションプールの最小サイズを指定します。デフォルトは、1
です。
--db_pool_max
:
データベースのコネクションプールの最大サイズを指定します。デフォルトは、10
です。低めの設定数となっているため、多重アクセス数に応じて適正な値を設定してください。また、データベース側でも設定数を満たす同時コネクション数を受け付ける設定になっているかを確認してください。
--db_pool_recycle
:
無通信状態のデータベース接続を解放するまでの時間を指定します。デフォルトは、30
秒です。
--db_failover_wait_retry_count
:
データベースのフェイルオーバタイムアウトを待ち合わせるリトライ回数を指定します。デフォルトは、12
です。
--db_failover_wait_retry_interval
:
データベースのフェイルオーバタイムアウトを待ち合わせるリトライ間隔を指定します。デフォルトは、5
です。
--db_charset
:
Pluginに定義されたテーブルの文字セットを指定します。こちらのパラメータはdatabaseごとに指定する文字セットです。デフォルトは、utf8
です。
--db_collate
:
Pluginに定義されたテーブルの照合順序を指定します。こちらのパラメータはdatabaseごとに指定する照合順序です。デフォルトは、None
です。
--character-set-server
:
mysqlの文字セットを指定します。こちらのパラメータはサーバー起動時に指定される文字セットです。
Tip
mysql8.0よりutf8はutf8mb3のエイリアスとなっているため、utf8を指定た場合utf8mb3が設定されます。
--collation-server
:
mysqlの照合順序を指定します。こちらのパラメータはサーバー起動時に指定される照合順序です。
--slack_notify_token
:
slack
組込み関数で利用するSlackのデフォルトAPIトークンを指定します。デフォルトは、None
です。詳細は、Docs » リファレンス » ビルトインオブジェクト
に記載されているslack
関数を参照ください。
--closedloop_default_apigw_host
:
ClosedLoopを実行しているコンテナにアクセスするためのエンドポイントを指定する起動パラメーターです。デフォルトはNone
です。
--statistics_expire_seconds
:
APIGWのAPI統計情報の保持期間を指定します。デフォルトは、86400
秒です。
--trace_mode
:
APIGWのAPIトレース有効化モードを指定します。デフォルトは、True
です。False
の場合は、API通信をモニターできなくなります。
--deep_monitoring
:
APIGWのAPIトレースでHTTPボディー情報を含めるか否かを指定します。デフォルトは、True
です。False
の場合は、API通信モニターでボディー情報は非表示になります。
Note
trace_mode
がTrue
の場合は、FrontalでリアルタイムにHTTP通信をモニタリングできます。システムの負荷を低減したい場合はFalse
にすることでトレースを抑制できます。
deep_monitoring
がTrue
の場合は、Frontalのモニタリングでボディーの中身まで確認できます。システムの負荷を低減したい場合はFalse
にすることでボディー情報の転送を抑制できます。
--credential_expires
:
APIGWのQmonus認証クレデンシャルの有効時間を指定します。デフォルトは、24
時間です。
--hotspot_sharing_mode
:
Scenarioサーバにロードされているプラグインを同期するモードです。デフォルトは、False
です。Scenarioサーバ以外のロールで例えば、APIGWのforbidden_process
などのカスタムスクリプトからATOMやデータベース操作をする場合は、True
に設定してください。
--local_scope_auth_mode
:
APIGWのルーティングスコープがlocal
の場合にQmonus認証を有効化するか否かを指定します。デフォルトは、False
です。詳細は、Docs » API Gateway » APIルーティング
に記載されているAPIの認証スコープについて
を参照ください。
--lambda_terminate_poll_interval
:
APIGWのLambdaイベントチェインの終端待ち合わせタイマーのポーリング間隔を指定します。デフォルトは、5
秒です。
--lambda_terminate_poll_timeout
:
Lambdaイベントチェインの終端待ち合わせるタイマーのタイムアウトを指定します。デフォルトは、300
秒です。
--additional_transmission_headers
:
APIGWではHTTP応答に含まれる拡張ヘッダは原則透過しませんが、透過させたい拡張ヘッダがある場合は、カンマ区切りで指定できます。デフォルトでは、x-subject-token
のみが指定されています。
Warning
拡張ヘッダのキー名は、lowercaseで指定する必要があります。
--parallel_queue_bulk_read_size
:
APIGWのキューイング機能でparallel
タイプのキューを利用する場合に各ワーカーが一括で読み出す件数を指定します。デフォルトは、32
です。
--file_upload_api_path
:
APIGWが提供するファイルアップロードAPIのリクエストパスを指定します。デフォルトは、None
です。デフォルト状態では、/upload/{filepath}
で待ち受けます。
--transaction_timeout
:
トランザクションのデフォルトタイムアウトを指定します。デフォルトは、600
秒です。
--transaction_log_backup_mode
:
トランザクションのログをデータベースに履歴保存するモードを指定します。デフォルトは、False
です。
--transaction_destroy_delay
:
終了済のトランザクションをメモリストアから消滅させるまでの保護時間を指定します。デフォルトは、3600
秒です。
--plugins_upload_chunk_size
:
Scenarioのプラグインインストール時に一括でアップロードする件数を指定します。デフォルトは、256
です。
--template_params_default_expire
:
Scenarioのテンプレートサービスでレンダリングモードがdbモード
の場合にexpire_seconds
を指定しなかった場合は本パラメータがデフォルトで適用されます。デフォルトは、3600
秒です。
--model_pkey_default_name
:
Scenarioのモデルサービスでプライマリキーを指定しなかった場合にデフォルトで生成されるプライマリキー名を指定します。デフォルトは、__id__
です。
--model_pkey_default_uuid
:
Scenarioのモデルサービスでプライマリキーを指定しなかった場合にデフォルトで生成されるプライマリキーの型をUUIDとするかを指定します。デフォルトは、True
です。
--atom_recovery_policy
:
トランザクションリカバリ時のATOMインスタンスの復元をトランザクションサーバにスナップショットされているデータをソースとするかデータベースに永続化されているデータをソースとするかを指定します。デフォルトは、db
です。トランザクションサーバのスナップショットから復元したい場合は、transaction
を指定してください。
--transaction_direct_mode
:
Transactionサーバへの直接通信可否モードを指定します。デフォルトは、False
です。
--transaction_server_address
:
Transactionサーバのアドレスを指定します。デフォルトは、127.0.0.1
です。
--transaction_server_port
:
Transactionサーバのポート番号を指定します。デフォルトは、9101
です。
Tip
ScenarioサーバからTransactionサーバ間の通信は、デフォルトでは、APIGWを介して行います。そのため、FrontalのAPI通信モニターでこれらの内部通信をモニタリングできます。しかしながら、プロダクション環境などでは通信負荷を軽減するため、transaction_direct_mode
をTrue
に設定することを推奨しています。さらに、通信不可を軽減したい場合は、Scenario
とTransaction
サーバを同居させて稼働することも可能です。この場合、双方の間でのHTTP通信は発生せず、ScenarioサーバはTransactionをライブラリとして利用するため高速です。注意点として同居することにより、Redisメモリストアも同居するため、デプロイ戦略におけるデータ移行は留意する必要があります。
--python_default_imports
:
デフォルトでインポートするPythonモジュールをカンマ区切りで指定できます。指定するとカスタムスクリプト空間ではimport済みの状態になります。デフォルトは、None
です。
Note
python_default_imports
で指定せずともカスタムスクリプト空間で以下のモジュールは、デフォルトでimportされています。
traceback
asyncio
asyncssh
aiohttp
io
re
time
uuid
json
jsonschema
yaml
csv
math
datetime
copy
base64
hashlib
xmltodict
ipaddress
urllib
sqlalchemy
statistics
--job_queue_size
:
ScenarioサーバのJobサービスにおけるJobキューの長さを指定します。デフォルトは、65535
です。
--job_queue_bulk_read_size
:
JobコンシューマがJobキューから一括で読み取るサイズを指定します。デフォルトは、32
です。
--minimum_life_term
:
Scheduleサーバのterm型のWebフック予約の最小時間幅を指定します。デフォルトは、3
分です。
--preset_execution_time
:
Scheduleサーバが予約実行タイマーを準備する時間を指定します。デフォルトは、5
分です。これは予約実行時刻の5
分前にデータベースから予約情報がロードされ、メモリ上に実行タイマーを形成するという意味です。
--execution_guard_time
:
Scheduleサーバが予約変更を受け付け可能なガード時間を指定します。デフォルトは、30
秒です。予約実行時刻の30秒前までは変更を受け付けます。
--execution_delay_guard_time
:
Scheduleサーバの予約実行遅延保護時間を指定します。デフォルトは、60
分です。予約実行時刻の前後の実行遅延保護時間内に同一リソースに対する予約は存在できません。
--birth_delay_limit_time
:
Scheduleサーバの予約実行開始遅延の猶予時間を指定します。デフォルトは、3
分です。予約実行時刻を3
分経過しても開始されない場合は開始失敗状態に遷移します。
--death_retry_interval
:
Scheduleサーバのterm型予約における終了予約の実行リトライ間隔を指定します。デフォルトは、1
分です。
--schedule_history_duration_days
:
Scheduleサーバの予約実行履歴の保持期間を指定します。デフォルトは、1
日です。
--timedout_queue_max_size
:
Scheduleサーバの予約実行が発火すると予約アクション実行待ちキューにエントリされますが、この実行待ちキューの最大長を指定します。デフォルトは、256
です。
--booking_plan_watch_inteval
:
Scheduleサーバの予約実行計画の処理間隔を指定します。デフォルトは、10000
msecです。10000
msec間隔で予約情報をサーチして、preset_execution_time
にマッチするものを実行タイマーにセットします。
--master_consume
:
Lambda、Collector、Reflectorで稼働する各種コンシューマをマスターノードでも稼働させるかを指定します。デフォルトは、True
です。
--event_queue_max_size
:
Lambdaのイベントキュー最大サイズを指定します。デフォルトは、4096
です。
--lambda_chain_watch_inteval
:
Lambdaのイベントチェインの生存可能期限を監視する監視する間隔を指定します。デフォルトは、180
秒です。
--ssh_default_timeout
:
Lambdaや組込関数で利用できるSSHプロトコルのデフォルトタイムアウトを指定します。デフォルトは、60
秒です。
--lambda_queue_bulk_size
:
Lambdaイベントコンシューマがイベントキューから一括読み取りするサイズを指定します。デフォルトは、32
です。
--consume_delegate
:
Collectorの収集ターゲット情報のキューからの読み取りを外部のプログラムに委譲するモードです。デフォルトは、False
です。True
に設定した場合、収集ターゲットのキューエントリはCollectorが実施しますが、キューからの収集ターゲットの刈り取り及び収集、収集データのキューイングが外部のプログラムで実行しなければなりません。
--collection_trigger_inteval
:
Collectorの収集ターゲット情報の決定周期を指定します。デフォルトは、60
秒です。
--collection_bulk_size
:
Collectorの収集ターゲット情報の一括読み取りサイズを指定します。デフォルトは、128
です。
--collector_job_queue_max_size
:
Collectorの収集ターゲット情報のキューイング最大サイズを指定します。デフォルトは、3000
です。これはデフォルトでは、60
秒間で3000
台の機器への収集を最大スケールの設定となっていることを意味します。
--collector_data_queue_max_size
:
Collectorが収集したデータをキューイングする最大サイズを指定します。デフォルトは、65535
です。
--snmp_default_timeout
:
SNMPのデフォルトタイムアウトを指定します。デフォルトは、5
秒です。
--snmp_default_retries
:
SNMPのデフォルトリトライ回数を指定します。デフォルトは、3
回です。
--default_max_repetitions
:
SNMPのBULK-GETのデフォルトmaxRepetitionsを指定します。デフォルトは、64
です。
--reflection_bulk_size
:
Reflectorの収集データを一括読み取りサイズを指定します。デフォルトは、48
です。
--metrics_server_type
:
Reflectorのメトリック転送先のサーバタイプを指定します。デフォルトは、zabbix
です。現在は、zabbix
のみサポートしています。
--metrics_server_endpoints
:
Reflectorのメトリック転送先のサーバエンドポイントを指定します。デフォルトは、None
です。カンマ区切りで複数指定することができます。
--metrics_server_connect_timeout
:
Reflectorのメトリック転送先のサーバ接続タイムアウトを指定します。デフォルトは、3
秒です。
--metrics_send_bulk_size
:
Reflectorのメトリック転送時に一括転送するデータ件数を指定します。デフォルトは、1024
です。
--metrics_send_retry_interval
:
Reflectorのメトリック転送のリトライ間隔を指定します。デフォルトは、1
秒です。
--metrics_send_retry_count
:
Reflectorのメトリック転送のリトライ回数を指定します。デフォルトは、3
です。
--metrics_send_unit
:
Reflectorのメトリック一括転送の単位を指定します。デフォルトは、None
です。host
単位とkey
単位が選択できます。
--metrics_send_queue_max_size
:
Reflectorのメトリック転送キューの最大サイズを指定します。デフォルトは、65535
です。
--metrics_sent_backup_mode
:
Reflectorの送信済データをデータベースに履歴保持するかを指定します。デフォルトは、False
です。
--metrics_sent_expire_days
:
Reflectorの送信済データの履歴保持期間を指定します。デフォルトは、1
日です。
--metrics_sent_queue_max_size
:
Reflectorの送信済データのキューイング最大サイズを指定します。デフォルトは、65535
です。
--metrics_unsent_backup_mode
:
Reflectorの未送信データをデータベースに履歴保持するかを指定します。デフォルトは、True
です。
--metrics_unsent_expire_days
:
Reflectorの未送信データの履歴保持期間を指定します。デフォルトは、1
日です。
--metrics_unsent_queue_max_size
:
Reflectorの未送信データのキューイング最大サイズを指定します。デフォルトは、65535
です。
--metrics_resend_queue_max_size
:
Reflectorの再送信データのキューイング最大サイズを指定します。デフォルトは、65535
です。
--collection_sniffer_mode
:
Reflectorが刈り取った収集データをスニファーするモードを指定します。デフォルトは、False
です。
--collection_sniffer_bulk_size
:
Reflectorがスニファーしたデータキューから一括で読み取るサイズを指定します。デフォルトは、256
です。
--collection_sniffer_queue_max_size
:
Reflectorがスニファーしたデータをキューイングする最大サイズを指定します。デフォルトは、65535
です。
--worker_watch_interval
:
Workerの状態監視間隔を指定します。デフォルトは、10000
msecです。
--keystone_userid
:
デフォルトのkeystoneユーザIDを指定します。デフォルトは、None
です。
--keystone_username
:
デフォルトのkeystoneユーザ名を指定します。デフォルトは、None
です。
--keystone_password
:
デフォルトのkeystoneユーザパスワードを指定します。デフォルトは、None
です。
--keystone_domain_id
:
デフォルトのkeystoneユーザドメインIDを指定します。デフォルトは、default
です。
--keystone_domain_name
:
デフォルトのkeystoneユーザドメイン名を指定します。デフォルトは、Default
です。
--keystone_project_id
:
デフォルトのkeystoneユーザプロジェクトIDを指定します。デフォルトは、None
です。
--keystone_project_name
:
デフォルトのkeystoneユーザプロジェクト名を指定します。デフォルトは、None
です。
--github_access_token
:
githubプライベートアクセストークンを指定します。デフォルトは、None
です。
--github_plugins_repos
:
githubプラグインリポジトリを指定します。デフォルトは、None
です。カンマ区切りで複数指定することができます。
--github_main_branch
:
githubリポジトリのメインブランチ名を指定します。デフォルトは、main
です。
--github_default_branch
:
githubリポジトリからデフォルトでcheckoutするブランチを指定します。デフォルトは、develop
です。
--gitflow_style
:
gitフローのスタイルを指定します。デフォルトは、gitlabflow
です。
gitflow
、gitlabflow
、qmonusflow
が選択できます。
Note
githubの設定は、Docs » リファレンス » ワークスペース
を参考にしてください。
Note
Kernel parameters
以下のカーネルパラメータ設定を推奨しています。
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10
--code_style
:
プラグインのpythonコードフォーマットの設定ファイルを指定します。デフォルトは、None
です。
pep8, pycodestyle, flake8などのセクションを記述した.pep8
、.flake8
、tox.ini
、setup.cfg
などの設定ファイルを指定してください