提高 SharePoint 页面访问速度之应用池预加载

简介:

之前我的一篇文章给大家粗略的讲了一下关于 IIS应用池回收给 SharePoint 带来的访问速度的提升,

详见 http://horse87.blog.51cto.com/2633686/1895153

前几天和几位MVP一起又讨论学习了一下关于IIS应用池的回收问题,今天来给大家再铺开来讲一讲。

简单来说,我么服务器IIS中的应用程序池,可以看做是一个网站的资源边界,当网站要与系统资源发生交互的时候,实际上会通过应用程序池,再由池子去请求系统资源,分配给网站,一个网站所能使用到的系统资源可以通过池子来进行控制。

我们大家可以这样理解,网站本身是静态存在的,但是应用池是动态的。 池子里面包括了:网站所占用的进程,内存虚拟地址,会话状态等,这些内容都是保存在池子里面。通过应用池可以对一个网站进行合理的资源管控。比如,当一个网站的CPU使用达到了某个峰值,内存使用达到了某个峰值,或者到了某个请求数,就把这个应用池进行回收。

我们其实可以稍微屡一下思路,当我们访问一个网站的时候,实际上是去访问了一个IIS的网站集,这个时候IIS会通知这个池子,“现在有人来 访问你了”,然后池子会启动一个W3WP的进程,由这个进程来负责处理用户与网站的交互。在IIS ASP.NET应用程序里面, 应用程序池会要求定期做回收,要做回收的目的,其实就是为了防止一个池子过多的占用系统资源。

有时候代码没有写好,长时间不回收池子,是会导致网站进入假死状态的。因此,IIS应用池回收是一定要做的。但是回收了,也意味着之前这个池子缓存的内容,以及内存中的状态,都会被清理掉,应用程序池回收,相当于是给电脑来了一次重启,或者说是重启了IIS。

说到电脑重启,大家都知道,重启之后刚启动起来,那个速度也是很慢的,过阵子等系统后台进程都启动起来了,就好了。IIS应用程序池回收也是这个道理。为什么有时候第一次访问SharePoint会很慢,及时因为SP所在的IIS池子刚刚经过回收,W3WP进程还没有启动起来,所以第一次访问,会有一个启动W3WP进程的过程,相当于要给SharePoint重新开机一次。

SharePoint这个应用程序比较大,有很多个池子,如果按照Technet上的建议,每一个SP里面的service application 都创建一个独立的池子,那这个数量可想而知。所以有时候大家早上第一次访问,会非常的慢,就是因为后台正从休眠状态中苏醒过来,初始化W3WP这个进程。

从IIS7开始,微软就推出了集中优化的方案,用来解决应用池回收的问题。

首先,应用程序池回首之后为什么会访问慢,是因为要初始化W3WP这个进程,让它干活,所以默认情况下,一个池子回收之后,如果没人访问,W3WP是不会启动的,除非有人访问它,唤醒池子,才会启动W3WP,之后如果再有人访问,那么速度就要快一些了。

微软为了解决这个问题,推出了应用程序池和网站预加载功能。什么叫预加载呢?简单的来说,其实就是去感知应用程序池的回收,每当感知到这个池子进行了回收,那么系统会自动启动一个W3WP进程,这样相对于以前来说,就已经有很大的提高了。

话不多说,直接上图。

打开SharePoint IIS, 选择应用池,选中其中你想配置的一个池,我这里以80主站点为例,右键,高级设置

image

第一步,选择启动模式,为 alwaysrunning

image

第二步,设置IIS网站的预加载,选中主站点,选择右侧的高级设置

image

预加载选项,选为 启用 即可。

image




     本文转自horse87 51CTO博客,原文链接:http://blog.51cto.com/horse87/1908909,如需转载请自行联系原作者


相关文章
|
5月前
|
容器
IIS 应用程序池
IIS 应用程序池
74 1
CDN
|
缓存 网络协议 前端开发
全面加速Wordpress站点:从文章页到管理后台
使用阿里云服务和几个插件,提高wordpress站点每个环节的访问速度。
CDN
925 0
全面加速Wordpress站点:从文章页到管理后台
|
Web App开发 前端开发 Unix
使用WebP节省网站流量和存储空间,加快网站加载速度
使用WebP节省网站流量和存储空间,加快网站加载速度
843 0
|
Web App开发 缓存 搜索推荐
艾伟_转载:谈*静态页*(或网页*静态化*)
  “静态页”,在Web应用程序开发中是很常见的概念。只是我发现目前还是有相当部分的朋友,在这方面的存在一定的误区。因此现在独立写一篇文章,也想把一些问题讲讲清楚,以后在讨论的时候也好有个准。   不久前有朋友写了一篇题为《提供生成静态页核心代码》的文章,介绍了一种“向硬盘写入页面文件”的方式。
1035 0
|
缓存 Go 图形学
Unity缓存池
unity在创建物体后(申请内存),删除,内存中没有立刻释放,只是将引用取消掉. 缓存池:优点:减少内存消耗,优化运行时效率,防止内存泄漏.需要存放不同类型的游戏对象(GameObject) 使用字典来创建缓存池Dictionary> 缓存池创建:缓存池判断游戏物体是什么类型使用枚举 public...
1264 0
|
缓存 数据库 Windows
IIS应用程序池_缓存回收
原文:IIS应用程序池_缓存回收 本人最近由于公司业务,需要把问卷的问题和答案存入缓存中已提高问卷加载速度,减少数据库压力。 缓存关键代码(公司代码已做封装,这里只贴出关键代码): HttpRuntime.
1714 0
|
C# 存储
WPF中的资源(一) - 静态资源和动态资源
原文:WPF中的资源(一) - 静态资源和动态资源 WPF中,每个界面元素都含有一个名为Resources的属性,其存储的是以“键-值”对形式存在的资源,而其子级元素在使用这些资源时会从Resources中找到这些资源。
1171 0