模块终端服务器

终端服务器  时间: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一),研究生.
研究方向为网络计算机和多媒体.
张松男,副研究员.
研究方向为计算机网络、多媒体通信.

RackNerd 2022春节促销提供三款年付套餐 低至年付10.88美元

RackNerd 商家我们应该是比较熟悉的商家,速度一般,但是人家便宜且可选机房也是比较多的,较多集中在美国机房。包括前面的新年元旦促销的时候有提供年付10美元左右的方案,实际上RackNerd商家的营销策略也是如此,每逢节日都有活动,配置简单变化,价格基本差不多,所以我们网友看到没有必要囤货,有需要就选择。RackNerd 商家这次2022农历新年也是有几款年付套餐。低至RackNerd VPS...

vdsina:俄罗斯VPS(datapro),6卢布/天,1G内存/1核(AMD EPYC 7742)/5gNVMe/10T流量

今天获得消息,vdsina上了AMD EPYC系列的VDS,性价比比较高,站长弄了一个,盲猜CPU是AMD EPYC 7B12(经过咨询,详细CPU型号是“EPYC 7742”)。vdsina,俄罗斯公司,2014年开始运作至今,在售卖多类型VPS和独立服务器,可供选择的有俄罗斯莫斯科datapro和荷兰Serverius数据中心。付款比较麻烦:信用卡、webmoney、比特币,不支持PayPal...

华为云年中聚惠618活动,新用户专区,云服务器低至88元/年,3年仅580.98元,热销抢购中,最后2天!

华为云怎么样?华为云用在线的方式将华为30多年在ICT基础设施领域的技术积累和产品解决方案开放给客户,致力于提供稳定可靠、安全可信、可持续创新的云服务,做智能世界的“黑土地”,推进实现“用得起、用得好、用得放心”的普惠AI。华为云作为底座,为华为全栈全场景AI战略提供强大的算力平台和更易用的开发平台。本次年终聚惠618活动相当给力,1核2G内存1m云耀云服务器仅88元/年起,送主机安全基础版套餐,...

终端服务器为你推荐
微盟赔付方案什么是“N+1”的赔偿方法?sherylsandberg谷歌怎么看自己的详细资料蓝色骨头手机蓝色骨头为什么还没上映sodu.tw今天sodu.org为什么打不开了?dpscycle寻求LR 高输出宏鹤城勿扰齐齐哈尔,又叫鹤城吗?ename.com趫 是什么意思?莱姿蔓蕊姿蔓是什么样的牌子来的长房娇人物描写片段,不用太长,150字左右,要有出处!急!!!!!弗雷德疯皮囊第四季EFFY为什么突然不对劲了。
花生壳动态域名 免费cn域名注册 三级域名网站 拜登买域名批特朗普 windows主机 cpanel主机 商家促销 台湾谷歌地址 softbank邮箱 工作站服务器 hostloc 双十一秒杀 佛山高防服务器 卡巴斯基破解版 支付宝扫码领红包 免费网页申请 如何注册阿里云邮箱 群英网络 云销售系统 广州服务器托管 更多