注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

 
 
 

日志

 
 

PostgreSQL:关于参数 superuser_reserved_connections  

2013-04-20 16:40:16|  分类: Postgres基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


       PostgreSQL 的参数 superuser_reserved_connections 一直没怎么关注,这两天遇到个与之相关的
错误,才仔细查了下文档,有了进一步了解。 

        简单的说这个参数的意思是:为具有超级用户权限的用户预留的连接数,就像售火车票一样,不会
全部售光,总会预留点,闲话少说,接下来的演示,相信你会对 superuser_reserved_connections  
参数更加熟悉。


--1 设置参数
     为了便于演示,配置 postgresql.conf 文件,并设置以下参数,其它参数这里没列出。
   
 max_connections = 15
superuser_reserved_connections = 3
   备注:max_connections 参数默认值为 100, superuser_reserved_connections 参数默认值为 3,我们
             调整如上,这两个参数修改之后需要重启才能生效。
        
--2 重启数据库
 [pg92@redhatB pg_root]$ pg_ctl stop -m fast -D $PGDATA
waiting for server to shut down.... done
server stopped

[pg92@redhatB pg_root]$ pg_ctl start -D $PGDATA
server starting
   

--3 查看参数是否生效
 [pg92@redhatB pg_root]$ psql 
spsql (9.2.1)
Type "help" for help.

postgres=# show max_connections ;
 max_connections 
-----------------
 15
(1 row)

postgres=# show superuser_reserved_connections ;
 superuser_reserved_connections 
--------------------------------
 3
(1 row)
    备注:修改好参数后,再次连到数据库里查看参数的值是否生效是个好习惯,因为有可能参数没设对,
               然后 reload 后也不会提示错误;如果谨慎些 ,还应查看数据库日志是否有报错。

--4 pgbench 测试
 [pg92@redhatB load_test]$ nohup pgbench -c 10 -T 60 -j 2 -n -d skytf -U skytf -f update_1.sql > update_1.out &
   备注: update_1.sql 脚本略,这里开 10 个长连接,如下图:

PostgreSQL:关于参数 superuser_reserved_connections - francs - PostgreSQL DBA
 
           

--5 重新打开 session
 [pg92@redhatB londiste]$ psql francs francs
psql: FATAL:  remaining connection slots are reserved for non-replication superuser connections
   
 备注:再次以普通用户连接时,报了以上错,提示剩余的连接是预留给 non-replication 超级用户的。
 

--6 尝试超级用户连接
 [pg92@redhatB londiste]$ psql francs postgres
psql (9.2.1)
Type "help" for help.

francs=# 
   备注:第5,第6 步都是在第 4 步的 pgbench 脚本执行过程中的测试,这步超级用户则可以连接,
             但如果超过了 max_connection 设置,则会报以下错误。

 psql: FATAL:  sorry, too many clients already
   

--7 总结

  1 普通用户的最大连接数为 max_connections - superuser_reserved_connections;
  2 superuser_reserved_connections 参数建议根据实际需求设置,一般设置成 10 就够用了。
  3 superuser_reserved_connections 参数设置的是给 non-replication 超级用户预留连接数。
    当普通用户连接数达到 max_connections - superuser_reserved_connections 时,会报第 5 步抛出的错。
  4 当数据库连接数(普通用户+超级用户)达到 max_connections 时,则会报第 6 步抛出的错。 


--8 参考
http://www.postgresql.org/docs/9.2/static/runtime-config-connection.html#GUC-MAX-CONNECTIONS
    
  评论这张
 
阅读(11834)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016