Re: Odd out of memory problem.

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Greg Stark <stark(at)mit(dot)edu>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Odd out of memory problem.
Date: 2012-03-26 16:41:19
Message-ID: 4F709C2F.2060407@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 03/26/2012 12:20 PM, Greg Stark wrote:
> On Mon, Mar 26, 2012 at 4:03 PM, Andrew Dunstan<andrew(at)dunslane(dot)net> wrote:
>> TupleHashTable: 619175960 total in 95 blocks; 821528 free
>> (331 chunks); 618354432 used
> I think the plan you showed isn't the plan that's running out of
> memory. I think it's running out of memory because it's using a Hash
> Aggregate and underestimating the number of distinct elements. I would
> set enable_hash_aggregate=false for this query (not for the whole
> server, hash aggregates are quite useful in general).
>
> This is a long-standing problem with hash aggregates. The problem is
> that we don't have a clever way to fall back to a non-hash-aggregate
> if the original estimated memory usage turns out to be way off. Just
> spilling to disk the way hash joins do would be horrendously
> expensive, we think. If we had an approach to doing so it would be
> very useful because simply running out of memory is kind of rude.

Ugh, Ok, thanks for the explanation.

So it looks like I'm running into two separate memory problems. Here's a
trace from the other one

cheers

andrew

TopMemoryContext: 49816 total in 6 blocks; 6840 free (9 chunks);
42976 used
Operator class cache: 8192 total in 1 blocks; 3848 free (0
chunks); 4344 used
Filesystem: 8192 total in 1 blocks; 7872 free (0 chunks); 320 used
TopTransactionContext: 213901336 total in 10 blocks; 1796344 free
(25 chunks); 212104992 used
Combo CIDs: 755490840 total in 100 blocks; 5161072 free (381
chunks); 750329768 used
MessageContext: 73728 total in 4 blocks; 44920 free (15 chunks);
28808 used
smgr relation table: 8192 total in 1 blocks; 2816 free (0
chunks); 5376 used
TransactionAbortContext: 32768 total in 1 blocks; 32752 free (0
chunks); 16 used
Portal hash: 8192 total in 1 blocks; 3912 free (0 chunks); 4280 used
PortalMemory: 8192 total in 1 blocks; 8040 free (0 chunks); 152 used
PortalHeapMemory: 1024 total in 1 blocks; 920 free (0 chunks);
104 used
ExecutorState: 8192 total in 1 blocks; 5880 free (1 chunks);
2312 used
ExprContext: 24576 total in 2 blocks; 13664 free (8
chunks); 10912 used
Relcache by OID: 8192 total in 1 blocks; 3376 free (0 chunks);
4816 used
CacheMemoryContext: 405552 total in 19 blocks; 14296 free (5
chunks); 391256 used
pg_largeobject_loid_pn_index: 1024 total in 1 blocks; 240 free
(0 chunks); 784 used
pg_index_indrelid_index: 1024 total in 1 blocks; 304 free (0
chunks); 720 used
pg_opclass_am_name_nsp_index: 1024 total in 1 blocks; 192 free
(0 chunks); 832 used
pg_foreign_data_wrapper_name_index: 1024 total in 1 blocks; 344
free (0 chunks); 680 used
pg_enum_oid_index: 1024 total in 1 blocks; 344 free (0 chunks);
680 used
pg_class_relname_nsp_index: 1024 total in 1 blocks; 280 free (0
chunks); 744 used
pg_foreign_server_oid_index: 1024 total in 1 blocks; 344 free
(0 chunks); 680 used
pg_statistic_relid_att_index: 1024 total in 1 blocks; 280 free
(0 chunks); 744 used
pg_cast_source_target_index: 1024 total in 1 blocks; 240 free
(0 chunks); 784 used
pg_language_name_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_authid_oid_index: 1024 total in 1 blocks; 304 free (0
chunks); 720 used
pg_amop_fam_strat_index: 1024 total in 1 blocks; 88 free (0
chunks); 936 used
pg_index_indexrelid_index: 1024 total in 1 blocks; 304 free (0
chunks); 720 used
pg_ts_template_tmplname_index: 1024 total in 1 blocks; 280 free
(0 chunks); 744 used
pg_ts_config_map_index: 1024 total in 1 blocks; 192 free (0
chunks); 832 used
pg_opclass_oid_index: 1024 total in 1 blocks; 304 free (0
chunks); 720 used
pg_foreign_data_wrapper_oid_index: 1024 total in 1 blocks; 344
free (0 chunks); 680 used
pg_auth_members_member_role_index: 1024 total in 1 blocks; 280
free (0 chunks); 744 used
pg_ts_dict_oid_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_conversion_default_index: 1024 total in 1 blocks; 128 free
(0 chunks); 896 used
pg_operator_oprname_l_r_n_index: 1024 total in 1 blocks; 128
free (0 chunks); 896 used
pg_trigger_tgrelid_tgname_index: 1024 total in 1 blocks; 240
free (0 chunks); 784 used
pg_enum_typid_label_index: 1024 total in 1 blocks; 280 free (0
chunks); 744 used
pg_ts_config_oid_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_user_mapping_oid_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_opfamily_am_name_nsp_index: 1024 total in 1 blocks; 192 free
(0 chunks); 832 used
pg_type_oid_index: 1024 total in 1 blocks; 304 free (0 chunks);
720 used
pg_aggregate_fnoid_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_constraint_oid_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_rewrite_rel_rulename_index: 1024 total in 1 blocks; 280 free
(0 chunks); 744 used
pg_ts_parser_prsname_index: 1024 total in 1 blocks; 280 free (0
chunks); 744 used
pg_ts_config_cfgname_index: 1024 total in 1 blocks; 280 free (0
chunks); 744 used
pg_ts_parser_oid_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_operator_oid_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_namespace_nspname_index: 1024 total in 1 blocks; 304 free (0
chunks); 720 used
pg_ts_template_oid_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_amop_opr_fam_index: 1024 total in 1 blocks; 280 free (0
chunks); 744 used
pg_ts_dict_dictname_index: 1024 total in 1 blocks; 280 free (0
chunks); 744 used
pg_auth_members_role_member_index: 1024 total in 1 blocks; 280
free (0 chunks); 744 used
pg_type_typname_nsp_index: 1024 total in 1 blocks; 240 free (0
chunks); 784 used
pg_opfamily_oid_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_class_oid_index: 1024 total in 1 blocks; 304 free (0
chunks); 720 used
pg_proc_proname_args_nsp_index: 1024 total in 1 blocks; 152
free (0 chunks); 872 used
pg_attribute_relid_attnum_index: 1024 total in 1 blocks; 240
free (0 chunks); 784 used
pg_proc_oid_index: 1024 total in 1 blocks; 304 free (0 chunks);
720 used
pg_language_oid_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_namespace_oid_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_database_oid_index: 1024 total in 1 blocks; 304 free (0
chunks); 720 used
pg_amproc_fam_proc_index: 1024 total in 1 blocks; 88 free (0
chunks); 936 used
pg_authid_rolname_index: 1024 total in 1 blocks; 304 free (0
chunks); 720 used
pg_foreign_server_name_index: 1024 total in 1 blocks; 344 free
(0 chunks); 680 used
pg_attribute_relid_attnam_index: 1024 total in 1 blocks; 280
free (0 chunks); 744 used
pg_conversion_oid_index: 1024 total in 1 blocks; 344 free (0
chunks); 680 used
pg_user_mapping_user_server_index: 1024 total in 1 blocks; 280
free (0 chunks); 744 used
pg_conversion_name_nsp_index: 1024 total in 1 blocks; 280 free
(0 chunks); 744 used
MdSmgr: 8192 total in 1 blocks; 6160 free (0 chunks); 2032 used
LOCALLOCK hash: 8192 total in 1 blocks; 3912 free (0 chunks);
4280 used
Timezones: 79320 total in 2 blocks; 5968 free (0 chunks); 73352 used
ErrorContext: 8192 total in 1 blocks; 8176 free (4 chunks); 16 used
2012-03-24 10:59:39 EDT ERROR: out of memory
2012-03-24 10:59:39 EDT DETAIL: Failed on request of size 419430400.
2012-03-24 10:59:39 EDT STATEMENT: SELECT pg_catalog.lowrite(0, ....

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2012-03-26 16:43:44 Re: Odd out of memory problem.
Previous Message Andrew Dunstan 2012-03-26 16:26:19 Re: Odd out of memory problem.