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服务器配置的参数指南介绍,希望能帮助到大家参考!

审核编辑:汤梓红

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

    关注

    12

    文章

    8116

    浏览量

    82509
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72765
  • 数据库
    +关注

    关注

    7

    文章

    3591

    浏览量

    63369
  • postgresql
    +关注

    关注

    0

    文章

    19

    浏览量

    202
收藏 人收藏

    评论

    相关推荐

    香港裸机云多IP服务器都有哪些配置?

    香港裸机云多IP服务器是一种高效、灵活的云计算服务,为用户提供了多IP地址的配置选项,以满足各种复杂的网络需求。这种服务器配置上具有丰富的
    的头像 发表于 04-18 09:58 55次阅读

    OpenBSD中如何配置和使用虚拟专用服务器

    在OpenBSD中配置和使用虚拟专用服务器(VPS)通常涉及以下步骤: 1、安装OpenBSD:首先,在您的VPS提供商处购买并配置一个OpenBSD实例。在安装OpenBSD时,请确保您选择了合适
    的头像 发表于 03-28 17:17 145次阅读

    服务器监控完整指南

    运行混合云环境时。下面,恒讯科技小编我给大家介绍下云服务器监控完整指南。 一、什么是云服务器监控? 我们应该根据既定的自定义指标持续监控您的系统,以确保其应用程序性能。 大多数云提供商
    的头像 发表于 03-20 17:19 161次阅读

    linux服务器和windows服务器

    Linux服务器和Windows服务器是目前应用最广泛的两种服务器操作系统。两者各有优劣,也适用于不同的应用场景。本文将 对Linux服务器和Windows
    发表于 02-22 15:46

    如何配置单台服务器

    万里征途总是从第一步开始的,构建一个复杂系统也是如此。我们从简单的部分着手,先让所有的功能都在一个服务器上运行。图1-1展示了如何配置单台服务器,让一切都在其上运行,包括Web应用、数据库、缓存等。
    的头像 发表于 01-19 10:19 211次阅读
    如何<b class='flag-5'>配置</b>单台<b class='flag-5'>服务器</b>

    什么是web服务器?如何选择服务器配置

    )、LiteSped等。这些软件在配置和功能上略有不同,但其目标是提供高性能、可靠、安全的网页内容交付。 如何选择web服务器配置?这主要取决
    的头像 发表于 01-03 15:25 324次阅读

    轻量云服务器和云服务器的5个区别

    轻量云服务器和云服务器都属于云计算领域,但它们在性能、配置、定价和适用场景上存在一些区别。
    的头像 发表于 11-28 17:22 2805次阅读

    DHCP服务器配置方法

    DHCP(动态主机配置协议)是一种用于自动分配IP地址和其他网络配置信息的协议。它可以使网络管理员更加方便地管理和配置大量的客户机。在本文中,我们将详细介绍如何
    的头像 发表于 11-27 14:48 1043次阅读

    linux查看服务器配置

    在Linux操作系统中,了解服务器配置对于系统管理员和网络工程师而言至关重要。通过查看服务器配置,您可以了解服务器的硬件和软件组成部分,包括
    的头像 发表于 11-17 09:41 599次阅读

    AT32基于mbed TLS的HTTPS服务器

    AT32基于mbed TLS的HTTPS服务器介绍如何使用mbed TLS 搭建一个HTTPS 服务器,用户可以根据自己的应用去编写网页内容的同时,又简单地将传输数据加密。
    发表于 10-26 08:24

    干货丨云耀云服务器 L 实例需要配置升级教程

    需提前声明:云耀云服务器 L 实例不支持直接升级配置,本实践指导仅为如何升级云耀云服务器 L 实例的配置。 应用场景 该解决方案通过华为云云备份服务
    的头像 发表于 08-22 21:29 486次阅读
    干货丨云耀云<b class='flag-5'>服务器</b> L 实例需要<b class='flag-5'>配置</b>升级教程

    移植ARM DHCP服务器版本1程序员指南

    这本书由ARM DHCP服务器服务器软件提供, 假定ARM DHCP服务器移植源可以作为参考, 也假设您可以访问程序员的 C 和 ARM 组装语言指南。 本程序员
    发表于 08-18 06:46

    基于用户的许可证服务器管理指南

    指南介绍了如何为在基于用户的许可模式下获得许可的Arm产品安装和管理许可服务器
    发表于 08-08 06:58

    Wind River Rocket内核配置参数指南

    指南详细介绍了开发者可使用的内核配置参数,以便定制操作系统,满足具体要求。
    发表于 08-04 06:05

    多通道振弦传感器无线采集仪发送数据到 TCP 服务器及远程修改参数

    多通道振弦传感器无线采集仪发送数据到 TCP 服务器及远程修改参数 多通道振弦传感器无线采集仪发送数据到 TCP 服务器及远程修改参数 1、发送数据到 TCP
    的头像 发表于 05-04 11:03 362次阅读
    多通道振弦传感器无线采集仪发送数据到 TCP <b class='flag-5'>服务器</b>及远程修改<b class='flag-5'>参数</b>