分享
 
 
 

多处理器平台上J2EE应用的内存争用

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

随着在企业级环境对高可扩展性J2EE应用的需求,需要在多处理器平台上执行线程的并行处理。在JVM堆中对线程处理所需要的内存和并发处理已经成为这些J2EE应用在部署时的性能和可扩展性的瓶颈。这篇文章探讨了J2EE应用在多处理器平台上访问JVM堆中的内存的线程同步问题。

J2EE应用的内存需求

当前布署在企业级环境中的J2EE应用都需要在一秒中能够处理成千上万的用户请求。这种来自大量并发用户的数据请求就产生了更大堆空间的需求,也就需要更多的内存。有了更多的内存就可以提供更大的J2EE应用堆空间,而多处理器可以处理更多的并发线程,因而现在线程访问内存的方式和访问所花费的时间就成了瓶颈所在。

多处理器平台

处理器数目的增加可以提高可扩展性,但同时需要处理更多的线程。线程在处理数据、创建java对象及其他Java操作时都有需要耗用内存。由于多个线程在多个处理器中运行,就需要保证在系统中数据的一致性和完整性。在处理器中的线程同时读写内存,这就需要同步这些线程来防止读写错误的数据。在图1中,显示单处理器与多处理器在访问内存时的异同。在单处理器平台中,在任何给定的时间只有一个线程被执行,因此不需要同步。然而在多处理器平台,同一时间可能会有多个线程被执行,这就需要同步访问内存来保证数据的正确性,而这就会导致争用和瓶颈?

Figure 1. Single-PRocessor versus multi-processor platforms accessing memory

“线程本地堆”尝试通过为每一个线程在JVM堆中预分配一小块内存来解决这个问题。然而这种方式下内存空间对高内存需求的J2EE应用来说是不够的。

实验和观察

我们会在一个8CPU平台上为J2EE应用做一项实验,下面是实验的代码:

String mem = request.getParameter("memory");

if (mem != null && !mem.equals("")) {

int mem_kbytes = Integer.parseInt(mem);

byte[] i = new byte[mem_kbytes*1024];

}

在每一次测试中,这些J2EE线程会请求创建一个特定内存大小的对象。在一个多用户负载测试中,我们观察到下列的数据:响应时间、吞吐量和资源利用率。

我们将JVM堆大小设置为一个较大的值这样就可以减少垃圾回收的次数。我们注重到即使负载增加,“垃圾回收暂停时间”与“运行总时间”的比率始终在1:35左右,因此我们认为他在这项实验中的影响较小。结果如下图2。

Figure 2. Results of shared memory access on multi-processor platform

这个实验的环境如下:

1、应用服务器:WebLogic7

2、JVM:Sun JVM 1.3

3、操作系统:windows 2000高级服务器版

4、硬件:Intel Dell PowerEdge 8450 (8Intel Xeon 800MHz 处理器, 4GB RAM)

5、网络:100Mbps Cisco网络

6、负载测试工具:WebLoad

我们观察到在增加特定内存大小的对象的负载时,吞吐量增加的比率与CPU利率的增加比较并不相同。当然,响应时间的增加也不是线性的。这些实验清楚地显示了这些J2EE线程的高内存需求导致系统内的争用并且成为J2EE可扩展性的瓶颈。我们还观察到这些线程访问内存和创建对象所花费的时间随着处理利用率的增加而增加。这可以从负载的增加导致服务请求的增加中看出来,如图3中特定内存大小的Java对象的创建图表。

Figure 3. Increase in service demand versus load for Java objects of different memory sizes

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有