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

Re: Running on multiple core server

From: Christian Ramseyer <rc(at)networkz(dot)ch>
To: Jason Tan Boon Teck <tanboonteck(at)gmail(dot)com>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: Running on multiple core server
Date: 2010-10-14 00:59:34
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-novice
On 10/13/2010 06:03 AM, Jason Tan Boon Teck wrote:
> Why doesn't the OS make use of the other 3 cores - assigning one to
> Apache and another to PostgreSQL when only 1 client is querying?

The scheduler in your Linux kernel decided that it was better to run 
both these tasks on the same core. This may have advantages regarding 
CPU register, cache or pipeline usage.

Usually, CPU processing power isn't the bottleneck in database 
applications, I/O (i.e. how fast can be read from/written to storage) 
tends to be the limiting factor. So it's quite likely that running on 
two cores would either not improve the total runtime or even slow your 
application down.

> Is there anything I can do to tweak?

Look for an utility named taskset, usually contained in the schedutils 
package. You can use it to set the CPU affinity of processes to specific 
CPUs, e.g.

taskset -c 3,4 -p a1,a2,a3 #--> your Apaches with pid a1-3 are now bound 
to CPUs 3 & 4.

You'll need to RTFM a bit though to find out how/if it can deal with the 
child processes Postgres spawns, I've never tried to do that (or 
anything with this utility at all for that matter).

Hope that helps

In response to

pgsql-novice by date

Next:From: Bruce MomjianDate: 2010-10-14 16:24:49
Subject: Re: Not quite there yet
Previous:From: Mladen GogalaDate: 2010-10-13 12:20:59
Subject: Re: Pgstatspack errors in log files

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