我在Solaris机器(VM)上使用了Weblogic 10.3.4 + Oracle DB,
不幸的是,上周我们在Weblogic上托pipe的应用程序变得非常缓慢,无法为新用户提供服务(一切都持续了1小时)。
为了找出原因,我们从操作系统级别,数据库级别询问报告。
报告显示:
现在谁是第一个鸡或鸡蛋?
一个非常慢的数据库可能会导致WEBlogic变慢,并达到从池中的最大连接数。
但是,如果CPU使用率很高,那么可能是因为持有数据库连接的线程太繁忙,以至于不能将连接返回到池(因为处理器正忙)。==>新客户端来了一个新连接assgined等…所以连接池可能会用这种方式… …?
问候
克里斯
高CPU使用率通常是由尝试在JVM堆空间,perm gen等中收集空闲内存的Java垃圾收集器引起的。如果是这种情况,则需要添加更多的内存,通常添加到JVM堆中。 请参阅-Xmx JVM选项。
当JVM中的CPU使用率较高时,请尝试使用CPU来确定哪个线程正在运行。 在问题创build2-3 pkill -3 java线程转储。 线程转储将位于(for Solaris) /proc/<JVM_PID>/path/1
如果线程池将达到其限制,您应该在日志中看到错误。 CPU使用率不应该因此而上升。 这是一个事件驱动的环境,不需要进行共享。
慢数据库实际上可以降低应用程序服务器上的CPU使用率。 取决于应用程序的编程/configuration。