При просмотре занятого в системе пространства, довольно большой объем может быть занят /var/lib/postgresql/, просто при изучением файлов невозможно будет понять, что именно занимает место,а тем более непонятна причина такого объема.
Определить размер баз PostgreSQL
1) Заходим под пользователем PostgreSQL
1 | su postgres |
2) запускаем psql
1 | psql |
3) выполняем команду
1 | \l+ |
Получаем полный список всех баз с их размерами.
Определяем размер таблиц PostgreSQL
1) Заходим в psql, по аналогии предыдущим разделом
2) подключаемся к базе
1 | \c dbname |
и выполняем запрос
1 2 3 4 5 6 7 8 9 | 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; |
В выводе мы получим топ 20 таблиц, отсортированные по размеру.
Пример вывода:
В данном случае видно что таблица public.pgbench_accounts занимает порядка 15 гигабайт, после тестирования нагрузки таблицу не очистили, соответственно потеряли пространство.
просто чистим:
1 | truncate public.pgbench_accounts; |