Обсуждение: Overusing 1 CPU

От:
Mozzi
Дата:

Hallo all

I have a strange problem here.
I have a pgsql database running on Intel hardware here, it has 8 cores
hyperthreaded so you see 16 cpu's.

This box is basically adle @ the moment as it is still in testing yet
top shows high usage on just 1 of the cores.
mpstat gives the below.
As you can see only cpu 1 is verey bussy, the rest are idle.

Thanx

Mozzi

13:02:19     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal
%guest   %idle
13:02:21     all    4.70    0.00    0.41    1.57    0.00    0.00    0.00
0.00   93.32
13:02:21       0    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
13:02:21       1   72.68    0.00    5.37   21.46    0.00    0.49    0.00
0.00    0.00
13:02:21       2    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
13:02:21       3    0.00    0.00    0.51    0.00    0.00    0.00    0.00
0.00   99.49
13:02:21       4    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
13:02:21       5    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
13:02:21       6    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
13:02:21       7    0.00    0.00    0.36    0.00    0.00    0.00    0.00
0.00   99.64
13:02:21       8    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
13:02:21       9    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
13:02:21      10    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
13:02:21      11    0.00    0.00    0.00    1.00    0.00    0.00    0.00
0.00   99.00
13:02:21      12    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
13:02:21      13    0.00    0.00    0.00    2.00    0.00    0.00    0.00
0.00   98.00
13:02:21      14    0.00    0.00    0.51    0.00    0.00    0.00    0.00
0.00   99.49
13:02:21      15    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00

Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal
%guest   %idle
Average:     all    4.66    0.00    0.43    1.46    0.00    0.04    0.00
0.00   93.41
Average:       0    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
Average:       1   72.27    0.00    5.47   21.58    0.00    0.59    0.00
0.00    0.10
Average:       2    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
Average:       3    0.10    0.00    0.50    0.00    0.00    0.00    0.00
0.00   99.40
Average:       4    0.10    0.00    0.10    0.00    0.00    0.00    0.00
0.00   99.80
Average:       5    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
Average:       6    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
Average:       7    0.00    0.00    0.10    0.60    0.00    0.00    0.00
0.00   99.30
Average:       8    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
Average:       9    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
Average:      10    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
Average:      11    0.00    0.00    0.00    0.20    0.00    0.00    0.00
0.00   99.80
Average:      12    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00
Average:      13    0.00    0.00    0.10    0.40    0.00    0.00    0.00
0.00   99.50
Average:      14    0.00    0.00    0.50    0.00    0.00    0.00    0.00
0.00   99.50
Average:      15    0.00    0.00    0.00    0.00    0.00    0.00    0.00
0.00  100.00



От:
Matthew Wakeling
Дата:

On Wed, 2 Jun 2010, Mozzi wrote:
> This box is basically adle @ the moment as it is still in testing yet
> top shows high usage on just 1 of the cores.

First port of call: What process is using the CPU? Run top on a fairly
wide terminal and use the "c" button to show the full command line.

Matthew

--
 Debugging is twice as hard as writing the code in the first place.
 Therefore, if you write the code as cleverly as possible, you are, by
 definition, not smart enough to debug it.              - Kernighan

От:
Mozzi
Дата:

Hi

Thanx mate Create Index seems to be the culprit.
Is it normal to just use 1 cpu tho?

Mozzi

On Wed, 2010-06-02 at 12:24 +0100, Matthew Wakeling wrote:
> On Wed, 2 Jun 2010, Mozzi wrote:
> > This box is basically adle @ the moment as it is still in testing yet
> > top shows high usage on just 1 of the cores.
>
> First port of call: What process is using the CPU? Run top on a fairly
> wide terminal and use the "c" button to show the full command line.
>
> Matthew
>



От:
"A. Kretschmer"
Дата:

In response to Mozzi :
> Hi
>
> Thanx mate Create Index seems to be the culprit.
> Is it normal to just use 1 cpu tho?

If you have only one client, yes. If you have more then one active
connections, every connection will use one CPU. In your case: create
index can use only one CPU.


Regards, Andreas
--
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: -> Header)
GnuPG: 0x31720C99, 1006 CCB4 A326 1D42 6431  2EB0 389D 1DC2 3172 0C99

От:
Stephen Frost
Дата:

Mozzi,

* Mozzi () wrote:
> Thanx mate Create Index seems to be the culprit.
> Is it normal to just use 1 cpu tho?

Yes, PG can only use 1 CPU for a given query or connection.  You'll
start to see the other CPUs going when you have more than one connection
to the database.  If you're building alot of indexes then you probably
want to split up the statements into multiple connections and run them
in parallel.

    Thanks,

        Stephen

От:
"J. Roeleveld"
Дата:

On Wednesday 02 June 2010 13:37:37 Mozzi wrote:
> Hi
>
> Thanx mate Create Index seems to be the culprit.
> Is it normal to just use 1 cpu tho?

If it is a single-threaded process, then yes.
And a "Create index" on a single table will probably be single-threaded.

If you now start a "create index" on a different table, a different CPU should
be used for that.

>
> Mozzi
>
> On Wed, 2010-06-02 at 12:24 +0100, Matthew Wakeling wrote:
> > On Wed, 2 Jun 2010, Mozzi wrote:
> > > This box is basically adle @ the moment as it is still in testing yet
> > > top shows high usage on just 1 of the cores.
> >
> > First port of call: What process is using the CPU? Run top on a fairly
> > wide terminal and use the "c" button to show the full command line.
> >
> > Matthew
>