Time of query result delivery

From: ARCEnergo <it(at)kipspb(dot)ru>
To: pgsql-performance(at)postgresql(dot)org
Subject: Time of query result delivery
Date: 2014-01-20 13:55:50
Message-ID: CACGqWbZP0wJVbQKArqCM-0ufyLM3w0c9zTU_hguyCeqkBLRoKA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hello.

A description of what you are trying to achieve and what results you
expect.:
There are two PG server: physical and virtaul.

Physical server hardware:
1 Xeon(R) CPU E31235 @ 3.20GHz
8GB RAM
sw RAID 2x250GB WesternDigital SATA.
iperf test between PC and Physical server shown 891 Mbit/sec (on average)

Virtaul server:
2 sockets x 2 cores vCPU
RAM 8GB
iSCSI 1GBit/s volume for DB over dedicated VLAN, iperf test shown 977
Mbit/sec
iperf test between PC and virtaul server shown 892 Mbits/sec

I run the same query with EXPALIN ANALYZE via psql on my PC with "\timing
on" and I get similar server runtime for both servers and different psql
time.
When I run the same query in servers command line I get similar results
(server runtime and psql timing) on both physical and virtual servers (see
Table below).

Output:
~~~~~~
EXPLAIN ANALYZE SELECT field1, field2
FROM table1 WHERE field2 = 89170844;
QUERY PLAN

---------------------------------------------------------------------------------------------------
Index Scan using "PK_table1" on "table1" (cost=0.42..8.44 rows=1
width=42) (actual rows=1 loops=1)
Index Cond: ("field2" = 89170844)
Total runtime: 0.054 ms
(3 rows)

Time: 1.211 ms
| Physical | Virtaul
--------------------------------------------------
from PC "Total runtime" | 0.05x ms | 0.05x ms
--------------------------------------------------
from PC timing | 0.7 ms | 1.211 ms <-- strange
--------------------------------------------------
from server "Total runtime"| 0.05x ms | 0.05x ms
--------------------------------------------------
from server timing | 0.55 ms | 0.6 ms

PostgreSQL version number you are running:
Physical - postgresql91.x86_64 (9.1.11-1PGDG.rhel6) installed via yum from
yum.postgresql.org
PostgreSQL 9.1.11 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7
20120313 (Red Hat 4.4.7-3), 64-bit

Virtual - postgresql93.x86_64 (9.3.2-1PGDG.rhel6) installed via yum from
yum.postgresql.org
PostgreSQL 9.3.2 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7
20120313 (Red Hat 4.4.7-3), 64-bit

Changes made to the settings in the postgresql.conf file:
Physical server:
name |
current_setting | source
------------------------------+--------------------------------------------------------------------------------------+----------------------
application_name | psql
| client
archive_command | test ! -f /mnt/storage/archivedir/%f.gz &&
gzip -c %p >/mnt/storage/archivedir/%f.gz | configuration file
archive_mode | on
| configuration file
autovacuum | on
| configuration file
checkpoint_completion_target | 0.9
| configuration file
checkpoint_segments | 16
| configuration file
checkpoint_timeout | 15min
| configuration file
client_encoding | UTF8
| client
constraint_exclusion | on
| configuration file
DateStyle | ISO, DMY
| configuration file
default_statistics_target | 50
| configuration file
default_text_search_config | pg_catalog.russian
| configuration file
effective_cache_size | 704MB
| configuration file
lc_messages | en_US.UTF-8
| configuration file
lc_monetary | ru_RU.UTF-8
| configuration file
lc_numeric | ru_RU.UTF-8
| configuration file
lc_time | ru_RU.UTF-8
| configuration file
listen_addresses | *
| configuration file
log_autovacuum_min_duration | 500ms
| configuration file
log_checkpoints | on
| configuration file
log_connections | off
| configuration file
log_destination | syslog
| configuration file
log_directory | pg_log
| configuration file
log_error_verbosity | verbose
| configuration file
log_filename | postgresql-%Y-%m-%d_%H%M%S.log
| configuration file
log_line_prefix | %m db=%d u=%u host=%h
| configuration file
log_min_duration_statement | 100ms
| configuration file
log_min_error_statement | info
| configuration file
log_min_messages | info
| configuration file
log_rotation_age | 1d
| configuration file
log_rotation_size | 0
| configuration file
log_temp_files | 0
| configuration file
log_timezone | W-SU
| environment variable
log_truncate_on_rotation | on
| configuration file
logging_collector | on
| configuration file
maintenance_work_mem | 60MB
| configuration file
max_connections | 120
| configuration file
max_stack_depth | 2MB
| environment variable
port | 5432
| command line
shared_buffers | 240MB
| configuration file
syslog_facility | local0
| configuration file
syslog_ident | postgres
| configuration file
TimeZone | W-SU
| environment variable
wal_buffers | 8MB
| configuration file
wal_level | archive
| configuration file
work_mem | 16MB
| configuration file

Virtual:
name |
current_setting | source
------------------------------+--------------------------------------------------------------------------------------+----------------------
application_name | psql
| client
archive_command | test ! -f /mnt/storage/archivedir/%f.gz &&
gzip -c %p >/mnt/storage/archivedir/%f.gz | configuration file
archive_mode | on
| configuration file
autovacuum | on
| configuration file
checkpoint_completion_target | 0.9
| configuration file
checkpoint_segments | 16
| configuration file
checkpoint_timeout | 15min
| configuration file
client_encoding | UTF8
| client
constraint_exclusion | on
| configuration file
DateStyle | ISO, DMY
| configuration file
default_statistics_target | 50
| configuration file
default_text_search_config | pg_catalog.russian
| configuration file
effective_cache_size | 6000MB
| configuration file
lc_messages | en_US.UTF-8
| configuration file
lc_monetary | ru_RU.UTF-8
| configuration file
lc_numeric | ru_RU.UTF-8
| configuration file
lc_time | ru_RU.UTF-8
| configuration file
listen_addresses | *
| configuration file
log_autovacuum_min_duration | 500ms
| configuration file
log_checkpoints | on
| configuration file
log_connections | off
| configuration file
log_destination | syslog
| configuration file
log_error_verbosity | verbose
| configuration file
log_line_prefix | %m db=%d u=%u host=%h
| configuration file
log_min_duration_statement | 500ms
| configuration file
log_min_error_statement | info
| configuration file
log_min_messages | info
| configuration file
log_rotation_age | 1d
| configuration file
log_rotation_size | 0
| configuration file
log_temp_files | 0
| configuration file
log_truncate_on_rotation | on
| configuration file
logging_collector | on
| configuration file
maintenance_work_mem | 240MB
| configuration file
max_connections | 120
| configuration file
max_stack_depth | 2MB
| environment variable
port | 5432
| command line
shared_buffers | 1GB
| configuration file
syslog_facility | local0
| configuration file
syslog_ident | postgres
| configuration file
wal_buffers | 8MB
| configuration file
wal_level | archive
| configuration file
work_mem | 120MB
| configuration file

Operating system and version:
Physical - Scientific Linux release 6.2 (Carbon).
uname -a:
Linux pg.arc.world 2.6.32-279.5.1.el6.x86_64 #1 SMP Tue Aug 14 16:11:42 CDT
2012 x86_64 x86_64 x86_64 GNU/Linux

Virtual - - Scientific Linux release 6.4 (Carbon).
uname -a:
Linux vm-pg.arc.world 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 20:37:17 CST
2013 x86_64 x86_64 x86_64 GNU/Linux

What program you're using to connect to PostgreSQL:
psql 9.3.2 on PC
psql 9.1.11 on Physical server
psql 9.3.2 on Virtual server
No connection pool, load balancer or application server.

Is there anything relevant or unusual in the PostgreSQL server logs?:
No

Thank you in advance,
Vladimir Scherbo

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Katharina Koobs 2014-01-21 06:26:52 Increasing query time after updates
Previous Message Tom Lane 2014-01-18 00:33:44 Re: Wrong index selection