0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

恒讯科技介绍:PostgreSQL服务器配置的参数指南

深圳市恒讯科技有限公司 来源:深圳市恒讯科技有限公司 作者:深圳市恒讯科技有 2023-06-16 17:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

PostgreSQ服务器配置参数在优化和增强数据库性能方面发挥着重要作用。PostgreSQL的主要可调设置位于名为 postgresql.conf 的纯文本文件中,该文件位于数据库目录结构的底部。这些配置参数中的大多数大致分为以下几类:

1、数据库连接参数

2、记录参数

3、内存参数

下面,小编就详细给大家介绍一下PostgreSQL服务器配置的参数指南。

一、连接参数

有许多配置参数可以控制人们如何远程和本地连接到数据库。

1、监听地址

任何需要从远程系统连接的安装都需要更改listen_addresses以允许连接。默认情况下仅允许来自登录到与数据库服务器相同系统的用户的本地连接。一种常见的方法是接受来自任何地方的传入连接——就主配置文件而言,如下所示:listen_addresses = '*'

2、最大连接数

Max_connections是我们在initdb生成的postgresql.conf中总是会发现设置为一个值的设置之一,通常为100。因为每个连接都使用少量的共享内存,所以共享内存默认值特别有限的系统甚至可能不允许这么多连接。因此,在创建数据库集群时,initdb会进行一些调查,然后将支持的最大值(最多100)保存到默认配置中。实际上,每个客户端用于诸如排序之类的事情的非共享内存量将使它相形见绌,但不能完全忽略共享组件。

重要的是不要将此参数设置为比您需要的值高得多的值。较大的设置有几个缺点。第一个是浪费的共享内存,通常是最后一个要关注的事情,因为每个连接的数量很小。

二、记录参数

常规日志记录设置至关重要,因为日志记录在调试错误、警告和其他系统问题中起着至关重要的作用。我们可能需要设置log_destination、log_directory和log_filename等参数,以符合我们环境的系统管理要求的方式保存我们的日志文件。在大多数系统上,这些都将设置为合理的默认值以开始使用。在类UNIX系统上,一些数据库日志记录通常在启动和停止服务器的脚本中设置,而不是直接在postgresql.conf 文件中设置。

1、log_line_prefix

默认的log_line_prefix参数是空的,一个好的起始值如下:

这会将以下内容放入每个日志行:

%t:时间戳%u:数据库用户名%r:远程主机连接%d:数据库%p:连接的进程ID

2、日志语句

语句日志记录是一种用于查找性能问题的强大技术。分析log_statement保存的信息和语句级详细信息的相关来源可以揭示许多类型的性能问题的真正来源。此设置的选项如下:

none:不记录任何语句级信息。

ddl:仅记录数据定义语言(DDL)语句,例如CREATE和DROP。这通常可以保留,即使在生产中,也可以用于捕获管理员无意或有意引入的重大更改。

mod:记录任何修改值的语句,除了简单的SELECT语句外,它基本上是所有内容。如果我们的工作负载主要是基于SELECT且数据更改相对较少,则始终启用此功能可能很实用。

all:记录每条语句。由于日志记录的开销,这在生产中通常是不切实际的。但是,如果我们的服务器相对于它的工作负载来说足够强大,那么让它一直保持运行可能是可行的。

log_min_duration_statement

一旦我们对执行典型的查询语句需要多长时间有了一些了解,此设置允许您仅记录超过我们设置的阈值的语句。该值以毫秒为单位,因此我们可以设置以下内容:

log_min_duration_statement=1000

这样,我们将只会看到运行时间超过1秒的语句。这对于找出比大多数执行时间长得多的离群语句的来源非常方便。

三、内存参数

数据库组件需要内存来缓存频繁访问的数据、事务日志和排序数据。因此,正确调整内存参数至关重要,因为它可以帮助优化数据库性能。

1、共享缓冲区

该参数的值定义了PostgreSQL共享缓冲池的大小。换句话说,此参数控制PostgreSQL用于缓存数据的内存量。128 MB的默认值对于任何现实世界的工作负载来说都非常低,需要加强。此值应根据数据集大小设置,数据库服务器应该在峰值负载和可用RAM的基础上处理。事实上的经验法则是,在RAM超过1GB的系统上,此参数的合理值约为系统内存的四分之一。此参数的值也可以设置为更大的值,并且理想情况下有效的最大设置为可用RAM的40%。但是将它增加到超过该限制可能不会有效,因为PostgreSQL也依赖于操作系统缓存来进行操作。较大的shared_buffers参数值意味着增加 checkpoint_segments 值,以便在一段时间内分散写入大量新数据或更改数据的过程。此值只能在服务器启动时设置。

2、临时缓冲区

此参数定义每个数据库会话用于缓存临时表数据的内存量。这些基本上是会话本地缓冲区,仅用于访问临时表。在Postgresql版本9.4中,此参数的默认值为八,并且此设置可以在单个会话中更改,但只能在会话中首次使用临时表之前更改。任何后续更改该值的尝试都不会影响现有会话。

3、维护工作内存

此参数定义维护操作使用的最大内存量,即VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY 操作需要更多工作内存。要注意的是,这些会话中的许多会话不太可能同时执行这些操作,因此可以将此值设置为比标准每个客户端work_mem设置大得多的值。在PostgreSQL 版本9.4中,此参数的默认值设置为64MB。这里需要注意的一点是,当autovacuum运行时,autovacuum_max_workers的值分配此内存的次数。从优化的角度并考虑到没有增加autovacuum worker的数量,一个好的配置设置是将其设置为系统总内存的5%左右,这样即使五个这样的进程也不会超过可用内存的四分之一记忆。这大约相当于每GB服务器系统内存50 MB的maintenance_work_mem。

以上是PostgreSQL服务器配置的参数指南介绍,希望能帮助到大家参考!

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    13

    文章

    10094

    浏览量

    90870
  • 内存
    +关注

    关注

    9

    文章

    3173

    浏览量

    76107
  • 数据库
    +关注

    关注

    7

    文章

    3993

    浏览量

    67730
  • postgresql
    +关注

    关注

    0

    文章

    25

    浏览量

    592
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    科技解析:服务器监控与告警设置—企业必备指南

    一、为什么企业必须配置服务器监控和告警 要是没有监控系统,企业,就只能在故障出现之后,才发觉问题,进而造成业务方面的损失。科技长期服务
    的头像 发表于 11-25 17:42 380次阅读

    科技分析:香港服务器如何远程桌面连接和管理?

    对于选择香港服务器的企业和开发者而言,无论身在何处,稳定、安全地远程连接和管理服务器都是首要任务。科技将详细解析如何通过远程桌面连接(Windows)和SSH(Linux)等主流方
    的头像 发表于 11-06 14:18 301次阅读

    科技解析:如何在日本服务器上安装和配置数据库(如MySQL)?

    CentOS 8/Stream为例)上从零开始安装、配置到安全加固的完整实战指南。 一、 准备工作 在开始之前,请确保您已具备以下条件: 一台日本服务器: 您已拥有一台位于日本数据中心的云服务
    的头像 发表于 11-04 11:07 414次阅读

    如何为印度服务器申请和配置反向DNS记录?

    科技为您提供为印度服务器申请和配置反向DNS(rDNS/PTR记录)的完整指南。了解为何反向DNS对邮件送达率、网络安全和
    的头像 发表于 10-28 10:12 382次阅读

    科技分析:Ubuntu云服务器数据共享高效方案

    在当今云计算时代,企业对于数据共享的需求日益增长,尤其是在使用Ubuntu云服务器的场景下,如何实现高效、安全的数据共享成为关键问题。本文将为您详细介绍几种主流的Ubuntu云服务器数据共享方案
    的头像 发表于 07-09 21:40 1186次阅读

    科技分析:云储存服务器搭建教程

    共享,还是作为备份用途。这将决定后续的硬件选择和软件配置。 二、选择硬件设备 硬件是搭建云存储服务器的基础。根据需求,可以选择普通的家用电脑、NAS设备,甚至专业的服务器。对于存储介质,建议使用硬盘阵列(如RAID),
    的头像 发表于 07-07 11:07 1062次阅读

    如何配置Linux防火墙和Web服务器

    在当今数字化时代,网络安全显得尤为重要。Linux作为一种开源操作系统,广泛应用于服务器管理和网络配置中。本篇文章将详细介绍如何配置Linux防火墙和Web
    的头像 发表于 05-24 15:26 1636次阅读
    如何<b class='flag-5'>配置</b>Linux防火墙和Web<b class='flag-5'>服务器</b>

    科技深度解析:阿帕奇服务器工作原理

    阿帕奇服务器(Apache HTTP Server)作为全球使用最广泛的开源Web服务器软件,其工作原理融合了多进程架构、模块化设计与高效的请求处理流程。以下从核心机制、运行模式及优化策略三方面解析
    的头像 发表于 05-22 09:37 1503次阅读

    如何在Linux中配置DNS服务器

    本文详细介绍了如何在Linux中配置DNS服务器,包括DNS工作原理、本地缓存、DNS查询过程,以及正向和反向查询的配置。步骤包括服务器
    的头像 发表于 05-09 13:38 2292次阅读
    如何在Linux中<b class='flag-5'>配置</b>DNS<b class='flag-5'>服务器</b>

    存储服务器怎么搭建?RAKsmart实战指南

    搭建存储服务器需兼顾硬件性能、数据冗余与安全访问。以RAKsmart服务器为例,整体流程可分为五步:需求评估→硬件选型→RAID配置→系统部署→网络设置。以下是小编对RAKsmart存储服务器
    的头像 发表于 04-01 10:09 969次阅读

    DeepSeek企业级部署服务器资源计算 以raksmart裸机云服务器为例

    以RakSmart裸机云服务器为例,针对DeepSeek企业级部署的服务器资源计算指南,涵盖GPU/CPU/内存/存储/网络等核心维度的详细计算方法与配置推荐,主机推荐小编为您整理发布
    的头像 发表于 03-21 10:17 815次阅读

    美国多ip服务器租用配置步骤

    美国多IP服务器租用是一种提供多个独立IP地址的服务器租赁服务,主要用于站群建设和SEO优化。以下是关于美国多IP服务器租用的详细介绍,主机
    的头像 发表于 02-08 17:12 869次阅读

    操作指南:pytorch云服务器怎么设置?

    GPU加速和并行计算优化。完成后,定期监测资源使用情况以优化配置。设置PyTorch云服务器需要一系列步骤,以下是UU云小编整理的操作指南
    的头像 发表于 02-08 10:33 605次阅读

    华为云 Flexus 云服务器 X 实例的快速入门与配置指南

    读者介绍 Flexus 云服务器 X 实例的快速入门和配置指南,帮助他们更好地利用华为云的强大功能。 一、华为云 Flexus 云服务器 X
    的头像 发表于 01-13 11:11 3796次阅读
    华为云 Flexus 云<b class='flag-5'>服务器</b> X 实例的快速入门与<b class='flag-5'>配置</b><b class='flag-5'>指南</b>

    如何选择合适的云服务器 --X 实例购买指南配置详细说明

    前言   1 x实例介绍   2 购买步骤   2.1 登录华为云官网   2.2 Flexus云服务器X实例页面   2.3 配置服务器   2.4 购买
    的头像 发表于 12-24 17:27 1098次阅读
    如何选择合适的云<b class='flag-5'>服务器</b> --X 实例购买<b class='flag-5'>指南</b>和<b class='flag-5'>配置</b>详细说明