Cho*_*per 16 postgresql linux database database-administration database-performance
有什么规则或什么东西可以用来计算max_connections
,default_pool_size
和的好数字max_client_conn
吗?
默认值是奇怪的。PostgreSQL 默认为 max_connections=100,而 pgbouncer 默认为 default_pool_size=20。default_pool_size 不应该总是高于 max_connections 吗?否则,意义何在?我认为 pgbouncer 是为了让我们通过降低开销(通过重用 PostgreSQL 的连接)来处理更多的连接。我糊涂了。
我正在寻找类似于在PostgreSQL 的 wiki 中找到的建议,比如“这个参数应该是你内存的 50%”。
我记得有一个 MySQL 电子表格可以让你计算这些类型的参数。为 PostgreSQL/pgbouncer 提供类似的东西会很棒。
vor*_*aq7 13
首先,请阅读我们关于容量规划的规范问题。
您要求的具体建议是容量规划建议,您必须针对您的特定环境自行解决。
其次,你看错了。
您拥有的内存量(或任何其他资源)并不决定您设置的连接数,您需要的连接数决定了您必须购买的服务器的强大程度。手册中非常详细地
给出了每个连接的资源要求,并在您链接到的 Wiki 上进行了讨论。弄清楚您的环境需要什么(或做出有根据的猜测)并确保您将要运行的硬件可以处理您将要投入的东西。
特别是:连接限制和池大小,您应该有“足够”的连接来满足您的应用程序的要求 - 无论是在单个服务器上还是通过池/缓冲。
“足够”是一个相对数字:建立(并不断重用)一个连接的应用程序只需要一个连接。为每个登录的最终用户建立连接的应用程序需要与其拥有的用户一样多的数据库连接。
Postgres 和 Postgres 的默认值都pgbouncer
可以作为默认值:
对于将 Postgres 投入环境的典型人来说,100 个数据库连接是很多的。
开发人员可能不需要超过 10 个。其他任何人都知道足以增加数量。
来自pgbouncer
每个数据库池的20 个连接意味着您可以获得指向一台服务器的 4 个池,并且不会超过默认的 Postgres 连接限制。
可能有多个池化资源pgbouncer
指向一个后端数据库,并且您总是希望后端服务器上有一些可用的连接。
如果默认值不适合您的环境,您需要更改它们。
请记住,连接池并不意味着“总是占用所有可用的数据库连接”。
点pgbouncer
正如你指出是重复使用的连接。这里的效率提升并不要求您占用所有可用的连接,只是不需要每次都断开连接、重新连接、重新协商 SSL、重新对数据库进行身份验证以及重新运行连接设置查询。
归档时间: |
|
查看次数: |
26477 次 |
最近记录: |