postgres支持并发测试

当我运行以下wwaa.sh程序来测试时,我发现postgres数据库的并发处理能力很差,当连接数达到一定数量时,连上去很费时间,但一旦连上后,数据库的反应还是很快的,我写了个比赛程序,由于要频繁调用数据库,有时会有停顿现象。如果我采用持久连接的话,只是在连接的时候慢一点,连上后比较正常,但采用持久连接的话,就不能有很多人连上来,假设我同时有300人比赛,有没有好的解决方法?能不能用连接池来解决?如果行的话,有没有人可以给我一些连接池的例子或资料?谢谢?

*******第一个shell程序:wwaa.sh*************
c=0
while true
do
if [ $c -lt 150 ]
then
sh ss.sh &
c=`expr $c  + 1`
else
break
fi
done

******第二shell程序:ss.sh********************
while true
do
psql -Usa -h127.0.0.1 -dbsdb<<!
select * from bsuser where bh='3a22';
\q
!
done

 

==========================

根数据库无关
任何一个基于sockets的程序都有这个问题,就是tcp握手慢,这个要调OS内核参数,不过最好不要调
象DB2是用catalog的方式避免了过多的tcp握手
采用3层结构是最完美的解决方案

============================

在postgresql.conf中有一个参数
max_connections=100
改大就可以了,该参数与内核的SHMMAX有关,SHMMAX足够大的话,max_connections可以变大的

==============================

谢谢!但我的连接数已经改为400,且共享内存设为800M了,我的机器是1G的内存,应该不是连接数的问题,因为不是连不上,而是连接上去的时候慢,一旦连上后,检索数据还是快的。我发现如果是在本机上不带IP连是很快的,如
$psql -Usa -dbsdb
但是如果带了IP就慢了,如
$psql -Usa -h127.0.0.1 -dbsdb

======================

不带ip是基于socket连接,当然快了,带了ip是基于tcp/ip连接,但是tcp/ip连接可以实现db,app分离

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值