中间件大致可以分为六类:终端仿真、屏幕转换中间件、数据访问中间件、远程过程调用中间件、交易中间件、对象中间件,本次分析以WebSphere 为例,性能在一下方面:
1、连接池:
创建和管理连接和缓冲池的技术,以便被需要的线程使用。
减少连接创建时间、简化编程模式、资源使用受控
连接池设置要适当,不是越大越好,需根据实际情况进行调整
2、线程池
Web容器线程池不是越大越好,需要根据实际情况进行调整
线程池设置过大,虽然线程池过大可以解决当线程堵塞或者死锁的情况时,但随之而来的问题是,线程池设置过大,导致维护开销过大,每次线程维护,都需要从头到尾进行遍历,并且当线程堵塞时,事物会另起一个线程进行工作,当堵塞线程数目增加到一定数量时,那么这些线程所占用的系统资源是非常可观的。
3、JVM
对于不同的应用程序,最优化堆的大小设置不一定相同:
堆设置过大,会占用的过多的内存资源,使内存资源耗尽,从而会频繁的进行IO操作来使用虚拟内存
堆设置过小,会使对象分配的空间变小,从而会频繁的使用垃圾回收机制来释放内存空间,而每次垃圾收集,都会耗用一定的系统资源。
通过监控数据,设置的堆大小能够使程序运行最优化。
4、高速缓存
把系统经常需要的数据存储在高速缓存中,可以加快数据载入速度
高速缓存可以分为servlet高速缓存和对象高速缓存, servlet高速缓存包括:class、jsp、servlet、portal
高速缓存可以通过程序调用,配置文件来实现。
可以利用WAS的servlet高速缓存机制来缓解服务器压力
可以通过编写Cachespac.xml配置文件,定义策略来实现