SAS Cloud Analytic Services: トラブルシューティング
- ディスク領域の不足(CAS_DISK_CACHE)
- permstoreにアクセスできない
- Pending状態のCASポッド
- Linux Out-of-Memory (OOM) Killerによるセッション終了
ディスク領域の不足(CAS_DISK_CACHE)
問題: Failed to
open temporary file for upload (80BFE801): /tmp/cascache1/_f_43d6c87c_7f5d854996e8.sas7bdatのようなメッセージでアップロードが失敗します。
説明: CASコントローラーのCAS_DISK_CACHEのディスク領域が不足しています。
解決方法: ディスク領域を追加します。
permstoreにアクセスできない
問題: 次のメッセージが表示されます。A CAS server
is currently running and has exclusive access to the access control
storage location.
説明: このエラーメッセージは、permstoreが別のCASサーバーによってすでにアクセスされているために、CASサーバーがpermstoreへのアクセスに失敗して終了した場合に表示されます。
Pending状態のCASポッド
問題: 1つ以上のCASポッドがPending状態でスタックしています。
説明: Pending状態のCASポッドは、現在、Kubernetesクラスターでスケジュールできません。この状態は、使用可能なノードに十分なリソース(メモリまたはCPU)がない場合、適切なTaintまたはラベルがない場合、またはポッド/ノードのアフィニティルールが満たされていない場合に発生する可能性があります。
解決方法: ポッドに describe 操作を行うと、スケジューラはPending状態の理由を提供します。
kubectl describe pods podName
不十分なリソースは、リソース要求を調整するか、ポッドを削除するか、クラスターに新しいノードを追加することで修正できます。ノードに適切なTaintとラベルがあり、すべてのアフィニティルールが満たされていることを確認します。
Linux Out-of-Memory (OOM) Killerによるセッション終了
問題: 次のメッセージがサーバーログに表示されます。Child
terminated by signal: PID nnn, signal 9, status 0x00000009.
説明: このエラーメッセージは、セッションが強制終了されたことを示しています。考えられる原因の1つは、メモリ使用量が多いためにOut-of-Memory (OOM) Killerがセッションを終了したことです。
解決方法: OOM Killerが実行される可能性を減らすには、保証されたサービス品質で実行します。
- 次のコマンドでサービス品質を表示できます。
kubectl get pods -l app.kubernetes.io/name=sas-cas-server \ -o=jsonpath='{range .items[*]}{.metadata.name}{": "}{.status.qosClass}{"\n"}'応答がGuaranteed以外の値を示している場合、OOM Killerが発生するリスクが高まります。
- CASポッド内の各コンテナーに対してリソース要求を設定し、同じ値に制限します。次のようなコマンドを使用して、ポッド内のコンテナーを表示できます。
kubectl get pods sas-cas-server-default-worker-0 \ -o=jsonpath='{range .spec.containers[*]}{.name}{"\n"}{end}'典型的な応答には、casおよびsas-backup-agentが含まれます。たとえば、CASの要求と制限を32Giに、バックアップエージェントの要求と制限を2Giに設定できます。
- 次のコマンドを使用して、クラスターのリソース容量を表示できます。
kubectl top nodes - リソース要求の設定については、Adjust RAM and CPU Resources for CAS Servers (SAS Viya: Deployment Guide)を参照してください。
- サーバーが保証されたサービス品質で実行され、セッションが強制終了された場合は、ワーカーノードを追加するか、サーバーで使用可能なメモリの量を増やします。