版本 linux 5
系统环境 双CPU各4核  内存16G,硬盘80G,oracle 10g
服务上安装了两个Java应用服务,自己写了的,名字叫做RA和CA,还有oracle 10g数据库,RA和CA的数据库是分开的,因为是测试环境,所以把RA、CA,RA的数据库,CA的数据库都部署在这台服务器上,客户端是winds,使用php访问服务器的RA 应用服务的web接口,RA从数据库中做简单校验通过后,再与CA应用服务建立连接,进行数据处理,处理成功后,保存数据库,返回给RA,RA也保存数据库,再把结果返回给客户端。一个客户端可以同时发多个请求,每个请求,RA和CA都会有一个线程处理。Java访问数据库采用的是连接池现在的问题是:
客户端在访问服务器时有时0.3s就返回接口,有时需要50多秒才返回结果。
1)把RA和CA拆开部署,问题一样
2)把RA和CA部署在一起,与数据库分开部署,问题也一样定位了一下,发现
1)出现问题慢时,CA和RA的各自的所有线程都同时慢。出现慢的时间点都一样
2)经过多次测试,发现出现慢的代码段是不一样的
3)采用top看了下资源,CPU再80%以下,内存也还剩很多
4)客户端用40个/秒发起请求,发现CA与数据库的链接在140左右,正常应该40个,每个请求建一个连接才对。基于以上原因,考虑可能是linux系统配置或者是oracle的连接处理的有问题,但不知道怎么解决,请各位高手帮忙指点,对linux系统实在不熟悉,感谢感谢!!