Oracle 11g性能提升 -- Server Connection Pool

    在应用服务器这一层, 我们已经使用Connection Pool了, 可以有效地降低服务器上的连接的数量, 不过还是有不足之处的. 当你的访问量达到一定的规模时, 你会发现一台或几台应用服务器根本就解决不了问题, 在有些世界级的网站中, 应用服务器的数量可能是上千台的, 当每个应用服务器产生4-5个连接时, 你会发现Oracle服务器端便有了4-5千个物理连接. 象PHP程序, 要求每一个Web Server进程都至少有一个连接. 因此Oracle在11g中引入了Database Resident Connection Pool的功能, 这样客户端就可以不管连接池了, 由Oracle在服务器端进行连接共享控制.

    通过增加一个后台进程CMON(Connection Monitor)来管理连接, 应用发出连接请求时, 实际上是连接到CMON进程, 然后由CMON进程分配一个已经连接好的后台进程, 当客户端连接关闭后, 这个后台进程又交由CMON进程管理. 估计PHP这类的Web程序要有福气了, 不需要去实现连接池的代码了.

    但还有两个问题需要问, 可能会在正式的文档中有详细的说明:

1, 如果我连上去后, 一直不关闭连接, 只是保持空闲状态, 后台进程怎么办?
2, 如果应用中不停地进行连接和断开, CMON能顶得住吗? 每秒钟能接受多少个连接?

    和MTS比到底有多少的优势? 这是值得我们继续关注的技术.

留言 (1)

1, 如果我连上去后, 一直不关闭连接, 只是保持空闲状态, 后台进程怎么办?
在他上面有一个参数MAX_THINK_TIME。
在一个客户端从pool中获得一个pooled server之后,如果在MAX_THINK_TIME时间之内没有提交数据库调用的话,这个pooled server将被释放,客户端连接将被停止。缺省为30,单位秒

2, 如果应用中不停地进行连接和断开, CMON能顶得住吗? 每秒钟能接受多少个连接?
oracle自己号称为10000并发连接

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • Let's just run through the arguments for and against.
  • 我们来看一下赞成和反对的理由.
  • Please sum up what you said just now.
  • 请把你刚才说的总结一下.
  • Has anybody else anything to say on this?
  • 关于这点, 谁还有什么别的要说吗?
  • Does anybody share David's opinion?
  • 有谁同意大卫的观点吗?
  • Is there any evidence to support what you have said?
  • 有什么证据可以支持你的说法吗?