Сбой запроса с ошибкой: отмена запроса из-за высокой загрузки VMEM

У нас есть небольшой массив кластера gpdb. в этом несколько запросов терпят неудачу

Информация, связанная с системой

TOTAL RAM =30G
SWAP =15G
gp_vmem_protect_limit= 2700MB
TOTAL segment = 8 Primary + 8 mirror = 16
SEGMENT HOST=2 
VM_OVERCOMMIT RATIO =72
Used this calc : http://greenplum.org/calc/#

СИМПТОМ

Запрос не выполнен с сообщением об ошибке, показанным ниже:

ERROR: XX000: Canceling query because of high VMEM usage. Used: 2433MB, available 266MB, red zone: 2430MB (runaway_cleaner.c:135)  (seg2 slice74 DATANODE01:40002 pid=11294) (cdbdisp.c:1320)

Мы пытались:

изменены следующие параметры statement_mem со 125 МБ до 8 ГБ MAX_STATEMENT MEMORY с 200 МБ ДО 16 ГБ

Не уверен, что именно здесь нужно изменить. Тем не менее, пытаюсь понять основную причину ошибки.

Любая помощь в этом будет высоко оценена?


person vs0731    schedule 05.09.2017    source источник


Ответы (1)


gp_vmem_protect_limit для каждого сегмента. У вас есть 16 сегментов. исходя из ваших сегментов и vm_protect, вам нужно 2700 МБ X 16 общей памяти.

person Sung Yu-wei    schedule 05.09.2017
comment
спасибо, у нас есть общая доступная память vm = 45 ГБ. в таком случае какой должен быть vmprotect limit 1400 ? - person vs0731; 05.09.2017
comment
16 сегментов на хост-сервере с 2 сегментами. - person vs0731; 05.09.2017
comment
коэффициент overcommit установлен на 75, я не думаю, что у вас есть 45GB vmem. 30*0,75 + 15 ~= 37,5 г. Вам нужно зарезервировать память для ОС. Допустим, вы зарезервировали 32 ГБ для GPDB, тогда 32/16 = 2 ГБ. Установите защиту vm на 2048 МБ. Обратите внимание, что GPDB не любит перераспределение памяти. У вас 30 ГБ физической памяти, но у вас сейчас 37,5 ГБ адресов vmem. Кроме того, назначьте количество сегментов в зависимости от ядер вашего процессора. вы также не хотите, чтобы gpdb перегружал процессор. - person Sung Yu-wei; 05.09.2017
comment
Эта ошибка вызвана runaway_detector. Вы можете либо отключить runaway_detector, либо не запускать запросы от имени gpadmin. - person Sung Yu-wei; 05.09.2017
comment
Спасибо за хорошую мысль. Я собираюсь проверить env. - person vs0731; 05.09.2017
comment
После отключения параметра runaway_detector_activation_percent. показывает ошибку OOM - person vs0731; 05.09.2017
comment
Здесь все еще существует такая же ошибка. gp_vmem_limit_per_query установлено на 0 (по умолчанию), что здесь установить. я пытаюсь понять - person vs0731; 07.09.2017
comment
Тем не менее, om существует - person vs0731; 10.09.2017