Pivotal Knowledge Base

フォローする

「ERROR: Canceling query because of high VMEM usage」が表示されクエリが失敗する

環境

製品 バージョン
Pivotal Greenplum(GPDB) 4.3.4.0 以降
OS RHEL 6.x

事象

以下のエラーメッセージが表示され、クエリが失敗する。

ERROR: Canceling query because of high VMEM usage. Used: 7296MB, available 816MB, red zone: 7372MB (runaway_cleaner.c:135)  (seg15 slice6 sdw2.gphd.local:1032 pid=745469) (cdbdisp.c:1528)(File cdbdisp.c;Line 1528;Routine cdbdisp_finishCommand;)].

原因

エラー発生の原因は、GPDB 4.3.4.0から導入された新機能で、メモリ不足によるセグメントのクラッシュを防ぐため、gp_vmem_protect_limit値の90%ものメモリを使用している暴走クエリをキャンセルしたことによる。

上記の出力例は、 gp_vmem_protect_limit 値の8GBの内 7296MB(90%)を使用していたと言える。

解決策

runaway_detector_activation_percent パラメータによって当該新機能の動作を制御することになる。当該パラメータの詳細についてはドキュメントを確認すること。

flightdata=# show runaway_detector_activation_percent;
 runaway_detector_activation_percent
-------------------------------------
 90
(1 row)

SQLクエリを実行しているセッション単位でメモリ消費量を監視するため、"session_state.session_level_memory_consumption" ビューを確認することも有効であろう。当該ビューの詳細についてはドキュメントを確認すること。

コメント

Powered by Zendesk