Skip to content
Snippets Groups Projects
Commit 2d237c7c authored by Bruce Momjian's avatar Bruce Momjian
Browse files

Move disk usage section into its own section.

parent 5612949f
No related branches found
No related tags found
No related merge requests found
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/admin.sgml,v 1.36 2001/10/16 23:57:06 tgl Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/admin.sgml,v 1.37 2002/06/13 05:15:22 momjian Exp $
-->
<book id="admin">
......@@ -32,8 +32,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/admin.sgml,v 1.36 2001/10/16 23:57:06
&maintenance;
&backup;
&monitoring;
&diskusage;
&wal;
&storage;
&recovery;
&regress;
&release;
......
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/diskusage.sgml,v 1.1 2002/06/13 05:15:22 momjian Exp $
-->
<chapter id="diskusage">
<title>Monitoring Disk Usage</title>
<sect1 id="disk-usage">
<title>Monitoring Disk Usage</Title>
<indexterm zone="disk-usage">
<primary>disk usage</primary>
</indexterm>
<para>
Each table has a primary heap disk file where most of the data is
stored. To store long column values, there is also a
<acronym>TOAST</> file associated with the table, named based on the
table's oid (actually pg_class.relfilenode), and an index on the
<acronym>TOAST</> table. There also may be indexes associated with
the base table.
</para>
<para>
You can monitor disk space from two places; from inside
<application>psql</> and from the command line using
<application>contrib/oid2name</>. Using <application>psql</> you can
issue queries to see the disk usage for any table:
<programlisting>
play=# SELECT relfilenode, relpages
play-# FROM pg_class
play-# WHERE relname = 'customer';
relfilenode | relpages
-------------+----------
16806 | 60
(1 row)
</programlisting>
</para>
<para>
Each page is typically 8 kilobytes. <literal>relpages</> is only
updated by <command>VACUUM</> and <command>ANALYZE</>. To show the
space used by <acronym>TOAST</> tables, use a query based on the heap
relfilenode:
<programlisting>
play=# SELECT relname, relpages
play-# FROM pg_class
play-# WHERE relname = 'pg_toast_16806' or
play-# relname = 'pg_toast_16806_index'
play-# ORDER BY relname;
relname | relpages
----------------------+----------
pg_toast_16806 | 0
pg_toast_16806_index | 1
</programlisting>
</para>
<para>
You can easily display index usage too:
<programlisting>
play=# SELECT c2.relname, c2.relpages
play-# FROM pg_class c, pg_class c2, pg_index i
play-# WHERE c.relname = 'customer' AND
play-# c.oid = i.indrelid AND
play-# c2.oid = i.indexrelid
play-# ORDER BY c2.relname;
relname | relpages
----------------------+----------
customer_id_indexdex | 26
</programlisting>
</para>
<para>
It is easy to find your largest files using <application>psql</>:
<programlisting>
play=# SELECT relname, relpages
play-# FROM pg_class
play-# ORDER BY relpages DESC;
relname | relpages
----------------------+----------
bigtable | 3290
customer | 3144
</programlisting>
</para>
<para>
You can also use <application>oid2name</> to show disk usage. See
<filename>README.oid2name</> for examples. It includes a script
shows disk usage for each database.
</para>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode:sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.13 2002/06/13 04:36:50 momjian Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.14 2002/06/13 05:15:22 momjian Exp $
-->
<chapter id="maintenance">
......@@ -366,91 +366,6 @@ VACUUM
</sect2>
</sect1>
<sect1 id="diskspace-maintenance">
<title>Disk Space Maintenance</title>
<indexterm zone="diskspace-maintenance">
<primary>disk space</primary>
</indexterm>
<para>
Each table has a primary heap disk file where most of the data is
stored. To store long column values, there is also a
<acronym>TOAST</> file associated with the table, named based on the
table's oid (actually pg_class.relfilenode), and an index on the
<acronym>TOAST</> table. There also may be indexes associated with
the base table.
</para>
<para>
You can monitor disk space from two places; from inside
<application>psql</> and from the command line using
<application>contrib/oid2name</>. Using <application>psql</> you can
issue queries to see the disk usage for any table:
<programlisting>
play=# SELECT relfilenode, relpages
play-# FROM pg_class
play-# WHERE relname = 'customer';
relfilenode | relpages
-------------+----------
16806 | 60
(1 row)
</programlisting>
</para>
<para>
Each page is typically 8 kilobytes. <literal>relpages</> is only
updated by <command>VACUUM</> and <command>ANALYZE</>. To show the
space used by <acronym>TOAST</> tables, use a query based on the heap
relfilenode:
<programlisting>
play=# SELECT relname, relpages
play-# FROM pg_class
play-# WHERE relname = 'pg_toast_16806' or
play-# relname = 'pg_toast_16806_index'
play-# ORDER BY relname;
relname | relpages
----------------------+----------
pg_toast_16806 | 0
pg_toast_16806_index | 1
</programlisting>
</para>
<para>
You can easily display index usage too:
<programlisting>
play=# SELECT c2.relname, c2.relpages
play-# FROM pg_class c, pg_class c2, pg_index i
play-# WHERE c.relname = 'customer' AND
play-# c.oid = i.indrelid AND
play-# c2.oid = i.indexrelid
play-# ORDER BY c2.relname;
relname | relpages
----------------------+----------
customer_id_indexdex | 26
</programlisting>
</para>
<para>
It is easy to find your largest files using <application>psql</>:
<programlisting>
play=# SELECT relname, relpages
play-# FROM pg_class
play-# ORDER BY relpages DESC;
relname | relpages
----------------------+----------
bigtable | 3290
customer | 3144
</programlisting>
</para>
<para>
You can also use <application>oid2name</> to show disk usage. See
<filename>README.oid2name</> for examples. It includes a script
shows disk usage for each database.
</para>
</sect1>
<sect1 id="logfile-maintenance">
<title>Log File Maintenance</title>
......
<Chapter Id="storage">
<Title>Disk Storage</Title>
<Para>
This section needs to be written. Some information is in the FAQ. Volunteers?
- thomas 1998-01-11
</Para>
</Chapter>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment