Thread: Initial database size on disk

Initial database size on disk

From
Murray Cumming
Date:
When using the initdb command-line utility to create a new PostgreSQL
database cluster, is there any way to specify the starting size used on
disk? By default it seems to take around 38MB.


-- 
murrayc@murrayc.com
www.murrayc.com
www.openismus.com



Re: Initial database size on disk

From
Simon Riggs
Date:
On Sun, 2010-06-20 at 01:54 +0200, Murray Cumming wrote:

> When using the initdb command-line utility to create a new PostgreSQL
> database cluster, is there any way to specify the starting size used on
> disk? By default it seems to take around 38MB.

Why do you want to do that? Make it bigger, or smaller?

-- Simon Riggs           www.2ndQuadrant.comPostgreSQL Development, 24x7 Support, Training and Services



Re: Initial database size on disk

From
Murray Cumming
Date:
On Sun, 2010-06-20 at 01:22 +0100, Simon Riggs wrote:
> On Sun, 2010-06-20 at 01:54 +0200, Murray Cumming wrote:
> 
> > When using the initdb command-line utility to create a new PostgreSQL
> > database cluster, is there any way to specify the starting size used on
> > disk? By default it seems to take around 38MB.
> 
> Why do you want to do that? Make it bigger, or smaller?

I would like to make it smaller. I use PostgreSQL in my Glom application
to host (initially) small amounts of data, starting a PostgreSQL
instance automatically whenever the data must be opened.

-- 
murrayc@murrayc.com
www.murrayc.com
www.openismus.com



Re: Initial database size on disk

From
Simon Riggs
Date:
On Sun, 2010-06-20 at 10:23 +0200, Murray Cumming wrote:
> On Sun, 2010-06-20 at 01:22 +0100, Simon Riggs wrote:
> > On Sun, 2010-06-20 at 01:54 +0200, Murray Cumming wrote:
> > 
> > > When using the initdb command-line utility to create a new PostgreSQL
> > > database cluster, is there any way to specify the starting size used on
> > > disk? By default it seems to take around 38MB.
> > 
> > Why do you want to do that? Make it bigger, or smaller?
> 
> I would like to make it smaller. I use PostgreSQL in my Glom application
> to host (initially) small amounts of data, starting a PostgreSQL
> instance automatically whenever the data must be opened.

You can compile it smaller if you want, though you might hit some
problems nobody has seen before.

There appears to be a fair amount of "wasted" space, which tells me
nobody has ever really looked at this.

WAL files are 16MB, so you're main problem is there.

Use a compressed filesystem.

-- Simon Riggs           www.2ndQuadrant.comPostgreSQL Development, 24x7 Support, Training and Services



Re: Initial database size on disk

From
Devrim GUNDUZ
Date:
20.Haz.2010 tarihinde 02:54 saatinde, Murray Cumming <murrayc@murrayc.com > şunları yazdı:

> When using the initdb command-line utility to create a new PostgreSQL
> database cluster, is there any way to specify the starting size used
> on
> disk? By default it seems to take around 38MB.

You can recompile PostgreSQL with a smaller wal size, which will
reduce initial size a bit. I am not sure about the side effects though.

Regards.
--
Devrim GÜNDÜZ
PostgreSQL DBA @ Akinon/Markafoni, Red Hat Certified Engineer
devrim~gunduz.org, devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr
http://www.gunduz.org  Twitter: http://twitter.com/devrimgunduz

Re: Initial database size on disk

From
Tom Lane
Date:
Devrim GUNDUZ <devrim@gunduz.org> writes:
> 20.Haz.2010 tarihinde 02:54 saatinde, Murray Cumming <murrayc@murrayc.com 
>>> şunları yazdı:
>> When using the initdb command-line utility to create a new PostgreSQL
>> database cluster, is there any way to specify the starting size used  
>> on disk? By default it seems to take around 38MB.

> You can recompile PostgreSQL with a smaller wal size, which will  
> reduce initial size a bit. I am not sure about the side effects though.

There might be some value in that if you expect your database instances
will always be small and low in write volume.  Otherwise you're just
shooting yourself in the foot for a transitory gain.
        regards, tom lane