在也是Tomcat JSP应用程序服务器的服务器上优化Oracle 10g?

我inheritance了一个简单的RedHat 5 – 64位平台。

它在RAID1上有SCSI磁盘,有16GB的RAM。 双核CPU。

Oracle 10g第2版

这可能只是运行数据库的一个体面的平台,但是在“AA模式”集群(非常简单)中的同一个服务器也运行Tomcat,并且有几个Java servlet运行在这个平台上。

可悲的是,没有caching平台等。我们只使用外部CDN的一些HTMLcaching。

我个人比较熟悉LAMPP平台上的Web环境(apache,php,mysql,postgresql)。

问题:因为服务器同时运行在同一台服务器上的Tomcat JSP / Java和Oracle 10g没有caching,所以服务器出现了一些问题。 通常,可悲的是。

问题:在改善所有这些不同应用程序的性能方面,我有什么select?

  • 连接池? 例如,在Postgresql的世界里,我们有PgBouncer,这真的有帮助。 Oracle有类似的东西吗? 还是有一种着名的基于Java的外部使用者在生产环境中使用? (我不熟悉Java)

  • 任何“SQLcaching”在MySQL和Postgresql的世界?

  • 任何其他types的应用程序caching,如PHP世界中的“APC”或“eAccelarator”?

  • 来自Java世界的“OSCache”东西(我在Google上find的JSP thingie: http : //onjava.com/pub/a/onjava/2005/01/05/jspcache.html?page=2 )

还有什么?

对不起,如果这是一个菜鸟问题。 我已经Google和谷歌search,但问题是我不知道如何谷歌,除了上述广泛的一般概念。 所以,如果不是完整的答案,我甚至会欣赏基本的指针,我很高兴JFGI自己。

谢谢!

我相信Tomcat为连接池提供了几个选项,虽然StackOverflow可能是讨论这些可能性的更好的地方。

至于其他:

Oracle瓶颈和性能调整是一个广泛而复杂的领域,J2EE应用程序,容器和caching也是如此。

存在一些应该使用的商业和开源工具,一些用于识别可能的问题和教育用户的很长的路要走。 一个这样的商业工具是Quest Software公司的Spotlight on Oracle。 Quest还提供Performasure,我发现它是低级别应用程序诊断的极好解决scheme。 http://www.quest.com/

Oracle在http://docs.oracle.com和http://tahiti.oracle.com上为其数据库平台提供了丰富的免费文档,其中包括有关性能考虑和调优的书籍。

同样,IBM红色系列包括免费书籍,涵盖了从Oracle,J2EE,Linux,存储到通用系统devise等方面的性能调优和瓶颈。 http://www.redbooks.ibm.com/

如果您需要更好地了解Oracle数据库的基础知识,Oracle数据库10g性能调优:技巧和技巧是一本很好的入门书,Oracle Essentials:Oracle数据库10g也是如此。 你可以在网上阅读http://www.safaribooks.com/ ,我相信他们提供免费试用。

一个好的开始,或至less与其他任何好的地方一样,是弄清楚系统资源正在紧张,谁在使用它们。 CPU负载高吗? 如果是这样,等待I / O造成的? 如何使用内存,是否会导致额外I / O的内存不足? 应用程序或数据库CPU密集? 数据库工作负载是CPU还是I / O? 这种不稳定是否与绩效相关,或者系统中是否存在其他问题。 获得一些基本问题的答案应该至less让你在路上。

您应该确保Tomcat JRE以服务器模式运行(不是客户端)。 这应该在启动时显示,并不总是给予。 这应该是在PHP世界中使用eAccellerator的同等步骤 – Servlet在加载时编译。

连接池显然是必要的。 我不认为有一个很大的机会没有合并申请。 但最好检查一下。 Ë

在Web应用程序中,我总是通过添加HTTP-Header(Pragmacaching,Expires)来强制caching静态元素。

如果你有能力改变编程,那么看看SQL-Plans(解释)总是有帮助的……它经常告诉我我缺less索引的地方。

并且实现当然经常使用的元素的caching…

另一种可能性是增加Tomcat的堆(-Xmx ….) – 也许这有助于Tomcat用完内存并开始垃圾收集。

你到底意味着什么“下去”? 服务器变慢还是崩溃?