オンプレミスのランタイムとパフォーマンスの問題
このガイドでは、オンプレミスエージェント(OPA)のランタイム中に発生する可能性がある問題について説明します。 これには、ヒープスペースエラー、大きなAPIレスポンスによるクラッシュ、ロギングエラー、ロングクエリエラー、データベースコネクションの切断が原因で停止するジョブが含まれます。
Javaヒープ領域エラー
次のエラーログは、エージェントがメモリ上限に達したことを示します:
java.lang.OutOfMemoryError: Java heap spaceこのエラーは、大きなジョブまたはペイロードを処理するための十分なメモリがOPAにないことを示します。 デフォルトでは、ヒープサイズは利用可能なシステムメモリの一部に設定されます。
問題を解決するには、run.shファイルを開き、-Xmxフラグを調整します。 たとえば、-Xmx10Gに増やして、10 GBのヒープメモリを割り当てることができます。
大きなレスポンスによる高いメモリ利用状況
エージェントが大きなAPIレスポンスをメモリにバッファリングすると、クラッシュまたは速度低下が発生する場合があります。 デフォルトでは、実行中にレスポンス全体が読み込まれるため、メモリ利用状況が増加します。
OPAバージョン2.7.1以降では、config.ymlに次のフラグを追加することで、設定ファイルでレスポンスのバッファリングを無効にできます:
agent:
disable_response_buffering: trueOPAがインストールされているサーバーでのゲートウェイ名の解決
OPAがインストールされているサーバーでWorkatoゲートウェイ名を解決する際に、次のエラーが発生する場合があります:
sg3.workato.comsg4.workato.com
ゲートウェイ名を解決するには、次のトラブルシューティング手順を実行します:
OPAインスタンスが実行されているサーバーに接続します。
サーバーのコンソールを開きます。
Windows、Linux、MacOSサーバーからゲートウェイ名を解決できるかどうかを確認するには、次のコマンドを実行します:
nslookup sg3.workato.com
LinuxおよびMacOSサーバーでゲートウェイ名を解決できるかどうかを確認するには、次のコマンドを実行します:
dig sg3.workato.com
出力は次のようになります:
sg3.workato.com canonical name = public-v10-awsprod-opg3-nlb-d6da47859547995a.elb.us-east-1.amazonaws.com.
Name: public-v10-awsprod-opg3-nlb-d6da47859547995a.elb.us-east-1.amazonaws.com
Address: 54.224.75.148
Name: public-v10-awsprod-opg3-nlb-d6da47859547995a.elb.us-east-1.amazonaws.com
Address: 52.206.161.203
Name: public-v10-awsprod-opg3-nlb-d6da47859547995a.elb.us-east-1.amazonaws.com
Address: 52.204.114.159この成功出力は、ドメイン名を解決できることを示します。
ゲートウェイ接続の確認
OPAがインストールされているサーバーで、ゲートウェイ接続の確立に関する問題が発生する場合があります。
ゲートウェイ接続を確認するには、次のトラブルシューティング手順を実行します:
OPAインスタンスが実行されているサーバーに接続します。
サーバーのコンソールを開きます。
Windows、Linux、MacOSサーバーからゲートウェイ名を解決できるかどうかを確認するには、次のコマンドを実行します:
curl -k -vvv -GET --no-alpn --key conf/cert.key --cert conf/cert.pem https://sg3.workato.com/gateway/ping出力は次のようになります:
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
*
(LINES SKIPPED)
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Mon, 25 Jul 2022 21:33:42 GMT
< Content-Length: 81
<
{"gateway_version":"1.0.1","os_platform":"linux","os_release":"4.19.0-10-amd64"}サーバー証明書チェーンの検証
OPAがインストールされているサーバーで、サーバー証明書チェーンの検証に関する問題が発生する場合があります。
サーバー証明書チェーンを検証するには、次のトラブルシューティング手順を実行します:
OPAインストールフォルダに移動します。 インストールの詳細については、オンプレミスへのアクセスドキュメントを参照してください。
Workatoルート証明書をダウンロードし、OPAインストールフォルダに保存します。 手順については、HTTP SSLドキュメントを参照してください。
LinuxおよびMacOSでは次のコマンドを実行します:
curl -vvv -GET --no-alpn --cacert root_ca_cert.pem --key conf/cert.key --cert conf/cert.pem https://sg3.workato.com/gateway/ping想定される出力には次の内容が含まれます:
SSL certificate verify ok
これは、サーバー証明書チェーンが正常に検証されたことを示します。
OPAがログの作成を停止した場合
Linuxで実行している場合、OPAがログの生成を停止する問題が発生する場合があります。 この問題は、ディスクに空き容量が残っていない場合、またはロギングレベル設定が正しくない場合に発生します。 この問題を解決するには、次のトラブルシューティング手順を実行します:
ディスクに空き容量が残っているかどうかを確認するには、次のコマンドを実行します:
df -h
cat /etc/fstab
parted -lこれにより、問題がディスク容量に関連しているかどうかを確認できます。
ログ記録の権限が正しいことを確認します。
ログ権限を表示するには、ls -lah /var/log/workato-agentを実行します。
ユーザーまたはグループにworkatoの権限が設定されていない場合は、次のコマンドを実行します:
chown -R workato:workato /var/log/workato-agentログ記録レベルが設定ファイルでdebugに設定されていることを確認します。 例:
logger: debug
切断されたTCPコネクションが原因でジョブが無期限に停止する
エラーやタイムアウトが発生せずにハングするジョブは、多くの場合、OPAとデータベース間のアイドル状態のTCPコネクションがファイアウォールまたはNATデバイスによって暗黙的に切断されることが原因です。 ソケットを保持しているJVMスレッドは通知を受け取らず、レスポンスを無期限に待機します。
OSレベルでTCP keepaliveを構成して、アイドル状態のコネクションを定期的にプローブし、コネクションが切断されたタイミングを検出できます。これにより、停止したスレッドが失敗してリカバリできるようになります。
グローバル設定
キープアライブ設定は通常、Workato OPAだけでなく、ホスト上のすべてのアプリケーションに影響します。
Linuxのキープアライブ設定の構成
Linuxでキープアライブ設定を構成するには、次の手順を実行します。
再起動後も維持されるキープアライブ設定を構成するには、/etc/sysctl.confに次の行を追加します。
net.ipv4.tcp_keepalive_time = INITIAL_WAIT
net.ipv4.tcp_keepalive_intvl = INTERVAL
net.ipv4.tcp_keepalive_probes = NUMBER_OF_PROBESプレースホルダーを、ご利用のネットワークEnvironmentに適した値に置き換えます。
| パラメーター | 説明 |
|---|---|
INITIAL_WAIT | 最初のプローブが送信されるまでの非アクティブな秒数。 |
INTERVAL | 後続のプローブ間の秒数。 |
NUMBER_OF_PROBES | コネクションが停止していると見なされるまでの、応答のないプローブの数。 |
たとえば、次の構成では、停止しているコネクションを最大5分15秒で検出します。
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_intvl = 5
net.ipv4.tcp_keepalive_probes = 3変更を保存してから、再起動せずに適用するために次のコマンドを実行します。
sudo sysctl -pWindowsのキープアライブ設定の構成
Windowsでキープアライブ設定を構成するには、次の手順を実行します。
Windowsレジストリエディター(Regedit)を開きます。
次のパスに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ParametersParametersキーの下に、次の2つのDWORD値を作成または更新します。
| レジストリ値 | 説明 |
|---|---|
KeepAliveTime | 最初のプローブが送信されるまでの非アクティブなミリ秒数。 |
KeepAliveInterval | 後続のプローブ間のミリ秒数。 |
たとえば、KeepAliveTimeを300000に、KeepAliveIntervalを5000に設定すると、5分間非アクティブな状態が続いた後に検出を開始し、コネクションの停止が確認されるまで5秒ごとにプローブを送信します。
変更を保存してから、変更を有効にするためにマシンを再起動します。
長いクエリエラー
MySQLなどのデータベースコネクターでオンブレミスファイルコネクターを使用すると、次のエラーが発生する場合があります:
Long query error: java.lang.IllegalArgumentException: Missing files profile laws rds cxこのエラーは、オンブレミスファイルコネクターとデータベースコネクターが異なるオンプレミスグループを使用している場合に発生します。 このエラーを解決するには、両方のコネクションで同じオンプレミスグループ内のエージェントを使用するように設定します。
Last updated: