我是微软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应用程序池回收对连接造成的影响。的更多相关文章

  1. Dynamics 365 Online-60000 API Limits

    最近,Dynamics 365官方文档有最新的发布,就是从2018.3.19开始,会对API请求的数目有个限制:在连续的5分钟里,一个连接用户,针对一个CRM Organization,API请求数不 ...

  2. 介绍Dynamics 365的OrgDBOrgSettings工具

    摘要: 微软动态CRM专家罗勇 ,回复320或者20190320可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 有时候会需要 ...

  3. Dynamics 365 CRM 开发架构简介

    Dynamics 365 CRM提供了多种编程模型,你可以灵活地按需选用最佳模式. 本文是对Dynamics 365 CRM编程模型的综述. 概览 下图表明了Dynamics 365 CRM的主要可编 ...

  4. 一种提升连接Dynamics 365性能的方法

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复256或者20170512可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  5. 为实施了IFD的Dynamics 365更换自签名的SSL证书以符合Chrome的要求

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复259或者20170704可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  6. Dynamics 365设置错误通知首选项的方法

    本人微信公众号:微软动态CRM专家罗勇 ,回复288或者20181205可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 使用 ...

  7. Dynamics 365 Portal Onpremise缓存问题

    最近被Dynamics 365 Portal的缓存问题折腾得不轻,Portal的配置进行缓存也就算了,连CRM中的记录也进行了长达15分钟到2小时的缓存,这是完全无法接受的 试想,我们有一个Porta ...

  8. IIS7 应用程序池回收

    原文:http://technet.microsoft.com/zh-cn/library/cc754494 应用到: Windows 7, Windows Server 2008, Windows ...

  9. IIS应用程序池回收图文详解

    转:http://blog.sina.com.cn/s/blog_8677fcaa010138uf.html 什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多 ...

随机推荐

  1. 动态代理模式_应用(Redis工具类)

    本次使用动态代理的初衷是学习Redis,使用Java操作Redis时用到Jedis的JedisPool,而后对Jedis的方法进一步封装完善成为一个工具类.因为直接使用Jedis对象时,为了保证性能, ...

  2. Zabbix Server 3.2

    软件环境 Centos7.3 LAMP Zabbix 3.2  1. Installing repository configuration package Install the repositor ...

  3. 「SAP技术」SAP VL02N 执行批次拆分报错,说不允许批次拆分?

    1,如下新建的DN 80017843,storage location 字段值为空.VL02N 试图去做批次拆分失败,系统报错说,Batch split is not permitted for ma ...

  4. linux 常用Mysql脚本命令

    常用命令 无需系统Root权限 新数据库设置Root密码 visible > mysql -uroot -p visible > mysqladmin -uroot password &q ...

  5. threejs 限制物件只能在指定平面上拖拽

    threejs提供有 DragController.js的例子来辅助拖拽 该例子可以在基于当前屏幕的x和y轴上拖拽物体,但是它不能影响z轴. 查看代码,可以在touchStart\mousedown下 ...

  6. 秒杀系统(一)----环境搭建及集成Mybatis、Redis

    1.1 环境搭建--pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=& ...

  7. IO - 同步 异步 阻塞 非阻塞的区别,学习Swoole有帮助

    同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?本文较长需耐心阅读,基础 ...

  8. 操作MyBatis引发Error setting null for parameter #X with JdbcType OTHER .无效的列类型

    再用MyBatis操作Oracle的时候,传入null值而引发的错误 异常信息: org.springframework.jdbc.UncategorizedSQLException: Error s ...

  9. C lang:Array and Pointer formal parameter

    Test Xx_Formal parameter Formal parameter are local variable. It's private to the function. Ax_Array ...

  10. java核心API

    ---恢复内容开始--- Javase01 day01 关于String: String是不可变对象,java.lang.String使用了final修饰,不能被继承: 字符串一旦创建永远无法改变,但 ...