log_duration对PostgreSQL性能的影响

问题描述 投票:0回答:2

全部,

我试图了解PostgreSQL服务器设置log_duration的影响。将其设置为ON会导致任何性能问题。我试图用Postgres后端设置融合服务器。当此值设置为ON时,服务的响应很慢,而当我将其设置为OFF时,它的响应很快。

log_min_duration_statement设置为-1 =>不应记录任何查询文本。

查询:

  1. 为什么设置为开时速度慢
  2. Logging =>它是否登录任何日志文件?如果是,请在服务器的哪里找到它
  3. [还有另一个功能pg_stat_statements.track,可以将其设置为TOP,ALL。为什么设置此选项不会带来性能问题。它还跟踪查询。但是,它给出了total_time和调用,但不是单个。

有人可以帮我了解一下影响吗?

postgresql confluence postgresql-9.6
2个回答
1
投票

参考此,如果您需要更多信息,请告诉我:

log min duration

这允许记录语句样本,而不会引起过多日志流量(可能会影响性能)。这在以下情况下很有用使用大量简短查询来分析工作负载。

使用两个新的GUC参数配置采样:

  • log_min_duration_sample-所需的最小语句持续时间

  • log_statement_sample_rate-采样率(0.0-1.0)

仅持续时间超过log_min_duration_sample的语句为考虑取样。要启用采样,这两个GUC都必须正确设置。

现有的log_min_duration_statement GUC具有更高的优先级,即持续时间超过log_min_duration_statement的语句将是始终记录日志,而无视样本的配置方式。这个表示仅配置

log_min_duration_sample

实际上是对语句进行采样,而不是记录所有内容。


0
投票

最好的了解方法是测量它。

对于简单的仅选择查询,例如pgbench -S,影响很大。关闭时,每秒可获得22,000个选择,打开时,每秒可获得13,000个选择。对于更复杂的选择查询或DML,百分比影响将小得多。

格式化和打印日志消息以及IPC到日志收集器需要花费时间。 pg_stat_statements并非针对每个查询都这样做,它只会增加一些计数器。

当然log_duration记录到日志文件(或管道),否则打开它就没有任何意义。该位置是高度可配置的,请在postgresql.conf中查找诸如log_destination,log_directory和log_filename之类的内容。 (但是,如果您不知道在哪里可以找到日志,为什么还要首先打扰打开该日志?)

© www.soinside.com 2019 - 2024. All rights reserved.