如何设置PostgreSQL配置参数文件?PGTune工具助你轻松完成

发表时间: 2021-11-29 17:16

PostgreSQL作为目前主流数据库之一,目前在企业中得到广泛应用, 但如果您不熟悉 PostgreSQL,您面临的最常见挑战是如何调整您的数据库环境。 当安装PostgreSQL,它会自动生成一个基本的文件postgresql.conf。根据您使用的操作系统,此配置文件通常保存在数据目录中。例如,在 Ubuntu 中,PostgreSQL 将配置(pg_hba.conf、postgresql.conf、pg_ident.conf)放在 /etc/postgresql 目录中。在调整 PostgreSQL 数据库之前,首先必须找到 postgresql.conf 文件。

但是要使用的正确设置是什么?最初设置的值是什么?今天介绍一个postgresql配置文件自动器:PGTune。它将帮助您轻松解决这个特定问题。

什么是 PGTune?

PGTune 是一个配置向导,最初由来自2ndQuadrant的Greg Smith创建。它基于一个 Python 脚本,不幸的是它不再受支持(它不支持较新版本]PostgreSQL。)。目前它已转换为网页配置PGTune(基于原始PGTune),现在是一个配置向导,可用于 PG 数据库配置设置。PGTune用于根据给定硬件配置的最大性能计算PostgreSQL的配置参数。不过它也不是灵丹妙药,因为postgresql配置参数不仅取决于硬件配置,还取决于数据库的大小、客户端数量和查询的复杂性。

如何使用 PGTune

PGTune的使用也很方便,只需要浏览器输入PGTune的地址即可访问。下面给出一个简单的例子如下:

您需要做的就是在下面指定以下字段:

  • DB 版本- 您的 PostgreSQL 版本。它支持 PostgreSQL 9.5、9.6、10、11 、12、13和14 版本。
  • 操作系统类型 -操作系统的类型(Linux、OS X、Windows)
  • DB Type - 数据库类型,主要是您的数据库将处理的事务处理类型(Web 应用程序、OLTP、数据仓库、桌面应用程序、混合类型的应用程序)
  • Total Memory (RAM) - 您的 PG 实例将处理的总内存。需要在 GiB 中指定它。
  • CPU 数量 - PostgreSQL 可以使用的 CPU 数量 CPU = 每核线程数 * 每插槽内核数 * 插槽数
  • 连接数- 最大 PostgreSQL 客户端连接数
  • 数据存储 - 您可以从基于 SSD、HDD 或 SAN 的存储中选择的数据存储设备类型。

然后点击生成按钮。或者,您也可以运行生成 postgresql.auto.conf 的 ALTER SYSTEM 语句,但需要postgresql实例重启才生效。

示例展示

配置需求:

  • DB version:14
  • OS Type:Linux
  • DB Type:Online transaction processing system
  • Total Memory (RAM):32GB
  • Number of CPUs:8
  • Number of Connections:1000
  • Data Storage:SSD storage

配置文件展示:

# DB Version: 14# OS Type: linux# DB Type: oltp# Total Memory (RAM): 32 GB# CPUs num: 8# Connections num: 1000# Data Storage: ssdmax_connections = 1000shared_buffers = 8GBeffective_cache_size = 24GBmaintenance_work_mem = 2GBcheckpoint_completion_target = 0.9wal_buffers = 16MBdefault_statistics_target = 100random_page_cost = 1.1effective_io_concurrency = 200work_mem = 2097kBmin_wal_size = 2GBmax_wal_size = 8GBmax_worker_processes = 8max_parallel_workers_per_gather = 4max_parallel_workers = 8max_parallel_maintenance_workers = 4

结论

  • PGTune是一个不错的postgresql配置文件在线生成工具,是DBA和开发人员配置postgresql的一个利器。当你还在为不知道参数如何设置而发愁时,赶紧试试这个工具吧!
  • 喜欢的朋友欢迎关注,点赞和转发!