Skip site navigation (1) Skip section navigation (2)

Re: improvements to pgtune

From: Greg Smith <greg(at)2ndquadrant(dot)com>
To: Shiv <rama(dot)theone(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: improvements to pgtune
Date: 2011-04-28 01:50:20
Message-ID: 4DB8C7DC.3020706@2ndquadrant.com (view raw or flat)
Thread:
Lists: pgsql-hackers
Shiv wrote:
>  On the program I hope to learn as much about professional software 
> engineering principles as PostgreSQL. My project is aimed towards 
> extending and hopefully improving upon pgtune. If any of you have some 
> ideas or thoughts to share. I am all ears!!

Well, first step on the software engineering side is to get a copy of 
the code in a form you can modify.  I'd recommend grabbing it from 
https://github.com/gregs1104/pgtune ; while there is a copy of the 
program on git.postgresql.org, it's easier to work with the one on 
github instead.  I can push updates over to the copy on postgresql.org 
easily enough, and that way you don't have to worry about getting an 
account on that server.

There's a long list of suggested improvements to make at 
https://github.com/gregs1104/pgtune/blob/master/TODO

Where I would recommend getting started is doing some of the small items 
on there, some of which I have already put comments into the code about 
but just not finished yet.  Some examples:

-Validate against min/max
-Show original value in output
-Limit shared memory use on Windows (see notes on shared_buffers at 
http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server for more 
information)
-Look for postgresql.conf file using PGDATA environment variable
-Look for settings files based on path of the pgtune executable
-Save a settings reference files for newer versions of PostgreSQL (right 
now I only target 8.4) and allow passing in the version you're configuring.

A common mistake made by GSOC students is to dive right in to trying to 
make big changes.  You'll be more successful if you get practice at 
things like preparing and sharing patches on smaller changes first.

At the next level, there are a few larger features that I would consider 
valuable that are not really addressed by the program yet:

-Estimate how much shared memory is used by the combination of 
settings.  See Table 17-2 at 
http://www.postgresql.org/docs/9.0/static/kernel-resources.html ; those 
numbers aren't perfect, and improving that table is its own useful 
project.  But it gives an idea how they fit together.  I have some notes 
at the end of the TODO file on how I think the information needed to 
produce this needs to be passed around the inside of pgtune.

-Use that estimate to produce a sysctl.conf file for one platform; Linux 
is the easiest one to start with.  I've attached a prototype showing how 
to do that, written in bash.

-Write a Python-TK or web-based front-end for the program.

Now that I know someone is going to work on this program again, I'll see 
what I can do to clean some parts of it up.  There are a couple of 
things it's easier for me to just fix rather than to describe, like the 
way I really want to change how it adds comments to the settings it changes.

-- 
Greg Smith   2ndQuadrant US    greg(at)2ndQuadrant(dot)com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support  www.2ndQuadrant.us



Attachment: shmsetup
Description: text/plain (915 bytes)

In response to

Responses

pgsql-hackers by date

Next:From: Greg SmithDate: 2011-04-28 02:02:44
Subject: Re: improvements to pgtune
Previous:From: ShivDate: 2011-04-28 00:59:12
Subject: Re: Introduction

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group