postgre数据库,web是apache +集群tomcat ,用squid做透明代理 ,并发数巨增,请求帮助

postgre数据库,web是apache +集群tomcat ,用squid做透明代理 ,并发数巨增,请求帮助

各位大师。
我的web服务器 用的apache +集群tomcat ,用squid做透明代理。
现在数据库服务器又出现问题,

数据库配了4G的内存。用的数据库是postgre


现象描述:
每当访问量增大时,昨天还是3000(独立IP)是正常今天就10000就挂了。

1、数据库内存就慢慢的被postmaster给吃掉了。top查看情况:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21116 postgres 15 0 139m 47m 35m R 24 1.2 0:44.89 postmaster
21120 postgres 16 0 145m 50m 35m R 23 1.3 0:54.98 postmaster
21208 postgres 15 0 152m 57m 34m S 23 1.5 0:22.48 postmaster
21145 postgres 16 0 144m 54m 34m R 21 1.4 0:38.90 postmaster
21197 postgres 15 0 135m 44m 34m S 21 1.1 0:18.48 postmaster
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
21124 postgres 15 0 144m 54m 34m S 3 1.4 0:48.65 postmaster

2、ps -ef查看进程
15220 ? D 3:26 \_ postgres: postgres *** 192.168.0.251(39472) SELECT
15221 ? D 3:45 \_ postgres: postgres *** 192.168.0.251(39473) SELECT
..........出现很多select进程
而且还有时出现
postgres *** 192.168.0.251(42463) startup

应该是并发量的问题,请问如何解决?


请各位大师再帮忙指点一下!
只对Postgre优化,估计解决不了问题。

尝试优秀业务逻辑,优化SQL。
找到了几个费时的查询,现在好多了。