目录

1. 核心步骤

1.1 修改配置文件

1.2 动态加载配置(无需重启容器)

1.3 验证配置生效

1.3.1 查看参数

1.3.2 执行测试慢查询

2. 高级用法

2.1 使用分析工具

2.2 启用扩展

3. 注意事项

3.1 日志目录权限

3.2  性能影响


配置Docker部署的PostgreSQL记录慢查询日志,需通过修改配置文件核心参数实现。以下是完整步骤及注意事项,适用于PostgreSQL 10+版本:

1. 核心步骤

1.1 修改配置文件
  • 进入容器
docker exec -it <容器名或ID> bash  
  • 编辑配置文件(通常位于 /var/lib/postgresql/data/postgresql.conf):
vim  /var/lib/postgresql/data/postgresql.conf  
  • 添加或修改以下参数:
#慢查询阈值(单位:毫秒);记录超过10000ms(10秒)的查询  
log_min_duration_statement = 10000  #日志记录格式(增强可读性);时间戳、进程ID、用户、数据库名  
log_line_prefix = '%m [%p] %u@%d '  #确保日志输出到标准输出
log_destination = 'stderr'  #启动日志收集功能,将日志写入文件
logging_collector = on  #【可选】自定义日志目录
log_directory = '/var/log/postgresql'  #【可选】自定义日志文件[可选]
log_filename = 'postgresql-%a.log'  #【可选】记录连接/断开事件(辅助定位慢查询上下文)
log_connections = on
log_disconnections = on#【可选】记录锁等待(辅助分析锁竞争)
log_lock_waits = on#【可选】日志文件命名格式(按日期时间切割)
log_filename = 'postgresql-%Y%m%d_%H%M%S.log'#【高级用法】日志自动切割策略(每天切割一次,或 1GB 切割)
log_rotation_age = '1d'
log_rotation_size = '1GB'#【高级用法】仅对特定数据库/用户启用慢日志
# 对数据库 'lmzf_db' 设置5000ms阈值  
ALTER DATABASE lmzf_db SET log_min_duration_statement = 5000;  
1.2 动态加载配置(无需重启容器)
# 在容器内执行  
su - postgres  
pg_ctl reload -D /var/lib/postgresql/data  

或在宿主机执行:

docker exec <容器名> su - postgres -c 'pg_ctl reload'  
1.3 验证配置生效
1.3.1 查看参数

  SHOW log_min_duration_statement;

docker exec <容器名> psql -U postgres -c "SHOW log_min_duration_statement;"  
1.3.2 执行测试慢查询

  SELECT pg_sleep(12); 

docker exec <容器名> psql -U postgres -c "SELECT pg_sleep(12);"  

观察日志文件是否生成记录。

2. 高级用法

2.1 使用分析工具

         可以使用第三方工具如 pgBadger 对慢查询日志进行分析,生成详细的性能报告,帮助识别性能瓶颈。安装 pgBadger 后,运行以下命令生成报告: 

pgbadger    /path/to/postgresql.log
2.2 启用扩展

pg_stat_statements 是 PostgreSQL 内置的统计扩展,可记录 SQL 的执行次数、总耗时等详细信息(比日志更轻量)。启用步骤:

-- 1. 在 postgresql.conf 中启用扩展
shared_preload_libraries = 'pg_stat_statements'  # 添加到该行-- 2. 重启 PostgreSQL 服务
pg_ctl restart -D /path/to/postgresql/data-- 3. 创建扩展
CREATE EXTENSION pg_stat_statements;-- 4. 查询慢 SQL 统计(按总耗时排序)
SELECT query, total_time, calls, mean_time 
FROM pg_stat_statements 
ORDER BY total_time DESC 
LIMIT 10;

3. 注意事项

3.1 日志目录权限

        若自定义路径,需提前在 Docker 挂载卷中创建目录并赋予 postgres 用户写权限。

3.2  性能影响

        过低的阈值(如 100ms 以下)可能增大 I/O 负载,建议根据业务压力逐步调整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917064.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917064.shtml
英文地址,请注明出处:http://en.pswp.cn/news/917064.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 入门教程(四)委托详解

文章目录1、什么是委托2、委托的声明&#xff08;自定义委托&#xff09;3、委托的使用3.1 实例:把方法当作参数传给另一个方法3.2 注意:难精通易使用功能强大东西&#xff0c;一旦被滥用则后果非常严重4、委托的高级使用4.1 多播&#xff08;multicast&#xff09;委托4.2隐式…

React的基本语法和原理

3. React条件渲染某些情况下&#xff0c;姐妹的内容会根据不同的情况显示不同的内容&#xff0c;或者决定是否渲染某部分内容&#xff1a; 在React中&#xff0c;所有的条件判断和普通的JavaScript代码一致&#xff1b;常见的条件渲染的方式有哪些&#xff1f;方式一&#xff1…

如何在 Gradle 项目中添加依赖?(以添加 AndroidX 版本的 RecyclerView 为例)

1. 确保项目已启用 AndroidX RecyclerView 的现代版本属于 AndroidX 库&#xff0c;需确保项目已启用 AndroidX&#xff1a; 在 gradle.properties 中应有以下配置&#xff08;通常新建项目默认开启&#xff09;&#xff1a;android.useAndroidXtrue android.enableJetifiert…

深度学习与图像处理 | 基于PaddlePaddle的梯度下降算法实现(线性回归投资预测)

演示基于PaddlePaddle自动求导技术实现梯度下降&#xff0c;简化求解过程。01、梯度下降法梯度下降法是机器学习领域非常重要和具有代表性的算法&#xff0c;它通过迭代计算来逐步寻找目标函数极小值。既然是一种迭代计算方法&#xff0c;那么最重要的就是往哪个方向迭代&#…

负载均衡集群HAproxy

HAProxy 简介HAProxy 是一款高性能的负载均衡器和代理服务器&#xff0c;支持 TCP 和 HTTP 应用。广泛用于高可用性集群&#xff0c;能够有效分发流量到多个后端服务器&#xff0c;确保服务的稳定性和可扩展性。HAProxy 核心功能负载均衡&#xff1a;支持轮询&#xff08;round…

重生之我在10天内卷赢C++ - DAY 1

坐稳了&#xff0c;我们的C重生之旅现在正式发车&#xff01;请系好安全带&#xff0c;前方高能&#xff0c;但绝对有趣&#xff01;&#x1f680; 重生之我在10天内卷赢C - DAY 1导师寄语&#xff1a;嘿&#xff0c;未来的编程大神&#xff01;欢迎来到C的世界。我知道&#x…

[mind-elixir]Mind-Elixir 的交互增强:单击、双击与鼠标 Hover 功能实现

[mind-elixir]Mind-Elixir 的交互增强&#xff1a;单击、双击与鼠标 Hover 功能实现 功能简述 通过防抖&#xff0c;实现单击双击区分通过mousemove事件&#xff0c;实现hover效果 实现思路 &#xff08;一&#xff09;单击与双击事件 功能描述 单击节点时&#xff0c;可以触发…

c++-迭代器类别仿函数常用算法函数

C常用算法函数 1. 前置知识 1.1 迭代器的类别 C中&#xff0c;迭代器是 STL 容器库的核心组件之一&#xff0c;具有举足轻重的作用&#xff0c;它提供了一种 统一的方式来访问和遍历容器&#xff0c;而无需关心底层数据结构的具体实现。迭代器类似指针&#xff0c;但比指针更通…

Python深度学习框架TensorFlow与Keras的实践探索

基础概念与安装配置 TensorFlow核心架构解析 TensorFlow是由Google Brain团队开发的开源深度学习框架&#xff0c;其核心架构包含数据流图&#xff08;Data Flow Graph&#xff09;和张量计算系统。数据流图通过节点表示运算操作&#xff08;如卷积、激活函数&#xff09;&…

c# net6.0+ 安装中文智能提示

https://github.com/stratosblue/IntelliSenseLocalizer 1、安装tool dotnet tool install -g islocalizer 2、 安装IntelliSense 文件&#xff0c;安装其他net版本修改下版本号 安装中文net6.0采集包 islocalizer install auto -m net6.0 -l zh-cn 安装中英文双语net6.0采集包…

【建模与仿真】二阶邻居节点信息驱动的节点重要性排序算法

导读&#xff1a; 在复杂网络中&#xff0c;挖掘重要节点对精准推荐、交通管控、谣言控制和疾病遏制等应用至关重要。为此&#xff0c;本文提出一种局部信息驱动的节点重要性排序算法Leaky Noisy Integrate-and-Fire (LNIF)。该算法通过获取节点的二阶邻居信息计算节点重要性&…

指令微调Qwen3实现文本分类任务

参考文档&#xff1a; SwanLab入门深度学习&#xff1a;Qwen3大模型指令微调 - 肖祥 - 博客园 vLLM&#xff1a;让大语言模型推理更高效的新一代引擎 —— 原理详解一_vllm 原理-CSDN博客 概述 为了实现对100个标签的多标签文本分类任务&#xff0c;前期调用gpt-4o进行prom…

【机器学习-3】 | 决策树与鸢尾花分类实践篇

0 序言 本文将深入探讨决策树算法&#xff0c;先回顾下前边的知识&#xff0c;从其基本概念、构建过程讲起&#xff0c;带你理解信息熵、信息增益等核心要点。 接着在引入新知识点&#xff0c;介绍Scikit - learn 库中决策树的实现与应用&#xff0c;再通过一个具体项目的方式来…

【数字投影】折幕影院都是沉浸式吗?

折幕影院作为一种现代化的展示形式&#xff0c;其核心特点在于通过多块屏幕拼接和投影融合技术&#xff0c;打造更具包围感的视觉体验。折幕影院设计通常采用多折幕结构&#xff0c;如三折幕、五折幕等&#xff0c;利用多台投影机的协同工作&#xff0c;呈现无缝衔接的超大画面…

数据结构——图(三、图的 广度/深度 优先搜索)

一、广度优先搜索(BFS)①找到与一个顶点相邻的所有顶点 ②标记哪些顶点被访问过 ③需要一个辅助队列#define MaxVertexNum 100 bool visited[MaxVertexNum]; //访问标记数组 void BFSTraverse(Graph G){ //对图进行广度优先遍历&#xff0c;处理非连通图的函数 for(int i0;i…

直击WAIC | 百度袁佛玉:加速具身智能技术及产品研发,助力场景应用多样化落地

7月26日&#xff0c;2025世界人工智能大会暨人工智能全球治理高级别会议&#xff08;WAIC&#xff09;在上海开幕。同期&#xff0c;由国家地方共建人形机器人创新中心&#xff08;以下简称“国地中心”&#xff09;与中国电子学会联合承办&#xff0c;百度智能云、中国联通上海…

2025年人形机器人动捕技术研讨会将在本周四召开

2025年7月31日爱迪斯通所主办的【2025人形机器动作捕捉技术研讨会】是携手北京天树探界公司线下活动结合线上直播的形式&#xff0c;会议将聚焦在“动作捕捉软硬件协同&#xff0c;加速人形机器人训练”&#xff0c;将深度讲解多项核心技术&#xff0c;包含全球知名的惯性动捕大…

Apple基础(Xcode①-项目结构解析)

要运行设备之前先选择好设备Product---->Destination---->选择设备首次运行手机提示如出现 “未受信任的企业级开发者” → 手机打开 设置 ▸ 通用 ▸ VPN与设备管理 → 信任你的 Apple ID 即可ContentView 是 SwiftUI 项目里 最顶层、最主界面 的那个“页面”&#xff0…

微服务 02

一、网关路由网关就是网络的关口。数据在网络间传输&#xff0c;从一个网络传输到另一网络时就需要经过网关来做数据的路由和转发以及数据安全的校验。路由是网关的核心功能之一&#xff0c;决定如何将客户端请求映射到后端服务。1、快速入门创建新模块&#xff0c;引入网关依赖…

04动手学深度学习笔记(上)

04数据操作 import torch(1)张量表示一个数据组成的数组&#xff0c;这个数组可能有多个维度。 xtorch.arange(12) xtensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])(2)通过shape来访问张量的形状和张量中元素的总数 x.shapetorch.Size([12])(3)number of elements表…