Question

Nos performances Postgres ont chuté à 1/4 de ce qu'elles étaient, et nous ne pouvons pas comprendre pourquoi.

Nous avons deux machines avec un matériel identique (appelons-les A et B) :

Intel(R) Xeon(R) CPU E5-4640 0 @ 2.40GHz (64 cores)
384 GB RAM
15k SAS, 16 disk RAID 10 array

Chaque machine possède des clusters Postgres essentiellement identiques avec environ 100 Go de bases de données, avec les paramètres suivants :

version:   PostgreSQL 9.4.4 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11), 64-bit
bytea_output:   escape
checkpoint_completion_target:   0.7
checkpoint_segments:   256
checkpoint_timeout:   30min
client_encoding:   UTF8
cpu_index_tuple_cost:   0.001
cpu_operator_cost:   0.0005
cpu_tuple_cost:   0.003
DateStyle:   ISO, MDY
default_text_search_config:   pg_catalog.english
dynamic_shared_memory_type:   posix
effective_cache_size:   128GB
from_collapse_limit:   4
hot_standby:   on
join_collapse_limit:   4
lc_messages:   en_US.UTF-8
lc_monetary:   en_US.UTF-8
lc_numeric:   en_US.UTF-8
lc_time:   en_US.UTF-8
listen_addresses:   *
log_destination:   stderr
log_directory:   pg_log
log_filename:   postgresql-%Y-%m-%d_%H%M%S.log
log_line_prefix:   < %m >
log_rotation_age:   1d
log_rotation_size:   0
log_timezone:   US/Eastern
log_truncate_on_rotation:   on
logging_collector:   on
maintenance_work_mem:   1GB
max_connections:   256
max_replication_slots:   3
max_stack_depth:   2MB
max_standby_streaming_delay:   350min
max_wal_senders:   5
shared_buffers:   24GB
temp_buffers:   8MB
TimeZone:   US/Eastern
wal_buffers:   4MB
wal_keep_segments:   5000
wal_level:   hot_standby
work_mem:   96MB

Paramètres Linux :

CentOS 6.6
/sys/kernel/mm/redhat_transparent_hugepage/enabled:   Always
/sys/kernel/mm/redhat_transparent_hugepage/enabled:   Always
/sys/kernel/mm/redhat_transparent_hugepage/defrag:   Always
/proc/sys/vm/dirty_background_ratio:   10
/sys/block/sda/queue/scheduler:   cfq
/sys/block/sda/queue/read_ahead_kb:   128

blockdev --report:
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0   2395518009344   /dev/sda
rw   256   512  4096       2048      1048576000   /dev/sda1
rw   256   512  4096    2050048   1792509214720   /dev/sda2
rw   256   512  4096 3503044608    314572800000   /dev/sda3
rw   256   512  4096 4117444608    149946368000   /dev/sda4
rw   256   512  4096 4410308608    137438953472   /dev/sda5

Je ne prétends pas comprendre tout cela.

Nous avons une réplication en streaming qui conserve une copie à chaud de A sur B.Cela met B sous une charge plus lourde, en particulier dans le département mémoire, et il entre en échange (donc clairement nous faisons quelque chose de mal, puisque nous avons 384 Go de RAM).

free -g (on A):
             total       used       free     shared    buffers     cached
Mem:           378        347         30         24          2        301
-/+ buffers/cache:         44        334
Swap:          127          1        126

free -g (on B):
             total       used       free     shared    buffers     cached
Mem:           378        366         11         49          2        340
-/+ buffers/cache:         23        354
Swap:          127          1        126

La charge est généralement de 5 ou 10, mais elle peut parfois atteindre 30 à 60 pendant quelques heures lorsque des opérations intensives de reporting ou de base de données sont effectuées.

La sauvegarde de l’intégralité de la base de données prenait environ 1 heure, elle en prend désormais environ 4.

La synchronisation de la base de données de A vers B (B est utilisé pour le développement et nous actualisons les données en direct de A à B) prenait environ 1 heure, maintenant cela prend environ 4 heures.

Les requêtes qui prenaient 30 secondes (pendant des années) ont commencé à se bloquer pendant des jours sans revenir (l'augmentation de work_mem pour cette requête a résolu ce problème : La requête Postgres 9.4.4 prend une éternité).

Nous avons des sites Web et des processus Tomcat qui s'exécutent, en utilisant C3P0 pour le pooling, et des sites et processus Apache/PHP qui s'exécutent, en utilisant pgBouncer pour le pooling.Nous avons également envisagé que Tomcat utilise pgBouncer.

Nous avons envisagé d'essayer de réduire notre nombre maximal de connexions de 256 à 64 (256 date d'avant que nous utilisions le pool de connexions).

Nos paramètres actuels proviennent d'une combinaison de pgtune et de recherche, mais ma confiance dans notre configuration actuelle n'est pas élevée, et la baisse des performances n'aide pas cette confiance.

Des recommandations ?Des informations supplémentaires sont nécessaires ?

Mise à jour

Sortie d'iostat :

Server A
Linux 2.6.32-504.23.4.el6.x86_64 (openlink1.radyn.com)  08/05/2015  _x86_64_    (64 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          27.09    0.03    1.15    0.06    0.00   71.67

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             258.93      2136.65     20871.52 4370455736 42692153072

Server B
Linux 2.6.32-504.23.4.el6.x86_64 (openlink2.radyn.com)  08/05/2015  _x86_64_    (64 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          26.90    0.00    1.58    0.17    0.00   71.35

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             459.18     12641.47     17765.60 28973539688 40717751832

Sortie de vmstat :

Server A
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 7  0 1297844 8265380 2688960 333189664    0    0    17   163    0    0 27  1 72  0  0

Server B
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 9  0 3321548 16228276 2221908 349418368    0    0    99   139    0    0 27  2 71  0  0

Sortie de sar :

Server A
Linux 2.6.32-504.23.4.el6.x86_64 (openlink1.radyn.com)  08/05/2015  _x86_64_    (64 CPU)

12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM     all     13.25      0.00      1.05      0.04      0.00     85.66
12:20:01 AM     all     11.98      0.00      0.53      0.03      0.00     87.46
12:30:01 AM     all     11.86      0.00      0.67      0.03      0.00     87.43
12:40:01 AM     all     12.33      0.00      0.94      0.04      0.00     86.68
12:50:01 AM     all     11.39      0.00      0.52      0.06      0.00     88.03
01:00:01 AM     all     13.58      0.00      1.28      0.03      0.00     85.11
01:10:01 AM     all     13.37      0.00      0.82      0.02      0.00     85.79
01:20:01 AM     all     11.74      0.00      0.54      0.01      0.00     87.70
01:30:01 AM     all     12.00      0.00      0.70      0.02      0.00     87.28
01:40:01 AM     all     13.10      0.00      0.80      0.02      0.00     86.08
01:50:01 AM     all     13.19      0.00      1.06      0.02      0.00     85.73
02:00:02 AM     all     15.62      0.00      1.55      0.03      0.00     82.80
02:10:01 AM     all     18.72      0.00      2.98      0.03      0.00     78.27
02:20:02 AM     all     15.95      0.12      2.33      0.05      0.00     81.55
02:30:01 AM     all     13.58      0.01      0.89      0.01      0.00     85.51
02:40:01 AM     all     19.23      0.00      1.91      0.05      0.00     78.80
02:50:02 AM     all     23.95      0.00      0.92      0.05      0.00     75.08
03:00:01 AM     all     13.69      0.00      0.59      0.01      0.00     85.72
03:10:01 AM     all     12.87      0.00      0.49      0.01      0.00     86.64
03:20:01 AM     all     12.18      0.00      0.69      0.02      0.00     87.11
03:30:01 AM     all     11.82      0.74      0.70      0.05      0.00     86.69
03:40:01 AM     all     62.02      0.00      2.18      0.01      0.00     35.79
03:50:01 AM     all     72.96      0.00      0.71      0.00      0.00     26.32
04:00:01 AM     all     71.97      0.00      0.72      0.00      0.00     27.30
04:10:01 AM     all     71.71      0.00      0.71      0.00      0.00     27.57
04:20:01 AM     all     72.40      0.00      0.80      0.01      0.00     26.80
04:30:01 AM     all     68.69      0.00      1.24      0.00      0.00     30.07
04:40:01 AM     all     68.68      0.00      1.12      0.02      0.00     30.18
04:50:01 AM     all     72.59      0.00      0.79      0.00      0.00     26.62
05:00:01 AM     all     72.09      0.00      0.81      0.00      0.00     27.10
05:10:01 AM     all     72.61      0.00      0.79      0.00      0.00     26.59
05:20:01 AM     all     72.19      0.00      0.83      0.00      0.00     26.98
05:30:01 AM     all     75.98      0.00      1.14      0.00      0.00     22.87
05:40:02 AM     all     73.85      0.00      1.19      0.00      0.00     24.96
05:50:02 AM     all     73.47      0.00      1.21      0.00      0.00     25.32
06:00:01 AM     all     75.27      0.00      1.24      0.00      0.00     23.49
06:10:01 AM     all     76.56      0.00      1.18      0.00      0.00     22.25
06:20:01 AM     all     77.06      0.20      1.24      0.00      0.00     21.50
06:30:01 AM     all     76.44      0.00      1.29      0.00      0.00     22.27
06:40:01 AM     all     77.16      0.00      1.44      0.00      0.00     21.39
06:50:01 AM     all     76.88      0.00      1.18      0.00      0.00     21.94
07:00:01 AM     all     76.28      0.00      1.12      0.00      0.00     22.60
07:10:01 AM     all     49.72      0.00      1.49      0.11      0.00     48.67
07:20:01 AM     all     12.78      0.00      1.01      0.00      0.00     86.21
07:30:01 AM     all     14.26      0.00      1.04      0.00      0.00     84.70
07:40:01 AM     all     15.19      0.00      1.11      0.00      0.00     83.70
07:50:01 AM     all     12.85      0.00      0.98      0.00      0.00     86.17
08:00:01 AM     all     14.24      0.00      0.94      0.00      0.00     84.82
08:10:01 AM     all     13.09      0.00      0.98      0.00      0.00     85.93
08:20:01 AM     all     13.16      0.00      0.88      0.00      0.00     85.96
08:30:01 AM     all      9.87      0.00      0.53      0.00      0.00     89.60
08:40:01 AM     all      8.41      0.00      0.66      0.00      0.00     90.92
08:50:01 AM     all     10.09      0.00      0.75      0.00      0.00     89.16
09:00:01 AM     all      7.66      0.00      0.52      0.00      0.00     91.82
09:10:01 AM     all      6.68      0.00      0.43      0.00      0.00     92.89

09:10:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:20:01 AM     all      7.20      0.00      0.41      0.00      0.00     92.39
09:30:01 AM     all      6.74      0.00      0.44      0.00      0.00     92.82
09:40:01 AM     all      6.70      0.00      0.43      0.00      0.00     92.87
09:50:01 AM     all      8.12      0.00      0.54      0.04      0.00     91.30
10:00:01 AM     all     10.44      0.00      0.60      0.02      0.00     88.93
10:10:01 AM     all     10.86      0.00      0.60      0.01      0.00     88.53
10:20:01 AM     all     14.46      0.00      0.77      0.06      0.00     84.72
10:30:01 AM     all      9.31      0.13      0.84      0.10      0.00     89.63
10:40:02 AM     all     10.45      0.00      0.81      0.11      0.00     88.63
Average:        all     32.89      0.02      0.96      0.02      0.00     66.11

Server B
Linux 2.6.32-504.23.4.el6.x86_64 (openlink2.radyn.com)  08/05/2015  _x86_64_    (64 CPU)

12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM     all     12.29      0.00      2.65      0.30      0.00     84.76
12:20:01 AM     all     16.31      0.00      1.38      0.15      0.00     82.16
12:30:01 AM     all     13.46      0.00      1.59      0.07      0.00     84.88
12:40:01 AM     all     13.05      0.00      1.16      0.17      0.00     85.61
12:50:01 AM     all     11.72      0.00      1.39      0.11      0.00     86.79
01:00:01 AM     all     11.96      0.00      1.77      0.06      0.00     86.21
01:10:01 AM     all     13.21      0.00      1.69      0.06      0.00     85.04
01:20:01 AM     all     13.19      0.00      2.14      0.05      0.00     84.62
01:30:03 AM     all     19.11      0.00      4.31      0.06      0.00     76.52
01:40:02 AM     all      9.29      0.00      4.75      0.04      0.00     85.91
01:50:02 AM     all      7.16      0.00      4.81      0.04      0.00     87.99
02:00:03 AM     all      6.56      0.00      5.26      0.06      0.00     88.12
02:10:02 AM     all      8.05      0.00      7.09      0.06      0.00     84.80
02:20:03 AM     all      8.54      0.00      7.75      0.08      0.00     83.62
02:30:03 AM     all      2.99      0.00      6.20      0.09      0.00     90.72
02:40:03 AM     all     10.79      0.00      7.79      0.21      0.00     81.21
02:50:03 AM     all      5.88      0.00      4.97      0.16      0.00     88.99
03:00:02 AM     all     14.17      0.00      4.99      0.47      0.00     80.37
03:10:01 AM     all     17.17      0.00      4.18      0.26      0.00     78.40
03:20:01 AM     all     29.50      0.00      3.36      0.11      0.00     67.03
03:30:01 AM     all     25.16      0.00      3.05      0.15      0.00     71.64
03:40:01 AM     all     19.70      0.00      2.29      0.15      0.00     77.86
03:50:01 AM     all     28.69      0.00      3.01      0.09      0.00     68.21
04:00:01 AM     all     17.61      0.00      2.73      0.08      0.00     79.58
04:10:01 AM     all     16.72      0.00      2.95      0.09      0.00     80.25
04:20:01 AM     all     13.50      0.00      2.47      0.05      0.00     83.98
04:30:03 AM     all     14.88      0.00      5.20      0.08      0.00     79.84
04:40:02 AM     all     12.05      0.01      6.05      0.10      0.00     81.79
04:50:01 AM     all      9.92      0.00      6.89      0.03      0.00     83.16
05:00:03 AM     all      5.89      0.00      6.89      0.02      0.00     87.20
05:10:02 AM     all      5.22      0.00      5.55      0.05      0.00     89.18
05:20:02 AM     all      6.02      0.00      5.01      0.04      0.00     88.94
05:30:03 AM     all      8.11      0.00      6.05      0.02      0.00     85.82
05:40:02 AM     all     13.53      0.00      3.94      0.01      0.00     82.52
05:50:01 AM     all     18.90      0.00      2.48      0.02      0.00     78.60
06:00:01 AM     all     19.09      0.00      1.64      0.01      0.00     79.26
06:10:01 AM     all     18.63      0.00      1.84      0.06      0.00     79.47
06:20:01 AM     all     19.13      0.00      1.72      0.05      0.00     79.11
06:30:01 AM     all     17.73      0.00      1.94      0.02      0.00     80.31
06:40:01 AM     all     17.97      0.00      1.58      0.02      0.00     80.42
06:50:02 AM     all     12.25      0.00      2.00      0.02      0.00     85.72
07:00:01 AM     all     10.04      0.00      1.31      0.00      0.00     88.64
07:10:01 AM     all     13.39      0.00      1.59      0.00      0.00     85.02
07:20:01 AM     all     14.84      0.00      1.49      0.00      0.00     83.67
07:30:01 AM     all     12.36      0.00      0.80      0.01      0.00     86.84
07:40:01 AM     all     12.07      0.00      0.71      0.01      0.00     87.21
07:50:01 AM     all     12.98      0.00      1.14      0.00      0.00     85.88
08:00:01 AM     all     12.62      0.00      0.93      0.00      0.00     86.44
08:10:01 AM     all     11.77      0.00      0.87      0.00      0.00     87.36
08:20:01 AM     all     11.79      0.00      1.61      0.00      0.00     86.60
08:30:01 AM     all     10.80      0.00      0.79      0.00      0.00     88.40
08:40:02 AM     all     13.49      0.00      1.78      0.00      0.00     84.72
08:50:01 AM     all     12.46      0.00      1.39      0.00      0.00     86.15
09:00:02 AM     all     12.28      0.00      0.83      0.00      0.00     86.89
09:10:01 AM     all     12.65      0.00      0.77      0.01      0.00     86.57

09:10:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:20:01 AM     all     12.44      0.00      0.78      0.00      0.00     86.78
09:30:01 AM     all     12.96      0.00      1.01      0.00      0.00     86.03
09:40:01 AM     all     11.71      0.00      0.80      0.00      0.00     87.49
09:50:01 AM     all     15.23      0.00      2.04      0.06      0.00     82.67
10:00:01 AM     all     14.60      0.00      1.66      0.02      0.00     83.72
10:10:01 AM     all     13.97      0.00      2.76      0.01      0.00     83.26
10:20:01 AM     all     15.34      0.00      1.51      0.01      0.00     83.14
10:30:01 AM     all     12.84      0.00      1.34      0.80      0.00     85.03
10:40:01 AM     all     12.96      0.00      1.43      0.81      0.00     84.80
10:50:01 AM     all     14.48      0.00      1.47      0.85      0.00     83.20
Average:        all     13.46      0.00      2.85      0.10      0.00     83.59
Était-ce utile?

La solution

En fonction de vos configurations et de vos résultats, les seules suggestions que je peux vous faire essayer sont les suivantes.

  1. Désactivez les pages énormes transparentes.Les preuves du Listes de diffusion PostgreSQL, et Red Hat eux-mêmes recommandent de désactiver THP pour les charges de travail de base de données ici

  2. Ensemble vm.zone_reclaim_mode=0.Discussion ici

  3. Réglez votre ascenseur sur date limite depuis cfq.Red Hat recommande une date limite pour le stockage d'entreprise, ce qui semble être le cas.Discussion ici

  4. Modification du paramètre vm.dirty_background_ratio à vm.dirty_background_bytes et vm.dirty_bytes.

    Les valeurs par défaut sont de 10 %, ce qui, étant donné vos 384 Go de RAM, représente 38,4 Go de RAM qui doivent être sales avant que le noyau ne commence à l'écrire en arrière-plan.Je définirais les valeurs sur 64 Mo et 50 % de la RAM du contrôleur, respectivement, bien que cela soit basé sur ma propre expérience anecdotique.

J'espère que certaines de ces suggestions fonctionneront pour vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top