ETSOO技术架构下的网站缓存和性能提升配置

ETSOO的网站和云平台技术,在考虑提升服务器方面,做了以下开发和规划:

一、防止网站直接访问云平台资源

在网站的 web.config 文件中,增加配置

<add key="smarterp_site_url_rewrite" value="true" /><add key="smarterp_site_resource_domain" value="http://is.***.com" />,其中 is.***.com为云平台面向该网站的资源虚拟站点,并设置该站点的并发访问量比如为1000,带宽2048000(Byte)=2M,对应的应用程序池,CPU: 30000(30%),KillW3wp,5分钟,专有内存限制1024000(kb) = 1G。

此外,没有单独配置资源站点的客户网站,修改网站服务器的基础配置文件的资源路径,在C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config,平台定义的 resource_domain,修改为 rs1.***.etsoo.com,这样所有网站的导流地址全变成新的形式,***为平台编号,尽可能和平台站点隔离。

二、开启网站缓存

通过设置Master页面参数 CacheMinutes="30"(默认设置,如果需要关闭,请设置为0),程序会缓存客户端文件资源,相当于在页面头部设置

<%@ OutputCache Duration="30" VaryByParam="None" Location="Client" %>

服务器端,对于高频访问页面,除了设置客户端缓存,还可以设置页面配置参数 CacheSetup="true",会缓存服务器端的数据库访问结果,从而极大提高网页访问速度,但不宜设置过多页面,避免服务器端缓存耗费大量内存。

三、数据库访问优化

修改数据库服务器属性,最大服务器内存(MB),可以设置为总内存减4G,每次查询占用的内存(KB)设置为2M或者更高。勾选“提升 Window Server 的优先级”和“使用 Windows 纤程(轻型池)”(需要注意这会禁用CLR调用),勾选“使用查询调控器防止查询长时间运行”,时间设置为60秒,防止过长的查询锁定服务器资源,导致其他访问无法进行。可以先通过VS对象资源管理器,右键“活动和监视”,查看“最近耗费大量资源的查询”,排除非正常的查询超时,设置该限制。