模块终端服务器
终端服务器 时间:2021-04-04 阅读:(
)
2007年第24卷第3期微电子学与计算机一种终端服务器内存优化方法叶萃,张松(中国科学院计算技术研究所,北京1(XX)80)摘要:终端服务器是网络计算机WBT模式的重要组成部分,终端服务器的性能和成本影响着整个网络计算机系统的性能和成本.
通过分析Windows内存管理中内存共享的基本原理和重移位对内存共享的影响,实现了一种动态优化终端服务器内存的方法,最后的实验证实了这种方法的有效性.
关键词:终端服务;内存优化;内存共享;写拷贝;重移位中圈分类号:TP31文献标识码:B文章编号:10[X)一7180(2007)03一0059刁3AnEffectiveMemo叮OPti而zeMethodofTern止nalYECui,ZHANGSong(InstituteofCo呷utingTechnolo群,ChineseAcade卿ofsciences,Beijingl(X刃80,China)A加曲raCt:TerminalServiceisanimPOrtantc0lnponentofNetwOrkComputerWBTmodel,,its脚rformancebaS脾at加四ctionontheNCsystem'sPed沁rlnance.
Inthisl〕aPer,we叨山a耐yzethememoryshareteclmolo盯in衍ndowsme田orym阴昭enlentandthe公巍ctforthememorysh毗oftherebase,thenb石ngforwardameth记thatd尹IaJ面callyoPti面zes山ememoryusageOfthetennmalserver.
Thetestresultshowthatthisothodeffectivelylowe.
thememoryu肚唱e成theterrnin以server.
K叮邢川5:忱瓦苗nalse币ce;memo叮opt俪zation;memo叮share;copy门n一write;rebase1引言网络计算机的主要应用模式[1]是基于Windows的终端(WindowsBasedT饱nni耐)wBT模式.
WBT模式有对客户端的要求低,支持的连接协议丰富,支持压缩和应用软件丰富的特点,所以基于ICA和RDP协议的WBT模式成了网络计算机的主要应用模式叹目前对终端服务器的优化主要有三种方式:第一种方式要求应用程序的设计要考虑终端服务川;第二种方式从解决上述资源竞争出发,设计服务器端的优化软件,避免竞争或者限制对资源的过量占用,比如说微软开发的windows系统资源管理软件WSRM(WindowssystemResourceManagement)[31,或者通过用户管理和组策略限制用户对软件的使用;第三种方式就是从底层考虑,采用和应用程序无关的方法优化系统的资源使用问.
文中介绍的就是这样一种终端服务器内存的优化方法.
2基本原理为了尽可能地支持内存共享,windows操作系统支持给内存块赋予C叩y一on一write保护属性[71,收稿日期:2(】拓一03刁5如图1所示,一开始进程1和进程2共享物理内存页1,2,3,5.
这些页的保护属性被设置成C叩y一On-Write,当进程1要对物理页1做写操作的时候,操作系统注意到物理页1的保护属性是CoPy一on-write,它就会新分配物理页6,然后拷贝1到6,重新映射进程1地址空间的页3到物理页6,最后执行写操作.
C叩y一On一write技术延迟拷贝到必须的时候,尽可能地使内存被共享.
但是上述内存共享的前提是程序模块(exe或者dll)被加载到首选基地址,如果在程序加载的时候首选的基地址空间已经被占用,就会发生两种情况(如图2所示),或者加载失败(链接参数使用/FlxED),或者加载程序把模块重移位(Rebase)ts]到可用的地址空间中去,因为重移位的过程需要作写操作,这时由于CoPy一on一Write的缘故,加载程序会把模块拷贝然后作重移位操作,这样进程之间就不能共享该模块.
做了这样一个实验,应用程序A和A'由两个模块B(exe)和C(dll)组成,A的两个模块B和C的加载地址没有冲突,A'的两个模块B和C的加载地址是一样的.
模块C的大小是172K,可共享的部分大小(.
text+,rdata)是145K,分别测试在打开十个A和A'实例的情况下的内存变化,结微电子学与计算机2007年第24卷第3期一.
曰.
.
.
.
.
.
.
.
.
.
.
.
.
曰.
.
.
.
.
.
.
.
.
.
.
曰.
.
.
.
.
.
.
.
.
.
.
.
口.
.
.
.
.
.
.
.
.
.
.
.
.
-.
.
.
.
.
.
.
.
.
.
.
.
.
.
进程1的虚拟地址空间实际的物理内存进程2的虚拟地址空间{1誉{:113弓14务二l三2}311}45·6是页1的拷贝图ICopy一on一write示意图果平均每个实例占用的内存增加了147K.
所以模块不能加载到首先的基地址会造成模块不能共享,增加系统的内存使用.
图2是模块(exeldil)加载的流程图.
到首先的基地址.
这些应用软件的模块加载问题,在单个用户登陆的情况下,对系统内存的影响基本可以忽视,但是在多个用户使用同一软件的多个实例的时候,增加的内存就是(N--1)*5,所以在终端服务的多用户环境中,模块不能被加载到首选基地址会极大地增加服务器的内存使用.
从上面的分析得知,模块共享的前提是模块被加载到首先基地址,否则会影响程序加载的速度和增加终端服务器占用的内存,在终端服务多个用户使用相同的程序集的环境中,这种影响显得尤为突出.
如果可以对不能被加载到首选基地址的模块进行优化,修改首选基地址到一个不会冲突的值,就可以减少终端服务器的内存占用,从而达到优化服务器性能的目的.
图2模块(exeldll)加载过程在微软的测试中,客户使用的应用软件是Ex-cel+Wo记+outlook+IE,这些都是由微软开发的,软件在发布之前已经使用Rebase工具对软件进行了重移位优化.
但是实际环境中,有很多应用软件的模块不能被加载到首选的基地址(从优化结果可以看出).
出现这种情况的原因如下:(l)Rebase操作不是一个必须的操作,因此很多的应用程序没有作这样的优化;(2)有些软件设计的应用环境就是单实例的,因此模块共享对应用程序的影响不大,但是在终端服务环境中,多个用户打开了软件的多个实例,这时模块共享才变得十分重要;(3)现在的程序中很多模块都是动态加载的,比如在运行时使用肠adLibrary加载动态链接库,coM的使用,使用插件技术动态装载控件,这些都导致模块不能被加载3具体实现在上述原理分析的基础上,提出终端服务器的动态内存优化方法,该优化方法的主要思想就是动态扫描模块的加载情况,然后修改没有加载到首选基地址的模块的首选基地址.
如图3所示,程序主要分为两个部分,后台分析模块和优化模块,它们之间使用事件对象进行通讯.
后台分析模块被设计成一个系统服务(service),在后台运行.
相比于设计成应用程序,系统服务有在用户登陆前自动运行、全局唯一的优点.
后台分析模块定时地扫描系统,找出可以优化的模块.
考虑动态扫描的方法一方面是因为考虑用户使用方便(不用每次安装程序都要执行优化),另一方面是因为模块的加载是一个运行时问题,静态分析不能优化所有的模块,通过动态扫描可以在运行时找出可优化的模块.
优化模块则被设计成一个COM组件,这样可以很方便地把这个优化功能集成到其他的软件中去.
在实验中,优化模块被一个定时运行的程序调用,进行优化.
下面给出分析和优化部分的详细实现.
图3优化程序整体结构图(1)分析模块根据发生的事件(退出、保存或者2007年第24卷第3期微电子学与计算机Timeout)分别作不同的处理,这里给出发生了Timeout事件时分析系统的模块加载情况的流程,其中主要使用的API如表1所示,因为代码较多,所以只给出了流程的伪代码.
表1主要使用的API函数名函数说明Enu.
rrocesses枚举系统中所有进程的ID列表EnumProcessModules枚举指定进程的模块列表Virtu以QueryEx得到指定进程地址空间的地址范围的属性ReadhocessMemory从指定进程的地址空间读取数据儿比achProcessinsystem:江IsE那luded(P找'ess)://如果进程被设定为不需要被优化continue肠比achmoduleinp似ess:刀如果模块的首选基地址不等于模块的装载地址Ifmodule,defall】tBaseAddr!
=功闭ule.
foadedBaseAddr;刀如果模块没有被加人到可优化模块数组中ifnot(moduleinopti而zablemodules)://增加模块信息到可优化模块列表中opti呱ablemodules·appen俘(m仪lule·info)(2)优化模块首先通知分析模块保存分析结果到文件F中,然后根据分析结果进行优化.
需要注意的是模块的新首选基地址是在分析模块得到的运行时实际装载地址,这样可以保证不会和其他的模块有所冲突.
.
重移位涉及的主要数据结构是PE文件的重移位表[7J,这里不做过多介绍,下面给出了主要流程的伪代码.
肠花achmod山inOP6m认以blemodules:刀映射模块到内存lpModuleMaP=MapFileThMemory(medulename)//解析模块的文件结构,得到模块的重移位表rebase卫山】e=GetReb砚姆Table(IPModuleMaP)foreachrebasellemin此baseTable://遍历重移位表刀修改模块中需要修改的数据rebaseltem.
Value=rebaseltem.
Value+newlmageBase一OldlmageBaseUnMapFile(lpModuleMaP)4实验结果在一台有20个人使用的终端服务器上运行优化程序,这台服务器是某公司内部的服务器,主要用于内部的非技术人员(销售、财务等员工)的日常工作.
设置优化在每天的24:00运行一次.
从实验结果可以看出,在终端服务器中有很大的优化空间.
在支持20人的终端服务环境中,假设终端用户正在使用FireFox,oudook,QQ和WPS软件,则优化程序就可以为终端服务器节约(20一1)x(25(X)+25+4980+l000())/1000M=332M的内存.
而这只是一个20个用户的终端服务器,在微软给出的测试报告中,使用2003的终端服务器通常可以支持100个用户,所以这里的内存优化方法,有效地降低了服务器的内存占用,提高了服务器的服务能力.
参考文献:[l1钟映江.
基于网络计算机系统的网络应用模式研究田.
通信与信息技术,2以H,5[2]杜天苍.
基于Unux的RDP客户端设计田微电子学与计算机,2(X)5,22(11),127一130[310pti而zing叩plicationsfor而crosoftwindowsZ《XX)termi-nalservicesandwindowsNTserver40,TerminalserverEdition匡B尹OL].
Micro以近MSDNUbraryZ(X)3.
HttP:11msdn.
而c功印n.
co回.
1999,12[4Jwindowssystemresouoemanagerfastfacts压B10LI.
HttP二llmsdn.
而croson.
coml.
2(X)2,12[5]WindowsserverZ(X)3te丽nalserVerc叩acitsandSCaling·HttP刃msdnmicmsoft.
colnj.
2加3,7[6lMatt凡晚k.
P吧ednginsidethepE:atourofthewin32Portableexecutab】efilefon的at[EBIOL]Http:/msdn·而-c加5证t'co而.
1994,3[71Jeffery凡chter.
Windows核心编程[M].
北京:机械工业出版社,20(刃作者简介:叶苹男,(1980一),研究生.
研究方向为网络计算机和多媒体.
张松男,副研究员.
研究方向为计算机网络、多媒体通信.
Contabo是一家运营了20多年的欧洲老牌主机商,之前主要是运营德国数据中心,Contabo在今年4月份增设新加坡数据中心,近期同时新增了美国纽约和西雅图数据中心。全球布局基本完成,目前可选的数据中心包括:德国本土、美国东部(纽约)、美国西部(西雅图)、美国中部(圣路易斯)和亚洲的新加坡数据中心。Contabo的之前国外主机测评网站有多次介绍,他们家的特点就是性价比高,而且这个高不是一般的高,是...
昨天我们很多小伙伴们应该都有看到,包括有隔壁的一些博主们都有发布Vultr商家新的新用户注册福利活动。以前是有赠送100美元有效期30天的,这次改成有效期14天。早年才开始的时候有效期是60天的,这个是商家行为,主要还是吸引到我们后续的充值使用,毕竟他们的体验金赠送,在同类商家中算是比较大方的。昨天活动内容:重新调整Vultr新注册用户赠送100美元奖励金有效期14天今天早上群里的朋友告诉我,两年...
halocloud怎么样?halocloud是一个于2019下半年建立的商家,主要提供日本软银VPS,广州移动VDS,株洲联通VDS,广州移动独立服务器,Halo邮局服务,Azure香港1000M带宽月抛机器等。日本软银vps,100M/200M/500M带宽,可看奈飞,香港azure1000M带宽,可以解锁奈飞等流媒体,有需要看奈飞的朋友可以入手!点击进入:halocloud官方网站地址日本vp...
终端服务器为你推荐
甲骨文不满赔偿公司倒闭员工不满一年怎么赔偿18comic.fun黑色禁药http://www.lovecomic.cn/attachment/Fid_18/18_4_00d3b0cb502ea74.jpg这幅画名字叫什么?比肩工场大运比肩主事,运行长生地是什么意思?seo优化工具seo优化软件有哪些?百度关键词分析百度竞价关键词分析需要从哪些数据入手?百度关键词分析怎样对关键词进行分析和选择baqizi.cc曹操跟甄洛是什么关系javlibrary.comImage Library Sell Photos Digital Photos Photo Sharing Photo Restoration Digital Photos Photo Albumswww.gogo.comNEO春之色直径?bk乐乐BK乐乐和沈珂什么关系?
Oray域名注册服务商 vps优惠码cnyvps flashfxp怎么用 美国主机评论 圣迭戈 香港托管 bash漏洞 名片模板psd 免费名片模板 申请空间 空间服务商 免费个人空间申请 t云 怎么建立邮箱 shuang12 贵阳电信 重庆联通服务器托管 蓝队云 weblogic部署 cdn免备案空间 更多