Dynamics 365应用程序池回收对连接造成的影响。
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复348或者20190802可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!
通过SDK的方式连接CRM的组织服务,我这里使用的测试代码来自我前面的博文 一种提升连接Dynamics 365性能的方法 。从这些数据库中可以看出,第一次连接慢点外(接近5秒),其余几次都很快,不到1秒。

然后我再运行程序,在运行中回收下CRM对应的应用程序池 CRMAppPool,可以观察到数据如下:
可以看到应用程序池重启后的线程7,完成消耗了14秒,它之前的线程6消耗时间则为1秒,它之后的线程8消耗时间 9秒,线程9小时时间4秒,线程10开始恢复到正常消耗时间1秒。

根据 How to Find App Pool Recycles in Event Log 和 Recycling Settings for an Application Pool <recycling> 的说法,IIS 10 (对应的Windows Server版本是2016吧)则是记录了几乎所有的应用程序池的回收事件,若是较早版本的IIS,记录的回收事件比较少,只有Time, Memory, and PrivateMemory 三个。也可以开启。选择要开启的应用程序池,点击 高级设置 进行设置,如下图所示:

如果要查看IIS应用程序池回收,IIS重启等日志,打开 事件查看器 (可以直接使用命令 eventvwr 打开),导航到 Custom Views > Server Roles > Web Server (IIS) 即可查看到,据我观察,Source 为 WAS的记录的便是应用程序池回收事件。

当然也可以使用PowerShell命令来查看,比如如下的命令(注意这是英文版的搜索关键词,若是中文版请将 recycle 换成 回收)
Get-WinEvent -LogName System | Where-Object {$_.Message -like "*recycle*"}
如果是查看CRMAppPoole的回收,可以稍微改动下:
Get-WinEvent -LogName System | Where-Object {$_.Message -like "*recycle*CRMAppPool*"}
执行效果如下:

当然可以指定应用程序池的回收事件,选择应用程序池以后点击右边的 正在回收 进行设置,比如我这里设置为 凌晨2点回收,点击下一步保持不变后设置好。

那能提升下首次访问的性能,horse87 的文章 提高 SharePoint 页面访问速度之应用池预加载 将应用程序池高级设置中的 Start Mode 改成 AlwaysRunning .

还有将 IIS 站点高级设置中的 PreLoad Enabled 设置为 True。我测试了一下,对于首次SDK连接的效率提升并不是很明显,提升一两秒左右。

这里顺便提一下对IIS设置的一些建议,根据horse87 的文章 提高 SharePoint 页面访问速度之增加W3WP进程数及重置回收 ,如果IIS所在服务器内存和CPU使用不高的话,可以将CRM应用程序池的
Maxinum Worker Processes 设置为大于1的值,比如2,具体看影响。

Dynamics 365应用程序池回收对连接造成的影响。的更多相关文章
- Dynamics 365 Online-60000 API Limits
最近,Dynamics 365官方文档有最新的发布,就是从2018.3.19开始,会对API请求的数目有个限制:在连续的5分钟里,一个连接用户,针对一个CRM Organization,API请求数不 ...
- 介绍Dynamics 365的OrgDBOrgSettings工具
摘要: 微软动态CRM专家罗勇 ,回复320或者20190320可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 有时候会需要 ...
- Dynamics 365 CRM 开发架构简介
Dynamics 365 CRM提供了多种编程模型,你可以灵活地按需选用最佳模式. 本文是对Dynamics 365 CRM编程模型的综述. 概览 下图表明了Dynamics 365 CRM的主要可编 ...
- 一种提升连接Dynamics 365性能的方法
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复256或者20170512可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- 为实施了IFD的Dynamics 365更换自签名的SSL证书以符合Chrome的要求
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复259或者20170704可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Dynamics 365设置错误通知首选项的方法
本人微信公众号:微软动态CRM专家罗勇 ,回复288或者20181205可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 使用 ...
- Dynamics 365 Portal Onpremise缓存问题
最近被Dynamics 365 Portal的缓存问题折腾得不轻,Portal的配置进行缓存也就算了,连CRM中的记录也进行了长达15分钟到2小时的缓存,这是完全无法接受的 试想,我们有一个Porta ...
- IIS7 应用程序池回收
原文:http://technet.microsoft.com/zh-cn/library/cc754494 应用到: Windows 7, Windows Server 2008, Windows ...
- IIS应用程序池回收图文详解
转:http://blog.sina.com.cn/s/blog_8677fcaa010138uf.html 什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多 ...
随机推荐
- SpringCloud(三):服务消费以及负载均衡(RestTemplate+Ribbon)
一.什么是Ribbon: Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法. 将Netflix的中间层服务连接在一起.Ribbon客户端组件提供一系列完善的配置项如连 ...
- 松软科技Web课堂:JavaScript 类型转换
Number() 转换数值,String() 转换字符串,Boolean() 转换布尔值. JavaScript 数据类型 JavaScript 中有五种可包含值的数据类型: 字符串(string) ...
- Cesium 限制相机进入地下
有时我们在Cesium操作时,点击鼠标中间滚轮可更改视角,有时会使相机进入地下,导致体验很差,网上说了很多中方法,效果都不好或者没效果,下面是我翻了源码找到的方法,亲测有效.如有问题可按照专栏上的联系 ...
- jar包要读取的资源文件路径问题
本地调试读取文件没有问题 获取 Thread.currentThread().getContextClassLoader().getPath() 读取文件 打jar包之后 获取的路径出错 不能读取文件 ...
- 计算机组成原理——输入输出(I/O)系统考研题
(一) I/O系统基本概念 (二) 外部设备 1. 输入设备:键盘.鼠标2. 输出设备:显示器.打印机3. 外存储器:硬盘存储器.磁盘阵列.光盘存储器 (三) I/ ...
- Docker系列之原理简单介绍
目录 1.1.Docker架构简介 1.2.Docker 两个主要部件 1.3.虚拟机和Docker对比: 1.4.Docker内部结构 Docker系列之原理简单介绍 @ Docker是一个开源的应 ...
- 使用 ASP.NET Core MVC 创建 Web API(六)
使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使 ...
- C#基础之多线程与异步
1.基本概念 多线程与异步是两个不同概念,之所以把这两个放在一起学习,是因为这两者虽然有区别,但也有一定联系. 多线程是一个技术概念,相对于单线程而言,多线程是多个单线程同时处理逻辑.例如,假如说一个 ...
- [转]uipath orchestrator installation
本文转自:https://dotnetbasic.com/2019/08/uipath-orchestrator-installation.html UiPath Orchestrator Insta ...
- iOS字符串处理_替换(去掉空格换行)、截取
以下代码主要实现了:1.截取"@@"前的字符串: 2.去掉字符串中的"##": 3.去掉字符串中的空格和换行. 希望相互学习相互指正. -----ViewC ...