|
|
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
Версия Postgresql 9.1 Необходимо узнать за счёт чего так быстро прирастает база? смотрю сегменты в pg_class, но это мало помогает. Сегодня утром база 100Гб, в обед уже 110Гб. auto_vacuum включен, из pg_stat_user_tables видно, что последний раз отрабатывал сегодня Хочется понять какая именно таблица или индекс выросли на 10 Гб. спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 12:15 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
pg_newbie_user, Собирайте данные по размеру всех объектов в отдельную таблицу с установленной периодичностью (можно в другую БД и другой сервер). Потом анализируйте статистику. autovacuum в общем случае не сжимает таблицу. То есть объем таблицы уменьшается в редких случаях, когда зачищается хвост таблицы. Если отработал "сегодня" - есть подозрение на неоптимальную его настройку. Значение обычно ближе к "отработал x раз за последний час". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 12:28 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
/\/\/\/\/\/\pg_newbie_user, Собирайте данные по размеру всех объектов в отдельную таблицу с установленной периодичностью (можно в другую БД и другой сервер). Потом анализируйте статистику. autovacuum в общем случае не сжимает таблицу. То есть объем таблицы уменьшается в редких случаях, когда зачищается хвост таблицы. Если отработал "сегодня" - есть подозрение на неоптимальную его настройку. Значение обычно ближе к "отработал x раз за последний час". За последний час база выросла на 6 Гб. Могли бы вы любезно подсказать, какими запросами осуществить данный сбор данных? приведёт ли это к полному сканированию таблиц или брать значения уже собранной ранее статистики? как это можно сделать? спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 12:49 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
pg_newbie_user, Для начала проделайте элементарное: Код: sql 1. Повторять раз в 5 минут до понимания тенденции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 13:05 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
pg_newbie_user, Затем прочитайте тут и тут и собирайте более подробную статистику через pg_total_relation_size. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 13:09 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
У вас нет долгих транзакций? От них база может сильно распухать. Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 13:29 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
pg_newbie_user, А производные ловить как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 13:48 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
pg_newbie_user, А производные ловить как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 13:48 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
hattifattenerpg_newbie_user, Для начала проделайте элементарное: Код: sql 1. Повторять раз в 5 минут до понимания тенденции. Кстати, еще раз более внимательно прочитал RTFM про relpages. Оказывается, это ОЖИДАЕМОЕ значение. Нужно быть осторожным. авторSize of the on-disk representation of this table in pages (of size BLCKSZ). This is only an estimate used by the planner. It is updated by VACUUM, ANALYZE, and a few DDL commands such as CREATE INDEX. Поэтому я бы опирался на pg_total_relation_size . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 14:17 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
/\/\/\/\/\/\hattifattenerpg_newbie_user, Для начала проделайте элементарное: Код: sql 1. Повторять раз в 5 минут до понимания тенденции. Кстати, еще раз более внимательно прочитал RTFM про relpages. Оказывается, это ОЖИДАЕМОЕ значение. Нужно быть осторожным. авторSize of the on-disk representation of this table in pages (of size BLCKSZ). This is only an estimate used by the planner. It is updated by VACUUM, ANALYZE, and a few DDL commands such as CREATE INDEX. Поэтому я бы опирался на pg_total_relation_size . Всем добрый день! Я выяснил, что у меня прирост идёт за счёт pg_largeobject. Прирост 1 Гб за 1 час. last_autovacuum для pg_largeobject отсутствует... что можно сделать в данной ситуации с pg_largeobject? я так понял там хранятся BLOB, их можно как-то ужать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 09:45 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
нашёл вот примерное решение, http://www.postgresql.org/message-id/23124.1264204910@sss.pgh.pa.us]http://www.postgresql.org/message-id/23124.1264204910@sss.pgh.pa.us Код: plsql 1. 2. 3. но проблема в том, что reindex и vacuum full требуют эксклюзивной блокировки таблицы, что приведет к простою. Возможен ли вариант без эксклюзивной блокировки таблицы? По предварительным оценкам длительность операций больше суток, а простой такой длительности невозможен. как можно ещё решить данный вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 10:12 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
pg_newbie_user/\/\/\/\/\/\пропущено... Кстати, еще раз более внимательно прочитал RTFM про relpages. Оказывается, это ОЖИДАЕМОЕ значение. Нужно быть осторожным. пропущено... Поэтому я бы опирался на pg_total_relation_size . Всем добрый день! Я выяснил, что у меня прирост идёт за счёт pg_largeobject. Прирост 1 Гб за 1 час. last_autovacuum для pg_largeobject отсутствует... что можно сделать в данной ситуации с pg_largeobject? я так понял там хранятся BLOB, их можно как-то ужать? для начала покажите что показывает на вашей базе: select * from pg_stat_all_tables where relname='pg_largeobject'; вполне может быть что там и сжимать то нечего и вы просто некорректно large objects используете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 11:05 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
я даже скорее всего знаю что именно вы не учли и почему у вас все пухнет но хотелось бы ваши запросы работы с LO увидеть --Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 11:14 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
Maxim Bogukpg_newbie_userпропущено... Всем добрый день! Я выяснил, что у меня прирост идёт за счёт pg_largeobject. Прирост 1 Гб за 1 час. last_autovacuum для pg_largeobject отсутствует... что можно сделать в данной ситуации с pg_largeobject? я так понял там хранятся BLOB, их можно как-то ужать? для начала покажите что показывает на вашей базе: select * from pg_stat_all_tables where relname='pg_largeobject'; вполне может быть что там и сжимать то нечего и вы просто некорректно large objects используете. Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 16:39 |
|
||
|
Аудит прироста базы данных. Узнать за счёт чего растёт база на уровне сегментов
|
|||
|---|---|---|---|
|
#18+
pg_newbie_userMaxim Bogukпропущено... для начала покажите что показывает на вашей базе: select * from pg_stat_all_tables where relname='pg_largeobject'; вполне может быть что там и сжимать то нечего и вы просто некорректно large objects используете. Код: plsql 1. 2. 3. 4. сделайте create extension pgstattuple; и покажите что выводит select * from pgstattuple('pg_largeobject'); основная теория на данный момент - в некоторых или во всех местах вы забываете делать lo_unlink при удалении соответствующей записи. почитайте для начала: http://www.postgresql.org/docs/9.2/static/lo-interfaces.html вот это особенно важно для понимания и использования LO: http://www.postgresql.org/docs/9.2/interactive/lo.html и http://www.postgresql.org/docs/9.2/interactive/vacuumlo.html Если же вы уверены что у вас на этот счет все впорядке - то значит просто пишется столько вот large objects в базу. --Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 18:25 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38852218&tid=1998246]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
152ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 209ms |
| total: | 448ms |

| 0 / 0 |
