Hi, Aleksey.
You are correct. The gp_vmem_protect_limit is not causing the error.
You seem to be using resource groups and the admin_group (group id = 6438) does not have enough memory assigned and there is very little shared memory available.
So before running the vacuum, you will need to increase the amount of available memory to the admin_group.
You can set the limits back after the vacuum is completed.
Even reducing the amount of RAM allocated to other groups so the Global Shared Memory is increased, may be sufficient.
See https://gpdb.docs.pivotal.io/6-16/admin_guide/workload_mgmt_resgroups.html#topic8339717 for more details on the resource groups.
Regards,
joe.
--
You received this message because you are subscribed to the Google Groups "Greenplum Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
gpdb-users+...@greenplum.org.
To view this discussion on the web visit
https://groups.google.com/a/greenplum.org/d/msgid/gpdb-users/CAPJYFP_naajZc%3DcOjN6ZUXOcpfC86qTiUTpoTsFtMexpGa_W9A%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/greenplum.org/d/msgid/gpdb-users/1DCCEB28-35D4-4BB8-9A4F-71EC96CC6692%40vmware.com.
Hi.
That does not sound correct. It will reuse the RAM assigned to the process./connection.
How many tables are in the list? And how many tables get vacuumed before it starts to fail?
I would think that the group has very little memory allocated to it. From the original message:
current group id is 6438, group memory usage 363 MB, group shared memory quota is 210 MB, slot memory quota is 15 MB, global freechunks memory is 15 MB, global safe memory threshold is 15 MB
363 MB of RAM seems very small. If you connect and disconnect for each table/vacuum, it will introduce quite a lot of overhead.
I would think the best option is to increase the RAM allocated while the VACUUM is being done.
Hi.
Ultimately, it needs more RAM in the resource group to complete as it is at the moment.
There may be some small memory leak, but generally it will reuse the memory allocated.
Would probably need a support ticket to be opened to get this investigated.
If you cannot change the resource group config, then getting the list of tables and close and open a new connection every 500 or 1000 tables vacuumed to allow it clean up memory may help you.
opening and closing the connection on every table would be extreme and cause a lot of overhead.
Regards,
joe.
From: Aleksey Kashin <aleksey...@gmail.com>
Date: Tuesday 29 June 2021 at 17:08
To: Joe Manning <mann...@vmware.com>
Subject: Re: [gpdb-users] gp_vmem_protect_limit and resource group based resource management
Here is a stack trace from master logs. Maybe it's ok due to the error.
2021-06-29 05:15:03.650820 MSK,"gpadmin","prod",p1101423,th1201042624,"[local]",,2021-06-28 23:00:01 MSK,0,con49069,cmd3445,seg-1,,dx306718,,sx1,"ERROR","XX000","Canceling query because of high VMEM usage. current group id is 6438, group memory usage 363 MB, group shared memory quota is 210 MB, slot memory quota is 15 MB, global freechunks memory is 15 MB, global safe memory threshold is 15 MB (runaway_cleaner.c:197) (seg73 X.X.X.X:6001 pid=709512) (runaway_cleaner.c:197)",,,,,,"VACUUM ""schema"".""tablename""",0,,"runaway_cleaner.c",197,"Stack trace:
1 0x559fb45266d1 postgres errstart + 0x251
2 0x559fb45a3efd postgres cdbdisp_get_PQerror + 0xbd
3 0x559fb45a406d postgres cdbdisp_dumpDispatchResult + 0x3d
4 0x559fb45a4150 postgres cdbdisp_dumpDispatchResults + 0x30
5 0x559fb45a1718 postgres cdbdisp_getDispatchResults + 0x88
6 0x559fb45a5430 postgres <symbol not found> + 0xb45a5430
7 0x559fb4290a5e postgres <symbol not found> + 0xb4290a5e
8 0x559fb4291267 postgres vacuum + 0x387
9 0x559fb441f9c4 postgres standard_ProcessUtility + 0x6e4
10 0x559fb441c38e postgres <symbol not found> + 0xb441c38e
11 0x559fb441d225 postgres <symbol not found> + 0xb441d225
12 0x559fb441e058 postgres PortalRun + 0x1e8
13 0x559fb4417c11 postgres <symbol not found> + 0xb4417c11
14 0x559fb441b965 postgres PostgresMain + 0x1cc5
15 0x559fb40d2176 postgres <symbol not found> + 0xb40d2176
16 0x559fb43b4ecd postgres PostmasterMain + 0x11cd
17 0x559fb40d3af8 postgres main + 0x498
18 0x7f3c44193bf7 libc.so.6 __libc_start_main + 0xe7
19 0x559fb40dfb2a postgres _start + 0x2a
"
вт, 29 июн. 2021 г. в 18:46, Aleksey Kashin <aleksey...@gmail.com>: