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 什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多 ...
随机推荐
- 动态代理模式_应用(Redis工具类)
本次使用动态代理的初衷是学习Redis,使用Java操作Redis时用到Jedis的JedisPool,而后对Jedis的方法进一步封装完善成为一个工具类.因为直接使用Jedis对象时,为了保证性能, ...
- Zabbix Server 3.2
软件环境 Centos7.3 LAMP Zabbix 3.2 1. Installing repository configuration package Install the repositor ...
- 「SAP技术」SAP VL02N 执行批次拆分报错,说不允许批次拆分?
1,如下新建的DN 80017843,storage location 字段值为空.VL02N 试图去做批次拆分失败,系统报错说,Batch split is not permitted for ma ...
- linux 常用Mysql脚本命令
常用命令 无需系统Root权限 新数据库设置Root密码 visible > mysql -uroot -p visible > mysqladmin -uroot password &q ...
- threejs 限制物件只能在指定平面上拖拽
threejs提供有 DragController.js的例子来辅助拖拽 该例子可以在基于当前屏幕的x和y轴上拖拽物体,但是它不能影响z轴. 查看代码,可以在touchStart\mousedown下 ...
- 秒杀系统(一)----环境搭建及集成Mybatis、Redis
1.1 环境搭建--pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=& ...
- IO - 同步 异步 阻塞 非阻塞的区别,学习Swoole有帮助
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?本文较长需耐心阅读,基础 ...
- 操作MyBatis引发Error setting null for parameter #X with JdbcType OTHER .无效的列类型
再用MyBatis操作Oracle的时候,传入null值而引发的错误 异常信息: org.springframework.jdbc.UncategorizedSQLException: Error s ...
- C lang:Array and Pointer formal parameter
Test Xx_Formal parameter Formal parameter are local variable. It's private to the function. Ax_Array ...
- java核心API
---恢复内容开始--- Javase01 day01 关于String: String是不可变对象,java.lang.String使用了final修饰,不能被继承: 字符串一旦创建永远无法改变,但 ...