チューニングパラメータ

本付録では、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:

ハートビート間隔を指定します。デフォルトは、15000msecです。

--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通信におけるメッセージ最大サイズを指定します。デフォルトは、10Mbytesです。

--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:

データベース製品を指定します。mysqlpostgresqlsqliteが選択できます。デフォルトは、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_modeTrueの場合は、FrontalでリアルタイムにHTTP通信をモニタリングできます。システムの負荷を低減したい場合はFalseにすることでトレースを抑制できます。 deep_monitoringTrueの場合は、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_modeTrueに設定することを推奨しています。さらに、通信不可を軽減したい場合は、ScenarioTransactionサーバを同居させて稼働することも可能です。この場合、双方の間での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サーバの予約実行計画の処理間隔を指定します。デフォルトは、10000msecです。10000msec間隔で予約情報をサーチして、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の状態監視間隔を指定します。デフォルトは、10000msecです。

--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です。
gitflowgitlabflowqmonusflowが選択できます。

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.flake8tox.inisetup.cfgなどの設定ファイルを指定してください