Thread: AIX slow buffer reads

AIX slow buffer reads

From
André Volpato
Date:
Hi all,

We are tuning a PostgreSQL box with AIX 5.3 and got stucked in a very odd situation.
When a query got ran for the second time, the system seems to deliver the results to slow.

Here´s some background info:

AIX Box:
PostgreSQL 8.4.4, AIX 5.3-9 64bits, SAN IBM DS3400, 8x450GB SAS 15K Raid-5
8GB RAM, 2.3GB Shared buffers

Debian Box:
PostgreSQL 8.4.4, Debian 4.3.2 64bits, SAN IBM DS3400, 5x300GB SAS 15K Raid-0
7GB RAM, 2.1GB Shared buffers

Right now, we changed lots of AIX tunables to increase disk and SO performance.
Of course, postgres got tunned as well. I can post all changes made until now if needed.

To keep it simple, I will try to explain only the buffer read issue.
This query [1] took like 14s to run at AIX, and almost the same time at Debian.
The issue is when I run it for the second time:
AIX - 8s
Debian - 0.3s

These times keep repeating after the second run, and I can ensure AIX isn´t touching the disks anymore.
I´ve never seen this behaviour before. I heard about Direct I/O and I was thinking about givng it a shot.
Any ideas?


1 - http://explain.depesz.com/s/5oz


[]´s, André Volpato


Re: AIX slow buffer reads

From
Merlin Moncure
Date:
On Mon, Oct 25, 2010 at 2:21 PM, André Volpato
<andre.volpato@ecomtecnologia.com.br> wrote:
> Hi all,
>
> We are tuning a PostgreSQL box with AIX 5.3 and got stucked in a very odd situation.
> When a query got ran for the second time, the system seems to deliver the results to slow.
>
> Here´s some background info:
>
> AIX Box:
> PostgreSQL 8.4.4, AIX 5.3-9 64bits, SAN IBM DS3400, 8x450GB SAS 15K Raid-5
> 8GB RAM, 2.3GB Shared buffers
>
> Debian Box:
> PostgreSQL 8.4.4, Debian 4.3.2 64bits, SAN IBM DS3400, 5x300GB SAS 15K Raid-0
> 7GB RAM, 2.1GB Shared buffers
>
> Right now, we changed lots of AIX tunables to increase disk and SO performance.
> Of course, postgres got tunned as well. I can post all changes made until now if needed.
>
> To keep it simple, I will try to explain only the buffer read issue.
> This query [1] took like 14s to run at AIX, and almost the same time at Debian.
> The issue is when I run it for the second time:
> AIX - 8s
> Debian - 0.3s
>
> These times keep repeating after the second run, and I can ensure AIX isn´t touching the disks anymore.
> I´ve never seen this behaviour before. I heard about Direct I/O and I was thinking about givng it a shot.
> Any ideas?
>

I doubt disk/io is the problem.

*) Are the plans *exactly* the same?

*) Are you running explain analyze?  There are some platform specific
interactions caused by timing.

*) Are you transferring the data across the network? rule out
(horribly difficult to diagnose/fix) network effects.

merlin

Re: AIX slow buffer reads

From
André Volpato
Date:
| On Mon, Oct 25, 2010 at 2:21 PM, André Volpato
| <andre.volpato@ecomtecnologia.com.br> wrote:
| > Hi all,
| >
| > We are tuning a PostgreSQL box with AIX 5.3 and got stucked in a
| > very odd situation.
| > When a query got ran for the second time, the system seems to
| > deliver the results to slow.
| >
| > Here´s some background info:
| >
| > AIX Box:
| > PostgreSQL 8.4.4, AIX 5.3-9 64bits, SAN IBM DS3400, 8x450GB SAS 15K
| > Raid-5
| > 8GB RAM, 2.3GB Shared buffers
| >
| > Debian Box:
| > PostgreSQL 8.4.4, Debian 4.3.2 64bits, SAN IBM DS3400, 5x300GB SAS
| > 15K Raid-0
| > 7GB RAM, 2.1GB Shared buffers
| >
| > Right now, we changed lots of AIX tunables to increase disk and SO
| > performance.
| > Of course, postgres got tunned as well. I can post all changes made
| > until now if needed.
| >
| > To keep it simple, I will try to explain only the buffer read issue.
| > This query [1] took like 14s to run at AIX, and almost the same time
| > at Debian.
| > The issue is when I run it for the second time:
| > AIX - 8s
| > Debian - 0.3s
| >
| > These times keep repeating after the second run, and I can ensure
| > AIX isn´t touching the disks anymore.
| > I´ve never seen this behaviour before. I heard about Direct I/O and
| > I was thinking about givng it a shot.
| > Any ideas?
| >
|
| I doubt disk/io is the problem.

Me either.
Like I said, AIX do not touch the storage when runing the query.
It became CPU-bound after data got into cache.


| *) Are the plans *exactly* the same?


The plan I sent refers to the AIX box:
http://explain.depesz.com/s/5oz
At Debian, the plan looks pretty much the same.


| *) Are you running explain analyze? There are some platform specific
| interactions caused by timing.

Yes. I´m not concerned about timing because the difference (8s against 0.3s) is huge.


| *) Are you transferring the data across the network? rule out
| (horribly difficult to diagnose/fix) network effects.

Not likely... Both boxes are in the same Bladecenter, using the same storage.


|
| merlin


[]´s, Andre Volpato

Re: AIX slow buffer reads

From
Brad Nicholson
Date:
On 10-10-25 03:26 PM, André Volpato wrote:
> | On Mon, Oct 25, 2010 at 2:21 PM, André Volpato
> |<andre.volpato@ecomtecnologia.com.br>  wrote:
> |>  Hi all,
> |>
> |>  We are tuning a PostgreSQL box with AIX 5.3 and got stucked in a
> |>  very odd situation.
> |>  When a query got ran for the second time, the system seems to
> |>  deliver the results to slow.
> |>
> |>  Here´s some background info:
> |>
> |>  AIX Box:
> |>  PostgreSQL 8.4.4, AIX 5.3-9 64bits, SAN IBM DS3400, 8x450GB SAS 15K
> |>  Raid-5
> |>  8GB RAM, 2.3GB Shared buffers
> |>
> |>  Debian Box:
> |>  PostgreSQL 8.4.4, Debian 4.3.2 64bits, SAN IBM DS3400, 5x300GB SAS
> |>  15K Raid-0
> |>  7GB RAM, 2.1GB Shared buffers
> |>
> |>  Right now, we changed lots of AIX tunables to increase disk and SO
> |>  performance.
> |>  Of course, postgres got tunned as well. I can post all changes made
> |>  until now if needed.
> |>
> |>  To keep it simple, I will try to explain only the buffer read issue.
> |>  This query [1] took like 14s to run at AIX, and almost the same time
> |>  at Debian.
> |>  The issue is when I run it for the second time:
> |>  AIX - 8s
> |>  Debian - 0.3s
> |>
> |>  These times keep repeating after the second run, and I can ensure
> |>  AIX isn´t touching the disks anymore.
> |>  I´ve never seen this behaviour before. I heard about Direct I/O and
> |>  I was thinking about givng it a shot.
> |>  Any ideas?
> |>
> |
> | I doubt disk/io is the problem.
>
> Me either.
> Like I said, AIX do not touch the storage when runing the query.
> It became CPU-bound after data got into cache.

Have you confirmed that the hardware is ok on both servers?

Have both OS's been tuned by people that know how to tune the respective
OS's?  AIX is very different than Linux, and needs to be tuned accordingly.

On AIX can you trace why it is CPU bound?  What else is taking the CPU
time, anything?

Also, can you provide the output of pg_config from your AIX build?

--
Brad Nicholson  416-673-4106
Database Administrator, Afilias Canada Corp.



Re: AIX slow buffer reads

From
André Volpato
Date:
----- Mensagem original -----
| On 10-10-25 03:26 PM, André Volpato wrote:
| > | On Mon, Oct 25, 2010 at 2:21 PM, André Volpato
| > |<andre.volpato@ecomtecnologia.com.br> wrote:

(...)

| > |>  These times keep repeating after the second run, and I can
| > |>  ensure AIX isn´t touching the disks anymore.
| > |>  I´ve never seen this behaviour before. I heard about Direct I/O
| > |>  and I was thinking about givng it a shot.
| > |>
| > |>  Any ideas?
| > |>
| > |
| > | I doubt disk/io is the problem.
| >
| > Me either.
| > Like I said, AIX do not touch the storage when runing the query.
| > It became CPU-bound after data got into cache.
|
| Have you confirmed that the hardware is ok on both servers?
|

The hardware was recently instaled and checked by the vendor team.
AIX box is on JS22:
PostgreSQL 8.4.4, AIX 5.3-9 64bits, SAN IBM DS3400, 8x450GB SAS 15K Raid-5
8GB RAM (DDR2 667)

# lsconf
System Model: IBM,7998-61X
Processor Type: PowerPC_POWER6
Processor Implementation Mode: POWER 6
Processor Version: PV_6
Number Of Processors: 4
Processor Clock Speed: 4005 MHz
CPU Type: 64-bit
Kernel Type: 64-bit
Memory Size: 7680 MB

Debian box is on HS21:
PostgreSQL 8.4.4, Debian 4.3.2 64bits, SAN IBM DS3400, 5x300GB SAS 15K Raid-0
7GB RAM (DDR2 667)
We are forced to use RedHat on this machine, so we are virtualizing the Debian box.

# cpuinfo
processor       : [0-7]
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
stepping        : 6
cpu MHz         : 2500.148
cache size      : 6144 KB



| Have both OS's been tuned by people that know how to tune the
| respective OS's? AIX is very different than Linux, and needs to be tuned
| accordingly.

We´ve been tuning AIX for the last 3 weeks, and lots of tuneables got changed.
On Debian, we have far more experience, and it´s been a chalenge to understand how AIX works.

Most important tunes:
page_steal_method=1
lru_file_repage=0
kernel_heap_psize=64k
maxperm%=90
maxclient%=90
minperm%=20

Disk:
chdev -l hdisk8 -a queue_depth=24
chdev -l hdisk8 -a reserve_policy=no_reserve
chdev -l hdisk8 -a algorithm=round_robin
chdev -l hdisk8 -a max_transfer=0x400000

HBA:
chdev -l fcs0 -P -a max_xfer_size=0x400000 -a num_cmd_elems=1024

Postgres:
shared_buffers = 2304MB
effective_io_concurrency = 5
wal_sync_method = fdatasync
wal_buffers = 2MB
checkpoint_segments = 32
checkpoint_timeout = 10min
random_page_cost = 2.5
effective_cache_size = 7144MB

Like I said, there´s more but this is the most important.


|
| On AIX can you trace why it is CPU bound? What else is taking the CPU
| time, anything?|


We´re using iostat, svmon and vmstat to trace CPU, swap and IO activity.
On 'topas' we saw no disk activity at all, but we get a Wait% about 70%, and about 700 pages/s read in PageIn, no
PageOut,no PgspIn and no PgspOut. 
It´s a dedicated server, no process runing besides postgres.



| Also, can you provide the output of pg_config from your AIX build?

# pg_config
BINDIR = /usr/local/pgsql/bin
DOCDIR = /usr/local/pgsql/share/doc
HTMLDIR = /usr/local/pgsql/share/doc
INCLUDEDIR = /usr/local/pgsql/include
PKGINCLUDEDIR = /usr/local/pgsql/include
INCLUDEDIR-SERVER = /usr/local/pgsql/include/server
LIBDIR = /usr/local/pgsql/lib
PKGLIBDIR = /usr/local/pgsql/lib
LOCALEDIR = /usr/local/pgsql/share/locale
MANDIR = /usr/local/pgsql/share/man
SHAREDIR = /usr/local/pgsql/share
SYSCONFDIR = /usr/local/pgsql/etc
PGXS = /usr/local/pgsql/lib/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--enable-integer-datetimes' '--with-readline' '--with-threads' '--with-zlib' '--with-html' 'CC=gcc
-maix64''LDFLAGS=-Wl,-bbigtoc' 
CC = gcc -maix64
CPPFLAGS =
CFLAGS = -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-fno-strict-aliasing-fwrapv 
CFLAGS_SL =
LDFLAGS = -Wl,-bbigtoc -Wl,-blibpath:/usr/local/pgsql/lib:/usr/lib:/lib
LDFLAGS_SL = -Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE
LIBS = -lpgport -lz -lreadline -lld -lm
VERSION = PostgreSQL 8.4.4


|
| --
| Brad Nicholson 416-673-4106
| Database Administrator, Afilias Canada Corp.

[]´s, Andre Volpato

Re: AIX slow buffer reads

From
Brad Nicholson
Date:
On 10-10-26 05:04 PM, André Volpato wrote:
> ----- Mensagem original -----
> | On 10-10-25 03:26 PM, André Volpato wrote:
> |>  | On Mon, Oct 25, 2010 at 2:21 PM, André Volpato
> |>  |<andre.volpato@ecomtecnologia.com.br>  wrote:
>
> (...)
>
> |>  |>   These times keep repeating after the second run, and I can
> |>  |>   ensure AIX isn´t touching the disks anymore.
> |>  |>   I´ve never seen this behaviour before. I heard about Direct I/O
> |>  |>   and I was thinking about givng it a shot.
> |>  |>
> |>  |>   Any ideas?
> |>  |>
> |>  |
> |>  | I doubt disk/io is the problem.
> |>
> |>  Me either.
> |>  Like I said, AIX do not touch the storage when runing the query.
> |>  It became CPU-bound after data got into cache.
> |
> | Have you confirmed that the hardware is ok on both servers?
> |
>
> The hardware was recently instaled and checked by the vendor team.
> AIX box is on JS22:
> PostgreSQL 8.4.4, AIX 5.3-9 64bits, SAN IBM DS3400, 8x450GB SAS 15K Raid-5
> 8GB RAM (DDR2 667)
>
> # lsconf
> System Model: IBM,7998-61X
> Processor Type: PowerPC_POWER6
> Processor Implementation Mode: POWER 6
> Processor Version: PV_6
> Number Of Processors: 4
> Processor Clock Speed: 4005 MHz
> CPU Type: 64-bit
> Kernel Type: 64-bit
> Memory Size: 7680 MB
>
> Debian box is on HS21:
> PostgreSQL 8.4.4, Debian 4.3.2 64bits, SAN IBM DS3400, 5x300GB SAS 15K Raid-0
> 7GB RAM (DDR2 667)
> We are forced to use RedHat on this machine, so we are virtualizing the Debian box.
>
> # cpuinfo
> processor       : [0-7]
> vendor_id       : GenuineIntel
> cpu family      : 6
> model           : 23
> model name      : Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
> stepping        : 6
> cpu MHz         : 2500.148
> cache size      : 6144 KB
>
>
>
> | Have both OS's been tuned by people that know how to tune the
> | respective OS's? AIX is very different than Linux, and needs to be tuned
> | accordingly.
>
> We´ve been tuning AIX for the last 3 weeks, and lots of tuneables got changed.
> On Debian, we have far more experience, and it´s been a chalenge to understand how AIX works.
>
> Most important tunes:
> page_steal_method=1
> lru_file_repage=0
> kernel_heap_psize=64k
> maxperm%=90
> maxclient%=90
> minperm%=20
>
> Disk:
> chdev -l hdisk8 -a queue_depth=24
> chdev -l hdisk8 -a reserve_policy=no_reserve
> chdev -l hdisk8 -a algorithm=round_robin
> chdev -l hdisk8 -a max_transfer=0x400000
>
> HBA:
> chdev -l fcs0 -P -a max_xfer_size=0x400000 -a num_cmd_elems=1024
>
> Postgres:
> shared_buffers = 2304MB
> effective_io_concurrency = 5

I wonder if effective_io_concurrency has anything to do with it.  It was
implemented and mainly tested on Linux, and I am unsure if it will do
anything on AIX.  The plan you posted for the query does a bitmap index
scans which is what effective_io_concurrency will speed up.

Can you post the output of explain analyze for that query on both AIX
and Linux?  That will show where the time is being spent.

If it is being spent in the bitmap index scan, try setting
effective_io_concurrency to 0 for Linux, and see what effect that has.


--
Brad Nicholson  416-673-4106
Database Administrator, Afilias Canada Corp.



Re: AIX slow buffer reads

From
André Volpato
Date:
----- Mensagem original -----
| On 10-10-26 05:04 PM, André Volpato wrote:
| > ----- Mensagem original -----
| > | On 10-10-25 03:26 PM, André Volpato wrote:
| > |>  | On Mon, Oct 25, 2010 at 2:21 PM, André Volpato
| > |>  |<andre.volpato@ecomtecnologia.com.br> wrote:
| >
| > (...)
| >
| > |>  |>   These times keep repeating after the second run, and I can
| > |>  |>   ensure AIX isn´t touching the disks anymore.
| > |>  |>   I´ve never seen this behaviour before. I heard about Direct
| > |>  |>   I/O
| > |>  |>   and I was thinking about givng it a shot.
| > |>  |>
| > |>  |>   Any ideas?
| > |>  |>
| > |>  |
| > |>  | I doubt disk/io is the problem.
| > |>
| > |>  Me either.
| > |>  Like I said, AIX do not touch the storage when runing the query.
| > |>  It became CPU-bound after data got into cache.
| > |
| > | Have you confirmed that the hardware is ok on both servers?
| > |
| >
| > The hardware was recently instaled and checked by the vendor team.
| > AIX box is on JS22:
| > PostgreSQL 8.4.4, AIX 5.3-9 64bits, SAN IBM DS3400, 8x450GB SAS 15K
| > Raid-5
| > 8GB RAM (DDR2 667)
| >
| > # lsconf
| > System Model: IBM,7998-61X
| > Processor Type: PowerPC_POWER6
| > Processor Implementation Mode: POWER 6
| > Processor Version: PV_6
| > Number Of Processors: 4
| > Processor Clock Speed: 4005 MHz
| > CPU Type: 64-bit
| > Kernel Type: 64-bit
| > Memory Size: 7680 MB
| >
| > Debian box is on HS21:
| > PostgreSQL 8.4.4, Debian 4.3.2 64bits, SAN IBM DS3400, 5x300GB SAS
| > 15K Raid-0
| > 7GB RAM (DDR2 667)
| > We are forced to use RedHat on this machine, so we are virtualizing
| > the Debian box.
| >
| > # cpuinfo
| > processor : [0-7]
| > vendor_id : GenuineIntel
| > cpu family : 6
| > model : 23
| > model name : Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
| > stepping : 6
| > cpu MHz : 2500.148
| > cache size : 6144 KB
| >
| >
| >
| > | Have both OS's been tuned by people that know how to tune the
| > | respective OS's? AIX is very different than Linux, and needs to be
| > | tuned
| > | accordingly.
| >
| > We´ve been tuning AIX for the last 3 weeks, and lots of tuneables
| > got changed.
| > On Debian, we have far more experience, and it´s been a chalenge to
| > understand how AIX works.
| >
| > Most important tunes:
| > page_steal_method=1
| > lru_file_repage=0
| > kernel_heap_psize=64k
| > maxperm%=90
| > maxclient%=90
| > minperm%=20
| >
| > Disk:
| > chdev -l hdisk8 -a queue_depth=24
| > chdev -l hdisk8 -a reserve_policy=no_reserve
| > chdev -l hdisk8 -a algorithm=round_robin
| > chdev -l hdisk8 -a max_transfer=0x400000
| >
| > HBA:
| > chdev -l fcs0 -P -a max_xfer_size=0x400000 -a num_cmd_elems=1024
| >
| > Postgres:
| > shared_buffers = 2304MB
| > effective_io_concurrency = 5
|
| I wonder if effective_io_concurrency has anything to do with it. It
| was
| implemented and mainly tested on Linux, and I am unsure if it will do
| anything on AIX. The plan you posted for the query does a bitmap index
| scans which is what effective_io_concurrency will speed up.
|
| Can you post the output of explain analyze for that query on both AIX
| and Linux? That will show where the time is being spent.


I changed the querys in order to make a more valuable comparison.

Debian first run (23s):
http://explain.depesz.com/s/1fT

AIX first run (40s):
http://explain.depesz.com/s/CRG

Debian cached consecutive runs (8s)
http://explain.depesz.com/s/QAi

AIX cached consecutive runs (12s)
http://explain.depesz.com/s/xJU

Both boxes are runing with DDR2 667, so RAM speed seems to be the bootleneck now.
We´re about to try RedHat EL6 in the next few days.

|
| If it is being spent in the bitmap index scan, try setting
| effective_io_concurrency to 0 for Linux, and see what effect that has.

I disabled effective_io_concurrency at AIX but it made no changes on bitmap index times.




| --
| Brad Nicholson 416-673-4106
| Database Administrator, Afilias Canada Corp.
|

[]´s, Andre Volpato

Re: AIX slow buffer reads

From
Greg Smith
Date:
André Volpato wrote:
> |
> | If it is being spent in the bitmap index scan, try setting
> | effective_io_concurrency to 0 for Linux, and see what effect that has.
>
> I disabled effective_io_concurrency at AIX but it made no changes on bitmap index times.
>

Brad's point is that it probably doesn't do anything at all on AIX, and
is already disabled accordingly.  But on Linux, it is doing something,
and that might be contributing to why it's executing so much better on
that platform.  If you disable that parameter on your Debian box, that
should give you an idea whether that particular speed-up is a major
component to the difference you're seeing or not.

Also, if the system check was done by the "vendor team" team, don't
trust them at all.  It doesn't sound like a disk problem is involved in
your case yet, but be sure to do your own basic disk benchmarking too
rather than believing what you're sold.  There's a quick intro to that
at http://www.westnet.com/~gsmith/content/postgresql/pg-disktesting.htm
and a much longer treatment of the subject in my book if you want a lot
more details.  I don't have any AIX-specific tuning advice in there though.

--
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services and Support        www.2ndQuadrant.us
"PostgreSQL 9.0 High Performance": http://www.2ndQuadrant.com/books


Re: AIX slow buffer reads

From
Tom Lane
Date:
Greg Smith <greg@2ndquadrant.com> writes:
> André Volpato wrote:
>> I disabled effective_io_concurrency at AIX but it made no changes on bitmap index times.

> Brad's point is that it probably doesn't do anything at all on AIX, and
> is already disabled accordingly.

AFAICT from googling, AIX does have posix_fadvise, though maybe it
doesn't do anything useful ...

            regards, tom lane

Re: AIX slow buffer reads

From
André Volpato
Date:
----- Mensagem original -----
| André Volpato wrote:
| > |
| > | If it is being spent in the bitmap index scan, try setting
| > | effective_io_concurrency to 0 for Linux, and see what effect that
| > | has.
| >
| > I disabled effective_io_concurrency at AIX but it made no changes on
| > bitmap index times.
| >
|
| Brad's point is that it probably doesn't do anything at all on AIX,
| and is already disabled accordingly. But on Linux, it is doing something,
| and that might be contributing to why it's executing so much better on
| that platform. If you disable that parameter on your Debian box, that
| should give you an idea whether that particular speed-up is a major
| component to the difference you're seeing or not.


Cant do it right now, but will do it ASAP and post here.


| Also, if the system check was done by the "vendor team" team, don't
| trust them at all. It doesn't sound like a disk problem is involved in
| your case yet, but be sure to do your own basic disk benchmarking too
| rather than believing what you're sold. There's a quick intro to that
| at
| http://www.westnet.com/~gsmith/content/postgresql/pg-disktesting.htm
| and a much longer treatment of the subject in my book if you want a
| lot
| more details. I don't have any AIX-specific tuning advice in there
| though.|


I´m gonna read your sugestion, thanks.
We tested the disks also, and we did a lot of tuning to get acceptable transfer rates at AIX.

Yesterday I tried your "stream-scaling" and get around 7000MB/s (single thread) and 10000MB/s (eight threads) at AIX,
anda little less than that at Debian, since its a virtual box. 
I found that even my notebook is close to that transfer rates, and both boxes are limited by DDR2 speeds.


| --
| Greg Smith 2ndQuadrant US greg@2ndQuadrant.com Baltimore, MD
| PostgreSQL Training, Services and Support www.2ndQuadrant.us
| "PostgreSQL 9.0 High Performance": http://www.2ndQuadrant.com/books

[]´s, André Volpato

Re: AIX slow buffer reads

From
Brad Nicholson
Date:
On 10/27/2010 4:10 PM, Tom Lane wrote:
> Greg Smith<greg@2ndquadrant.com>  writes:
>> André Volpato wrote:
>>> I disabled effective_io_concurrency at AIX but it made no changes on bitmap index times.
>> Brad's point is that it probably doesn't do anything at all on AIX, and
>> is already disabled accordingly.
> AFAICT from googling, AIX does have posix_fadvise, though maybe it
> doesn't do anything useful ...
>
>             regards, tom lane

If there is an easy way to check if it does do anything useful?  If so,
I can check it out.

--
Brad Nicholson  416-673-4106
Database Administrator, Afilias Canada Corp.


Re: AIX slow buffer reads

From
Tom Lane
Date:
Brad Nicholson <bnichols@ca.afilias.info> writes:
> On 10/27/2010 4:10 PM, Tom Lane wrote:
>> AFAICT from googling, AIX does have posix_fadvise, though maybe it
>> doesn't do anything useful ...

> If there is an easy way to check if it does do anything useful?  If so,
> I can check it out.

If you don't see any performance change in bitmap scans between
effective_io_concurrency = 0 and effective_io_concurrency = maybe 4 or
so, then you could probably conclude it's a no-op.

            regards, tom lane

Re: AIX slow buffer reads

From
André Volpato
Date:
----- Mensagem original -----
| André Volpato wrote:
| > |
| > | If it is being spent in the bitmap index scan, try setting
| > | effective_io_concurrency to 0 for Linux, and see what effect that
| > | has.
| >
| > I disabled effective_io_concurrency at AIX but it made no changes on
| > bitmap index times.
| >
|
| Brad's point is that it probably doesn't do anything at all on AIX,
| and
| is already disabled accordingly. But on Linux, it is doing something,
| and that might be contributing to why it's executing so much better on
| that platform. If you disable that parameter on your Debian box, that
| should give you an idea whether that particular speed-up is a major
| component to the difference you're seeing or not.


Here´s new explains based on Debian box:

(1) effective_io_concurrency = 5
# /etc/init.d/postgresql stop
# echo 3 > /proc/sys/vm/drop_caches
# /etc/init.d/postgresql start

http://explain.depesz.com/s/br

(2) effective_io_concurrency = 0
# /etc/init.d/postgresql stop
# echo 3 > /proc/sys/vm/drop_caches
# /etc/init.d/postgresql start

http://explain.depesz.com/s/3A0

BitmapAnd really gets improved a little bit in (1), but Bitmap index scans got a lot worse.


| --
| Greg Smith 2ndQuadrant US greg@2ndQuadrant.com Baltimore, MD
| PostgreSQL Training, Services and Support www.2ndQuadrant.us
| "PostgreSQL 9.0 High Performance": http://www.2ndQuadrant.com/books

[]´s, Andre Volpato