热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

postgresql数据库连接池pgbouncer的使用方法

前端时间看了看服务器还有多余的内存,由于数据库和程序都在一个服务器上,就想看看有什么提升并发的方法。试用了下pgbouncer,记录下。$cdlibevent-2.0.21-stable$./configure--prefix/usr/local/libevent$make$makeinstall$cdpgbounce

前端时间看了看服务器还有多余的内存,由于数据库和程序都在一个服务器上,就想看看有什么提升并发的方法。试用了下pgbouncer,记录下。

$ cd libevent-2.0.21-stable

$ ./configure --prefix=/usr/local/libevent

$ make

$ make install

$ cd pgbouncer-1.5.4

$ ./configure --prefix=/usr/local/pgbouncer/ --with-libevent=/usr/local/libevent/

$ make

$ make install

注意设置libevent 的环境变量不然后面启动 pgbouncer会出错

vim /ect/profile

export LD_LIBRARY_PATH=/usr/local/libevent/lib:$LD_LIBRARY_PATH

2.pgbouncer配置

主要两个文件pgbouncer.ini 和userlist.txt文件,可以参考/usr/local/pgbouncer/share/doc/下对应的两个示例文件。

这里看下pgbouncer.ini的配置,其主要说明可以从上面说的路径中查看对应的说明

[databases]

server_main = host=localhost port=5432 dbname=booksair user=postgres password=12

3456 connect_query='SELECT 1'

[pgbouncer]

listen_port = 5433

listen_addr = localhost

auth_type = md5

auth_file = /usr/local/pgbouncer/user.txt

logfile = /usr/local/pgbouncer/pgbouncer.log

pidfile = /usr/local/pgbouncer/pgbouncer.pid

admin_users = postgres

pool_mode = Transaction

ignore_startup_parameters = extra_float_digits

max_client_cOnn= 1000

3.pgbouncer启动与说明

启动pgbouncer ,这里必须以postgresql服务器用户启动,例如postgres

su postgres

/usr/local/pgbouncer/bin/pgbouncer -d /usr/local/pgbouncer/conf/pgbouncer.ini

然后通过 postgresql 的psql登录pgbouncer工具的数据库pgbouncer,以便查看pgbouncer工具的状态。

这里注意连接pgbouncer 要采用pgbouncer.ini配置的pgbouncer节的listen端口:

cd /usr/local/postgresql/bin

su postgres

./psql -h localhost -p 5433 -U postgres pgbouncer

采用show config; 查看pgbouncer的配置,包括pgbouncer.ini配置文件中配置:

pgbouncer=# show config;

key | value | changeable

---------------------------+------------------------------------+------------

job_name | pgbouncer | no

conffile | ../conf/pgbouncer.ini | yes

logfile | /usr/local/pgbouncer/pgbouncer.log | yes

pidfile | /usr/local/pgbouncer/pgbouncer.pid | no

listen_addr | 127.0.0.1 | no

listen_port | 5433 | no

listen_backlog | 128 | no

unix_socket_dir | /tmp | no

unix_socket_mode | 511 | no

unix_socket_group | | no

auth_type | md5 | yes

auth_file | /usr/local/pgbouncer/user.txt | yes

pool_mode | transaction | yes

max_client_conn | 100 | yes

default_pool_size | 20 | yes

min_pool_size | 0 | yes

reserve_pool_size | 0 | yes

reserve_pool_timeout | 5 | yes

syslog | 0 | yes

syslog_facility | daemon | yes

syslog_ident | pgbouncer | yes

user | | no

autodb_idle_timeout | 3600 | yes

server_reset_query | DISCARD ALL | yes

server_check_query | select 1 | yes

server_check_delay | 30 | yes

query_timeout | 0 | yes

query_wait_timeout | 0 | yes

client_idle_timeout | 0 | yes

client_login_timeout | 60 | yes

idle_transaction_timeout | 0 | yes

server_lifetime | 3600 | yes

server_idle_timeout | 600 | yes

server_connect_timeout | 15 | yes

server_login_retry | 15 | yes

server_round_robin | 0 | yes

suspend_timeout | 10 | yes

ignore_startup_parameters | | yes

disable_pqexec | 0 | no

dns_max_ttl | 15 | yes

dns_zone_check_period | 0 | yes

max_packet_size | 2147483647 | yes

pkt_buf | 2048 | no

sbuf_loopcnt | 5 | yes

tcp_defer_accept | 1 | yes

tcp_socket_buffer | 0 | yes

tcp_keepalive | 1 | yes

tcp_keepcnt | 0 | yes

tcp_keepidle | 0 | yes

tcp_keepintvl | 0 | yes

verbose | 0 | yes

admin_users | postgres | yes

stats_users | | yes

stats_period | 60 | yes

log_connections | 1 | yes

log_disconnections | 1 | yes

log_pooler_errors | 1 | yes

(57 rows)

采用 show clients;查看连接状态:

pgbouncer=# show clients;

type | user | database | state | addr | port | local_addr | local_port | connect_time | request_time | ptr | link

------+----------+-----------+--------+-----------+-------+------------+------------+---------------------+---------------------+-----------+------

C | postgres | pgbouncer | active | 127.0.0.1 | 42782 | 127.0.0.1 | 5433 | 2013-06-13 00:05:19 | 2013-06-13 00:08:52 | 0x935c310 |

(1 row)

这里应用程序连接数据库的还没有启用,所以只有我通过shell命令psql 的连接。


推荐阅读
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 图片复制到服务器 方向变了_双服务器热备更新配置文件步骤问题及解决方法
    本文介绍了在将图片复制到服务器并进行方向变换的过程中,双服务器热备更新配置文件所出现的问题及解决方法。通过停止所有服务、更新配置、重启服务等操作,可以避免数据中断和操作不规范导致的问题。同时还提到了注意事项,如Avimet版本的差异以及配置文件和批处理文件的存放路径等。通过严格执行切换步骤,可以成功进行更新操作。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • github上_idea上传本地项目到github上(图解)
    本文由编程笔记#小编为大家整理,主要介绍了idea上传本地项目到github上(图解)相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
JAYBRYANT-24
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有