我们的服务器应用程序在某些客户中极度缓慢.服务器重启会解决缓慢问题,但几周后它会恢复.
Java cpu总是大约100%(200%),所有其他参数都很好.研究表明,大多数cpu都被“HandshakeCompletedNotify-Thread”线程所消耗.从tcp dump我们看到SSL握手需要2-8秒,这很长,有时会抛出超时.
我们的SSL提供商是BSAFE.服务器在Linux(CentOS)上运行,640 MB堆,2个核心.使用Hibernate,spring,Oracle本地db
这种行为可能是什么原因?找到它们可以做些什么?
附:我们无法在客户处将流量切换为HTTP.
更新:当使用IP表阻止java进程的传出连接时,系统完全释放.在这种情况下释放了什么资源?
我们看到SSL握手经常陷入“改变密码规范”阶段.客户端(我的java进程)尝试重用SSL会话,但服务器完全无状态,每次都会生成新的会话.
最佳答案