Re: Poor overall performance unless regular VACUUM FULL

Поиск
Список
Период
Сортировка
От Wayne Conrad
Тема Re: Poor overall performance unless regular VACUUM FULL
Дата
Msg-id Pine.LNX.4.64.0907151443350.9422@treebeard.internal.databill.com
обсуждение исходный текст
Ответ на Re: Poor overall performance unless regular VACUUM FULL  (Scott Marlowe <scott.marlowe@gmail.com>)
Список pgsql-performance
>> On Tue, 14 Jul 2009, Scott Marlowe wrote:
> Are you guys doing anything that could be deemed pathological, like
> full table updates on big tables over and over?  Had an issue last
> year where a dev left a where clause off an update to a field in one
> of our biggest tables and in a few weeks the database was so bloated
> we had to take it offline to fix the problem.  After fixing the
> query.

I've just audited the source, looking for any updates without where
clauses.  None jumped out to bite me.

Almost everything we do happens in transactions which can occasionally
take 10-20 minutes to complete and span thousands or tens of thousands
of rows across multiple tables.  Are long-running transactions a
culprit in table bloat?

I've also used contrib/pgstattuple to try to identify which of our
large tables and indices are experiencing bloat.  Here are the
pgstattuple results for our largest tables:

table_len:          56639488
tuple_count:        655501
tuple_len:          53573112
tuple_percent:      94.59
dead_tuple_count:   0
dead_tuple_len:     0
dead_tuple_percent: 0
free_space:         251928
free_percent:       0.44
table_name:         status

table_len:          94363648
tuple_count:        342363
tuple_len:          61084340
tuple_percent:      64.73
dead_tuple_count:   10514
dead_tuple_len:     1888364
dead_tuple_percent: 2
free_space:         28332256
free_percent:       30.02
table_name:         uploads

table_len:          135675904
tuple_count:        1094803
tuple_len:          129821312
tuple_percent:      95.68
dead_tuple_count:   133
dead_tuple_len:     16048
dead_tuple_percent: 0.01
free_space:         991460
free_percent:       0.73
table_name:         invoice_details

table_len:          148914176
tuple_count:        1858812
tuple_len:          139661736
tuple_percent:      93.79
dead_tuple_count:   1118
dead_tuple_len:     80704
dead_tuple_percent: 0.05
free_space:         1218040
free_percent:       0.82
table_name:         job_status_log

table_len:          173416448
tuple_count:        132974
tuple_len:          117788200
tuple_percent:      67.92
dead_tuple_count:   10670
dead_tuple_len:     7792692
dead_tuple_percent: 4.49
free_space:         46081516
free_percent:       26.57
table_name:         mail

table_len:          191299584
tuple_count:        433378
tuple_len:          145551144
tuple_percent:      76.09
dead_tuple_count:   1042
dead_tuple_len:     862952
dead_tuple_percent: 0.45
free_space:         42068276
free_percent:       21.99
table_name:         sessions

table_len:          548552704
tuple_count:        5446169
tuple_len:          429602136
tuple_percent:      78.32
dead_tuple_count:   24992
dead_tuple_len:     1929560
dead_tuple_percent: 0.35
free_space:         93157980
free_percent:       16.98
table_name:         job_state_log

table_len:          639262720
tuple_count:        556415
tuple_len:          221505548
tuple_percent:      34.65
dead_tuple_count:   66688
dead_tuple_len:     27239728
dead_tuple_percent: 4.26
free_space:         380168112
free_percent:       59.47
table_name:         jobs

table_len:          791240704
tuple_count:        8311799
tuple_len:          700000052
tuple_percent:      88.47
dead_tuple_count:   39
dead_tuple_len:     3752
dead_tuple_percent: 0
free_space:         11397548
free_percent:       1.44
table_name:         cron_logs

table_len:          1612947456
tuple_count:        10854417
tuple_len:          1513084075
tuple_percent:      93.81
dead_tuple_count:   0
dead_tuple_len:     0
dead_tuple_percent: 0
free_space:         13014040
free_percent:       0.81
table_name:         documents_old_addresses

table_len:          1832091648
tuple_count:        13729360
tuple_len:          1600763725
tuple_percent:      87.37
dead_tuple_count:   598525
dead_tuple_len:     80535904
dead_tuple_percent: 4.4
free_space:         38817616
free_percent:       2.12
table_name:         statements

table_len:          3544350720
tuple_count:        64289703
tuple_len:          2828746932
tuple_percent:      79.81
dead_tuple_count:   648849
dead_tuple_len:     28549356
dead_tuple_percent: 0.81
free_space:         143528236
free_percent:       4.05
table_name:         ps_page

table_len:          4233355264
tuple_count:        22866609
tuple_len:          3285722981
tuple_percent:      77.62
dead_tuple_count:   231624
dead_tuple_len:     31142594
dead_tuple_percent: 0.74
free_space:         706351636
free_percent:       16.69
table_name:         injectd_log

table_len:          4927676416
tuple_count:        55919895
tuple_len:          4176606972
tuple_percent:      84.76
dead_tuple_count:   795011
dead_tuple_len:     58409884
dead_tuple_percent: 1.19
free_space:         279870944
free_percent:       5.68
table_name:         documents_ps_page

table_len:          4953735168
tuple_count:        44846317
tuple_len:          3346823052
tuple_percent:      67.56
dead_tuple_count:   2485971
dead_tuple_len:     183639396
dead_tuple_percent: 3.71
free_space:         1038200484
free_percent:       20.96
table_name:         latest_document_address_links

table_len:          23458062336
tuple_count:        89533157
tuple_len:          19772992448
tuple_percent:      84.29
dead_tuple_count:   2311467
dead_tuple_len:     502940946
dead_tuple_percent: 2.14
free_space:         2332408612
free_percent:       9.94
table_name:         document_address

table_len:          28510109696
tuple_count:        44844664
tuple_len:          21711695949
tuple_percent:      76.15
dead_tuple_count:   1134932
dead_tuple_len:     300674467
dead_tuple_percent: 1.05
free_space:         5988985892
free_percent:       21.01
table_name:         documents

Here are the pgstatindex results for our largest indices.  I assumed
that negative index sizes are a reslt of integer overflow and ordered
the results accordingly.

index_size:         1317961728
version:            2
tree_level:         3
root_block_no:      12439
internal_pages:     13366
leaf_pages:         1182318
empty_pages:        0
deleted_pages:      13775
avg_leaf_density:   -157.76
leaf_fragmentation: 37.87
index_name:         documents_pkey

index_size:         1346609152
version:            2
tree_level:         3
root_block_no:      10447
internal_pages:     1937
leaf_pages:         162431
empty_pages:        0
deleted_pages:      12
avg_leaf_density:   66.56
leaf_fragmentation: 26.48
index_name:         statements_pkey

index_size:         1592713216
version:            2
tree_level:         3
root_block_no:      81517
internal_pages:     723
leaf_pages:         177299
empty_pages:        0
deleted_pages:      16400
avg_leaf_density:   74.15
leaf_fragmentation: 5.58
index_name:         latest_document_address2_precedence_key

index_size:         1617821696
version:            2
tree_level:         3
root_block_no:      81517
internal_pages:     720
leaf_pages:         185846
empty_pages:        0
deleted_pages:      10921
avg_leaf_density:   78.8
leaf_fragmentation: 10.96
index_name:         documents_ps_page_ps_page_id_idx

index_size:         1629798400
version:            2
tree_level:         3
root_block_no:      81517
internal_pages:     728
leaf_pages:         188325
empty_pages:        0
deleted_pages:      9896
avg_leaf_density:   88.23
leaf_fragmentation: 0.66
index_name:         ps_page_pkey

index_size:         1658560512
version:            2
tree_level:         3
root_block_no:      81517
internal_pages:     740
leaf_pages:         191672
empty_pages:        0
deleted_pages:      10048
avg_leaf_density:   86.7
leaf_fragmentation: 1.03
index_name:         ps_page_ps_id_key

index_size:         -31956992
version:            2
tree_level:         3
root_block_no:      12439
internal_pages:     5510
leaf_pages:         475474
empty_pages:        0
deleted_pages:      39402
avg_leaf_density:   72.19
leaf_fragmentation: 3.02
index_name:         latest_document_address2_pkey

index_size:         -321863680
version:            2
tree_level:         3
root_block_no:      81517
internal_pages:     1809
leaf_pages:         479805
empty_pages:        0
deleted_pages:      3383
avg_leaf_density:   25.63
leaf_fragmentation: 40.05
index_name:         documents_id_idx

index_size:         -461504512
version:            2
tree_level:         3
root_block_no:      49813
internal_pages:     3023
leaf_pages:         456246
empty_pages:        0
deleted_pages:      8682
avg_leaf_density:   34.37
leaf_fragmentation: 66.83
index_name:         documents_city

index_size:         -11818844162
version:            3
tree_level:
root_block_no:      11036
internal_pages:     10003
leaf_pages:         822178
empty_pages:        0
deleted_pages:      72121
avg_leaf_density:   54.52
leaf_fragmentation: 3.37
index_name:         document_address_pkey

index_size:         -12678348802
version:            3
tree_level:
root_block_no:      32210
internal_pages:     2410
leaf_pages:         359867
empty_pages:        0
deleted_pages:      7245
avg_leaf_density:   53.31
leaf_fragmentation: 52.7
index_name:         documents_recipient

index_size:         -13276282882
version:            3
tree_level:
root_block_no:      27346
internal_pages:     2183
leaf_pages:         360040
empty_pages:        0
deleted_pages:      0
avg_leaf_density:   58.39
leaf_fragmentation: 50
index_name:         documents_magic_id_key

index_size:         -14476328962
version:            3
tree_level:
root_block_no:      44129
internal_pages:     1998
leaf_pages:         339111
empty_pages:        0
deleted_pages:      6465
avg_leaf_density:   50.12
leaf_fragmentation: 52.85
index_name:         documents_zip10

index_size:         -14723809282
version:            3
tree_level:
root_block_no:      81515
internal_pages:     2470
leaf_pages:         326170
empty_pages:        0
deleted_pages:      15913
avg_leaf_density:   38.21
leaf_fragmentation: 77.19
index_name:         documents_state

index_size:         -14831697922
version:            3
tree_level:
root_block_no:      47536
internal_pages:     1607
leaf_pages:         341421
empty_pages:        0
deleted_pages:      208
avg_leaf_density:   45.28
leaf_fragmentation: 46.48
index_name:         documents_account_number

index_size:         -17118412802
version:            3
tree_level:
root_block_no:      81517
internal_pages:     1149
leaf_pages:         296146
empty_pages:        0
deleted_pages:      18027
avg_leaf_density:   80.86
leaf_fragmentation: 7.14
index_name:         document_address_precedence_key

В списке pgsql-performance по дате отправления:

Предыдущее
От: toruvinn
Дата:
Сообщение: Re: [BUGS] BUG #4919: CREATE USER command slows down system performance
Следующее
От: Justin Pitts
Дата:
Сообщение: Re: cluster index on a table