了解一些postgresql.conf文件我更改的设置

2024-10-01 09:34:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我关注了chrispettus在Youtube上发布的一段名为PostgreSQL精通Python的视频,让Python编辑了我的一些文章postgres.conf文件设置。你知道吗

我的服务器有28G的RAM,在进行更改之前,我的系统内存平均在3GB左右。现在它徘徊在10GB左右。你知道吗

max_connections = 100
shared_buffers = 7GB
work_mem = 64mb
maintenance_work_mem = 1GB
wal_buffers = 16mb

我现在没有任何问题,但我想了解我所做的改变的利弊。我假设将系统中使用的平均内存增加三倍(用Datadog测量)一定有一些切实的好处。你知道吗

我的服务器用于执行ETL(aiffort)并托管数据库。Airflow有很多连接,但通常文件都很小(只有几mb),这些文件是用pandas处理的,与数据库相比可以找到新行,然后加载。你知道吗


Tags: 文件内存服务器数据库编辑视频youtubepostgresql
1条回答
网友
1楼 · 发布于 2024-10-01 09:34:35

共享缓冲区用于postgres的内存缓存(与OS缓存相比,它的级别更接近postgres)。将其设置为7gb意味着pg将缓存到7gb的数据。因此,如果您正在进行大量的全表扫描或(递归的)cte,这可能会提高性能。请注意,postgres主进程将在数据库启动时分配全部内存,这就是为什么您的操作系统现在使用10GB的ram。你知道吗

work_mem是用于排序的内存,每个并发排序分配一个这样大小的存储桶。因此,这只受max_connections*并发排序的限制,因此实际上,它只受查询的排序复杂性的限制,因此增加这一限制对系统稳定性带来了最大的风险。(也就是说,如果您有一个query planner使用8个合并排序执行的查询,那么每次执行查询时都将使用8*work_mem)。你知道吗

maintenance_work_memVACUUM和朋友(包括ALTER TABLE ADD FOREIGN KEY)使用的内存!增加这个值可能会增加真空速度。你知道吗

wal_buffers没有超过16MB的好处,16MB是服务器一次写入的最大WAL块。这有助于减缓写入i/o

另见:https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server

相关问题 更多 >