DeskNow Knowledge Base
Home Installation and initial setup Performance tuning for the embedded PostgreSQL database (Windows)

Performance tuning for the embedded PostgreSQL database (Windows)

PostgreSQL can be a very fast database, but its default settings are quite conservative. Very simple adjustments can improve its performance dramatically in high load environments.

Simple maintenance

Simple maintenance operations can improve the db performance. See /kb/idx/0/197/article/

General considerations about tuning

In almost every interactive web application, the bottleneck is the database, not the application. This is the case of DeskNow as well. As with every database, the more RAM you can give to the database, the better.

Very important are also SCSI or SATA NCQ drives, as they free CPU for other tasks while data is being loaded.

Finally, partitioning the database over several disks can improve considerably performance. Even the ability of writing transaction log files to a separate disk improves performance a lot (this last is a very advanced performance improvement, which will not be discussed here).

Simple configuration changes.

Most of the config changes are done in the postgresql.conf file (typically in C:\desknowdata\pgdata).

Important: before starting, backup the file postgresql.conf file. You need to restart DeskNow (which in turn restarts the database) for any change to take effect.

shared_buffers this is the most important parameter. Multiply this value by 8192 to understand how much memory postgres will use.

The default value is 10000 (80Mb RAM).
Ex 20000=160Mb ram , 30000=240Mb , etc.

Keep in mind that DeskNow uses 140 Mb at max (unless you increase its memory allocation, see /kb/idx/0/077/article/

So 70000 is typically a good choice for a server with 1Gb RAM, entirely dedicated to DeskNow.

If you have more memory, increase this number. Make sure to not use too much compared to your available memory, otherwise the system will start swapping to disk. You can check this using the Windows Task Manager/Performance section.

Note for Windows 2003: on some windows 2003 systems, you may have problems (database not starting) if you use a value larger than 130000. This is due to a Windows problem in memory management. To verify that this really is the cause of the problem, check the Windows Event Viewer, you would see an error message from Postgres saying 'FATAL:  shmat(id=1880) failed: Not enough space' (the id number would be different).

In this case, please see and for a solution.



Email Article Email
Print Article Print

How helpful was this article to you?
Related Articles
article Performance tuning for PostgreSQL database (Linux)
Note: this page is for tuning PostgreSQL on...

  October 27, 2004    Views: 103499   
article Performance tuning for MySQL database
By default MySQL is installed with very...

  April 11, 2006    Views: 21132   
article Performance tuning
This article provides a few tip and strategies...

  February 2, 2007    Views: 19593   

Powered by Lore :: (c)2003 Pineapple Technologies.