我一直在为Java Restful Web服务开发JAX-RS
应用程序。
应用程序遇到性能问题,负载很大。
通常,处理一个请求大约需要400毫秒(0.4秒),但是当我复制同一请求1000次时,处理每个请求的时间会增加到30000毫秒(30秒)。
使用jax-rs
,CDI Injection
,jaxb
和JDBC
这是一个相当简单的应用程序。
服务器为IBM WAS with Liberty Profile
。
部署在具有2个吊舱/节点的docker
容器上。
我如何提高此应用程序的性能?
答案 0 :(得分:3)
Kishor,
在WebSphere Liberty的更高版本中,与线程池相关的吞吐量已进行了多项性能改进。您的问题没有提供有关您正在使用的WebSphere Liberty级别的信息。此外,WebSphere Liberty中的JAX-RS功能还进行了一些性能改进,这可能也是有益的。
如建议的那样,您需要通过分析瓶颈来确定是什么原因导致速度下降。通常它是某种资源。例如,网络,CPU,内存,磁盘,锁等。使用详细GC运行是开始并查看垃圾回收活动的好地方。如果您的堆没有针对要执行的负载进行适当配置,则垃圾收集暂停可能会导致您的问题,但还有许多其他可能性。立即进行排除是一个很好的选择,因为这样做很容易。
如果您提供的WebSphere Liberty版本号将帮助人们为您提供有关可能有用的更多信息。