PostgreSQL:shared_buffers 的推荐大小

jap*_*968 10 postgresql performance configuration

我对 PostgreSQL 比较陌生。一个月前,我开始将一些 MySQL 数据库迁移到 PostgreSQL。

我正在寻找有关配置文件的正确内存值的帮助。

目前,我有一个适度的专用服务器(2GB 的 RAM)在 Linux 下运行 Apache、MySQL 和 PostgreSQL。MySQL 主数据库的大小大约是 PostgreSQL 主数据库的 3 倍,数据流量也是如此。

我仍然有 PostgreSQL 的默认配置文件,参数为 shared_buffers = 32MB. 我假设我应该增加这个值,但我不想惩罚其他数据库。我读过一些关于将 25% 的物理可用内存专用于 PostgreSQL 的内容,但我不确定这一点。

新数据库包含七个表,最大的一个大约有 3 MM 行。该机器目前的流量较低(每天服务约 10000 ~ 20000 个选择),但这些值预计会增长。

我正在考虑将 shared_buffers 增加到 256MB,但我想听听对这个 RDBMS 有更多经验的用户的一些意见。

Erw*_*ter 4

我会避免将 MySQLPostgreSQL 放在同一台服务器上。他们争夺相同的资源。如果可以的话,将所有内容移植到一个 RDBMS 上。我显而易见的选择是 PostgreSQL。

然后您可以设置shared_buffers为 500 MB 和effective_cache_size1.5 GB 之类的值。请务必阅读手册中的提示

但我还建议添加更多物理内存。2 GB 并不算多。对于数百万行的良好性能来说还不够。多几 GB 的 RAM 应该不会花费太多。

如果您必须坚持您的设置,Postgres 250 MB 似乎是合理的。如果 MySQL 的流量是原来的三倍,那么整体而言,流量越少越好。比如128MB。

Postgres Wiki 中的性能优化基础知识。