Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Потребление памяти  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3164
Добрый день,подскажите пожалуйста в обших чертах что может быть или это норм
Делаю миграцию данных из nosql бд -размер данных всего 19 гиг
в постгрес эти же данные занимают 250-300 гиг
с чем это может быть связано - индексы ,резервирование типов данных ,что то иное? как можно выяснить в чем проблема или это нормально для постгрес?
22 мар 21, 15:23    [22298275]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
mefman
Member

Откуда:
Сообщений: 3372
asv79
Добрый день,подскажите пожалуйста в обших чертах что может быть или это норм
Делаю миграцию данных из nosql бд -размер данных всего 19 гиг
в постгрес эти же данные занимают 250-300 гиг
с чем это может быть связано - индексы ,резервирование типов данных ,что то иное? как можно выяснить в чем проблема или это нормально для постгрес?

смотрите распределение данных по таблицам.
для начала
SELECT nspname || '.' || relname AS "relation",
	    pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
	  FROM pg_class C
	  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
	  WHERE nspname NOT IN ('pg_catalog', 'information_schema')
	    AND C.relkind <> 'i'
	    AND nspname !~ '^pg_toast'
	  ORDER BY pg_total_relation_size(C.oid) DESC
  LIMIT 20;

а учитывая ваши вводные - может быть все что угодно, и индексы и блоат...
Как делаете миграцию btw?

Сообщение было отредактировано: 22 мар 21, 15:35
22 мар 21, 15:41    [22298284]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3164
mefman

а учитывая ваши вводные - может быть все что угодно, и индексы и блоат...
Как делаете миграцию btw?

спасибо за совет,нашел причину
22 мар 21, 16:31    [22298320]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3164
mefman,смотрите что я получается
я восстанавливаю из дампа бд
делаю ваш скрипт ,там не больше 1 гига
а с диска съедат 5 гиг
вопрос куда делись 4 гига
23 мар 21, 19:12    [22299071]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
mefman
Member

Откуда:
Сообщений: 3372
asv79
mefman,смотрите что я получается
я восстанавливаю из дампа бд
делаю ваш скрипт ,там не больше 1 гига
а с диска съедат 5 гиг
вопрос куда делись 4 гига

рискну предположить что вал.
du --max-depth=1 -h /pg_data


Сообщение было отредактировано: 23 мар 21, 19:11
23 мар 21, 19:18    [22299073]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3164
mefman
asv79
mefman,смотрите что я получается
я восстанавливаю из дампа бд
делаю ваш скрипт ,там не больше 1 гига
а с диска съедат 5 гиг
вопрос куда делись 4 гига

рискну предположить что вал.
du --max-depth=1 -h /pg_data

а что это такое и как победить и как понять что именно вал.( что такое вал.)
23 мар 21, 19:44    [22299084]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
mefman
Member

Откуда:
Сообщений: 3372
asv79
mefman
пропущено...

рискну предположить что вал.
du --max-depth=1 -h /pg_data

а что это такое и как победить и как понять что именно вал.( что такое вал.)

- побеждать wal не нужно. нужно понять и простить.
- как понять что это wal - покажет разблюдовка места на диске (команда du, которую я скинул ранее)
- что такое wal в деталях расскажет документация
23 мар 21, 19:55    [22299089]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3164
mefman
asv79
пропущено...

а что это такое и как победить и как понять что именно вал.( что такое вал.)

- побеждать wal не нужно. нужно понять и простить.
- как понять что это wal - покажет разблюдовка места на диске (команда du, которую я скинул ранее)
- что такое wal в деталях расскажет документация



88K     /var/lib/postgresql/data/pgdata/pg_stat_tmp
5.9M    /var/lib/postgresql/data/pgdata/global
4.1G    /var/lib/postgresql/data/pgdata/pg_wal
4.0K    /var/lib/postgresql/data/pgdata/pg_dynshmem
4.0K    /var/lib/postgresql/data/pgdata/pg_tblspc
4.0K    /var/lib/postgresql/data/pgdata/pg_stat
4.0K    /var/lib/postgresql/data/pgdata/pg_serial
12K     /var/lib/postgresql/data/pgdata/pg_notify
4.0K    /var/lib/postgresql/data/pgdata/pg_replslot
4.0K    /var/lib/postgresql/data/pgdata/pg_twophase
17M     /var/lib/postgresql/data/pgdata/pg_xact
16K     /var/lib/postgresql/data/pgdata/pg_logical
2.0M    /var/lib/postgresql/data/pgdata/pg_subtrans
185M    /var/lib/postgresql/data/pgdata/pg_multixact
67G     /var/lib/postgresql/data/pgdata/base
4.0K    /var/lib/postgresql/data/pgdata/pg_snapshots
4.0K    /var/lib/postgresql/data/pgdata/pg_commit_ts
71G     /var/lib/postgresql/data/pgdata

вот результат выполнения команды
23 мар 21, 20:37    [22299098]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4691
asv79,

Если вы про сжатый pg_dump то разница в 5-10 раз между сжатым dump и базой - ситуация полностью нормальная.

Еще раз попробуйте сформулировать вопрос.
Сейчас у вас 67GB занимают базы и 4GB остальные потроха базы (wal и прочая).

Как посмотреть наиболее крупные таблицы вам показали.

Если у вас много разных баз еще можно в psql
\l+ сделать чтобы посмотреть на размеры баз.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
23 мар 21, 20:53    [22299104]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3164
Maxim Boguk,
нет вопрос у меня в другом -у меня на диске грубо говоря 100 гиг
ресторю базу - с диска уходит 5 гигабайт
беру скрипт из этой темы и смотрю где же эти 5 гигабайт - но вижу что во всех таблицах всего 1 гиг - где все остальное хз
23 мар 21, 21:04    [22299105]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3164
Maxim Boguk,
вот как пример после восстановления дампа такая ситуация
         relation           | total_size
-----------------------------+------------
147 MB
141 MB
 47 MB
 23 MB
 22 MB
 12 MB
 8936 kB
 8200 kB
 5904 kB
4848 kB
 4312 kB
 4064 kB
 3256 kB
3224 kB
3224 kB
  3024 kB
 2808 kB
 2296 kB
 2056 kB
1760 kB



4.8M    /var/lib/postgresql/data/pgdata/global
4.0G    /var/lib/postgresql/data/pgdata/pg_wal
4.0K    /var/lib/postgresql/data/pgdata/pg_dynshmem
4.0K    /var/lib/postgresql/data/pgdata/pg_tblspc
4.0K    /var/lib/postgresql/data/pgdata/pg_stat
4.0K    /var/lib/postgresql/data/pgdata/pg_serial
12K     /var/lib/postgresql/data/pgdata/pg_notify
4.0K    /var/lib/postgresql/data/pgdata/pg_replslot
4.0K    /var/lib/postgresql/data/pgdata/pg_twophase
17M     /var/lib/postgresql/data/pgdata/pg_xact
16K     /var/lib/postgresql/data/pgdata/pg_logical
188K    /var/lib/postgresql/data/pgdata/pg_subtrans
186M    /var/lib/postgresql/data/pgdata/pg_multixact
5.6G    /var/lib/postgresql/data/pgdata/base
4.0K    /var/lib/postgresql/data/pgdata/pg_snapshots
4.0K    /var/lib/postgresql/data/pgdata/pg_commit_ts
9.8G    /var/lib/postgresql/data/pgdata

вот теперь вопрос где 5.6 гига ?точней не где,а что это за прикол - если в таблица как видим и гига нет,а base 5.6 G

Сообщение было отредактировано: 23 мар 21, 21:10
23 мар 21, 21:16    [22299108]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
mefman
Member

Откуда:
Сообщений: 3372
asv79
Maxim Boguk,
нет вопрос у меня в другом -у меня на диске грубо говоря 100 гиг
ресторю базу - с диска уходит 5 гигабайт
беру скрипт из этой темы и смотрю где же эти 5 гигабайт - но вижу что во всех таблицах всего 1 гиг - где все остальное хз

в таблицах гиг, а сколько в индексах?
23 мар 21, 21:46    [22299119]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
Guzya
Member

Откуда:
Сообщений: 712
Покажите команду, которой восстанавливаете дамп.
Покажите вывод команды в psql
\l
23 мар 21, 21:51    [22299120]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
Guzya
Member

Откуда:
Сообщений: 712
mefman
asv79
Maxim Boguk,
нет вопрос у меня в другом -у меня на диске грубо говоря 100 гиг
ресторю базу - с диска уходит 5 гигабайт
беру скрипт из этой темы и смотрю где же эти 5 гигабайт - но вижу что во всех таблицах всего 1 гиг - где все остальное хз

в таблицах гиг, а сколько в индексах?


там в скрипте pg_total_relation_size()
23 мар 21, 21:54    [22299122]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4691
asv79,

а что у вас показывает

select pg_size_pretty(pg_total_relation_size('pg_catalog.pg_largeobject'));


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
23 мар 21, 22:31    [22299139]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3164
Maxim Boguk
asv79,

а что у вас показывает

select pg_size_pretty(pg_total_relation_size('pg_catalog.pg_largeobject'));


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


5152 MB
24 мар 21, 08:56    [22299236]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3164
Guzya
Покажите команду, которой восстанавливаете дамп.
Покажите вывод команды в psql
\l

рестор из pg4admin
но разницы никакой нет если рестор делать из консоли
команда pg_restore -h localhost -U postgres -d basename -1 basename_dump.sql
24 мар 21, 09:01    [22299238]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4691
asv79
Maxim Boguk
asv79,

а что у вас показывает

select pg_size_pretty(pg_total_relation_size('pg_catalog.pg_largeobject'));


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


5152 MB


ну вот вам и ответ где 5GB потерялись.. 5GB файлов в виде large objects в базу загружено.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
24 мар 21, 12:24    [22299347]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3164
Maxim Boguk
asv79
пропущено...


5152 MB


ну вот вам и ответ где 5GB потерялись.. 5GB файлов в виде large objects в базу загружено.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru

large object это что то типо медиа файлов какие либо?или просто какие то большие файлы? просто я не совсем уверен что мы такое грузили себе в бд
24 мар 21, 18:07    [22299516]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4691
asv79
Maxim Boguk
пропущено...


ну вот вам и ответ где 5GB потерялись.. 5GB файлов в виде large objects в базу загружено.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru

large object это что то типо медиа файлов какие либо?или просто какие то большие файлы? просто я не совсем уверен что мы такое грузили себе в бд


любые большие файлы загруженные как LO
вряд ли они сами по себе там образовались...



можете pg_restore --list сделать чтобы посмотреть что у вас там в dump
или запустить его на чистую базу с --verbose тоже чтобы посмотреть на счет что грузится

ссылается ли на них кто то можно понять по наличию в вас таблиц с полями типа oid


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru

Сообщение было отредактировано: 24 мар 21, 18:17
24 мар 21, 18:23    [22299518]     Ответить | Цитировать Сообщить модератору
 Re: Потребление памяти  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3164
Maxim Boguk
asv79
пропущено...

large object это что то типо медиа файлов какие либо?или просто какие то большие файлы? просто я не совсем уверен что мы такое грузили себе в бд


любые большие файлы загруженные как LO
вряд ли они сами по себе там образовались...



можете pg_restore --list сделать чтобы посмотреть что у вас там в dump
или запустить его на чистую базу с --verbose тоже чтобы посмотреть на счет что грузится

ссылается ли на них кто то можно понять по наличию в вас таблиц с полями типа oid


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru

спасибо за помощь ,а можно немного подробней как сделать то что вы сказали с чистой базой и на винде,либо через pg4admin
если это невозможно - то обьяснить подробней что за --verbose и что нужно будет смотреть что грузится и где искать таблицы с полями oid
24 мар 21, 18:48    [22299519]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить