Обсуждение: Limiting size and number of transaction logs

Поиск
Список
Период
Сортировка

Limiting size and number of transaction logs

От
"Chris White (cjwhite)"
Дата:
In the documentation for 7.4 for WAL configuration, I see the following statement:
 
There will be at least one 16 MB segment file, and will normally not be more than 2 * checkpoint_segments + 1 files.
 
So if I have 1 checkpoint segment configured, does this mean there will be a max of 4 16MB files or 3 16MB files.
 
Is there anyway of reducing this number of files, as I am running on a system which is very tight on disk space and doesn't have that much DB transaction  throughput that needs this number of transaction logs or is there a way of making the size smaller?
 
Chris White

Re: Limiting size and number of transaction logs

От
Tom Lane
Дата:
"Chris White (cjwhite)" <cjwhite@cisco.com> writes:
> In the documentation for 7.4 for WAL configuration, I see the following
> statement:
> There will be at least one 16 MB segment file, and will normally not be more
> than 2 * checkpoint_segments + 1 files.

> So if I have 1 checkpoint segment configured, does this mean there will be a
> max of 4 16MB files or 3 16MB files.

Note the word "normally" --- there's no guarantees here.  A spike in WAL
output rate could result in more WAL segments than usual.  But if you
have checkpoint_segments = 1 and the system never generates more than
16MB of WAL output before the next checkpoint can complete, there'd
probably be only two WAL segments.  The formula says three, but what
that actually means is that the checkpoint logic will allow up to three
to exist without trying to get rid of any.  I think that with a low
enough output rate, it would flip between two segments without ever
trying to make a third one.

> Is there anyway of reducing this number of files, as I am running on a
> system which is very tight on disk space and doesn't have that much DB
> transaction  throughput that needs this number of transaction logs or is
> there a way of making the size smaller?

In 8.0 the segment size can be configured at compile time, but I don't
think I'd risk it in earlier releases.

            regards, tom lane

Re: Limiting size and number of transaction logs

От
"Chris White (cjwhite)"
Дата:
Thanks for the information.

-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Friday, January 14, 2005 5:36 PM
To: cjwhite@cisco.com
Cc: pgsql-admin@postgresql.org
Subject: Re: [ADMIN] Limiting size and number of transaction logs

"Chris White (cjwhite)" <cjwhite@cisco.com> writes:
> In the documentation for 7.4 for WAL configuration, I see the
> following
> statement:
> There will be at least one 16 MB segment file, and will normally not
> be more than 2 * checkpoint_segments + 1 files.

> So if I have 1 checkpoint segment configured, does this mean there
> will be a max of 4 16MB files or 3 16MB files.

Note the word "normally" --- there's no guarantees here.  A spike in WAL
output rate could result in more WAL segments than usual.  But if you have
checkpoint_segments = 1 and the system never generates more than 16MB of WAL
output before the next checkpoint can complete, there'd probably be only two
WAL segments.  The formula says three, but what that actually means is that
the checkpoint logic will allow up to three to exist without trying to get
rid of any.  I think that with a low enough output rate, it would flip
between two segments without ever trying to make a third one.

> Is there anyway of reducing this number of files, as I am running on a
> system which is very tight on disk space and doesn't have that much DB
> transaction  throughput that needs this number of transaction logs or
> is there a way of making the size smaller?

In 8.0 the segment size can be configured at compile time, but I don't think
I'd risk it in earlier releases.

            regards, tom lane