在项目中一直使用csla 4.13.

项目一直正常,但是偶尔会出现iis占用的cpu 突然100%,

后面客户量大的情况,加入了缓存的机制.100%的情况出现的更多了.

当时有数据库死锁的原因.cpu占用到99%.捕捉dump很不现实.在过了一年多了.终于在开启了数据库捕捉死锁提示,在修改数据库的读写为

READ_COMMITTED_SNAPSHOT 之后.如下方式.

ALTER DATABASE [数据库名] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [数据库名] SET ALLOW_SNAPSHOT_ISOLATION ON
ALTER DATABASE [数据库名] SET READ_COMMITTED_SNAPSHOT ON
ALTER DATABASE [数据库名] SET MULTI_USER

但是又出现iis占用了很高的cpu 90%,很长时间.终于第一次在服务器上面捕捉到dump.

通过对dump分析,发现问题.

11个线程访问同一个对象,卡住了.

mscorlib_ni!System.Collections.Generic.Dictionary2[[System.__Canon, mscorlib],[System.Boolean, mscorlib]].FindEntry(System.__Canon)+c8 Csla.Core.BusinessBase.CanReadProperty(Csla.Core.IPropertyInfo)+44 Csla.Core.BusinessBase.GetProperty[[System.__Canon, mscorlib]](Csla.PropertyInfo1, Csla.Security.NoAccessBehavior)+38

此问题不好查询到.几乎从来没有想到是由于Dictionary出现的问题.

后面在github上面提交此问题.最后搜索到此问题已被处理,2015-12月的处理.详细见下面的链接.

https://github.com/MarimerLLC/csla/commit/aaf96203f45fb84594605ac80faeadab84634d47

将相关的Dictionary改为ConcurrentDictionary,即可.

csla 与高cpu的更多相关文章

  1. Visual Studio 2013 Ultimate因为CodeLens功能导致Microsoft.Alm.Shared.Remoting.RemoteContainer.dll高CPU占用率的折中解决方案

    1.为什么Microsoft.Alm.Shared.Remoting.RemoteContainer.dll的CPU占用率以及内存使用率会那么高? 在Visual Studio 2013 Ultima ...

  2. 如何定位死循环或高CPU使用率(linux)

    如何定位死循环或高CPU使用率(linux)  确定是CPU过高 使用top观察是否存在CPU使用率过高现象 找出线程 对CPU使用率过高的进程的所有线程进行排序 ps H -e -o pid,tid ...

  3. 嵌入式 如何定位死循环或高CPU使用率(linux) 及性能优化

    嵌入式 如何定位死循环或高CPU使用率(linux) ln -s /mnt/nfs/_install/usr/bin/sort /usr/bin/sort awk '{print $1,$2,$14, ...

  4. [项目机会]citrix 虚拟桌面对于java等高CPU占用率如何解决

    citrix 虚拟桌面对于java等高CPU占用率如何解决 问题1:java等客户端对于虚拟桌面cpu影响较大,但是有些用户的确需要使用java支持的程序,是否可以通过其他途径来解决? 问题2:对于其 ...

  5. .Net 调式案例—实验4 高CPU(High CPU)回顾

    原文地址:http://blog.csdn.net/directionofear/article/details/8033506 如果Web应用程序经常遇到的问题按频率排名的话,我觉得 第一名unha ...

  6. 高CPU业务场景下的任务分发方案Gearman搭建一览

      Gearman是当年LiveJournal用来做图片resize的,大家也明白图片resize是一个高CPU的操作,如果让web网站去做这个高CPU的功能,有可能会拖垮你的 web应用,那本篇我们 ...

  7. 解决vs-code高cpu占用率问题

    (microsoft.vscode.cpp.extension.darwin进程高cpu占用问题) 免费的vs-code现在已经成为mac/linux平台的码农新宠,毕竟从windows平台开发vir ...

  8. Confluence 6 其他 MBeans 和高 CPU 消耗线程

    其他 MBeans 希望监控 Hibernate 和 Hazelcast(仅针对 Confluence 数据中心)你需要在你的 setenv.sh / setenv.bat 文件中添加下面的内容. s ...

  9. (笔记)Linux下如何查看高CPU占用率线程

    在 Linux 下 top 工具可以显示 cpu 的平均利用率(user,nice,system,idle,iowait,irq,softirq,etc.),可以显示每个 cpu 的利用率.但是无法显 ...

随机推荐

  1. javascript如何写一个for循环

    一个非常简单的for循环,也有不少的学问.假如,我们的目标是要遍历一个dom结点的所有孩子结点,然后打印结点的内容. 在javascript下,我刚学习的时间,我会这样写. for(var i = 0 ...

  2. NHibernate+MySql (erro 解决方法)

    error1.  Could not create the driver from NHibernate.Driver.MySqlDataDriver 解决方法:在使用Nhibernate连接Mysq ...

  3. UI控件---UIWebView

    UIWebView是内置浏览器控件,可以用来浏览网页,文档等,今天就试着做一个简易的浏览器! 定义url的初始化方法和返回,前进,刷新三个方法,实现UIWebViewDelegate协议 @inter ...

  4. 安装office2016 64位时提示64位与32位的office程序不兼容,在系统是64位的情况下,由于应用的需要,必须装64位的office,怎么办

    解决办法如下: 如果是,那就看看32位的能不能安装了,要是能,就重新安装一次,把所有组件全部安装,然后,在进行卸载,一般可以卸载成功 如果卸载不成功,这个时候再使用微软的专用卸载工具,——要认清,一定 ...

  5. 如何解决nagios安装及运行在的常见错误?(转)

    一.安装nrpe的时候,提示:checking for SSL headers… configure: error: Cannot find ssl headers 解决方法如下: yum -y in ...

  6. VScode格式化vue文件

    使用vscode编写vue文件的时候, 发现不能格式化,手动格式化代码,太费劲, 还有可能会出错, 不格式化,有的时候代码编写的时候, 没有很好的管理格式,不美观. 但是我们是可以修改让VScode可 ...

  7. 【转】es6的拓展运算符 spread ...

    原文:https://blog.csdn.net/qq_30100043/article/details/53391308 The rest parameter syntax allows us to ...

  8. 字符串去重(hashSet)

    public static String deleteRepeat(String strn){          String s=strn;        String[] array = s.sp ...

  9. Selenium webdriver Java firefox 路径设置问题

    问题: Cannot find firefox binary in PATH. Make sure firefox is installed. 原因:selenium找不到Firefox浏览器. 方法 ...

  10. 使用OpenSSL生成CSR文件,并申请全球通用SSL证书

    http://www.openssl.org 上只有OpenSSL的原代码下载,为了方便Windows用户使用OpenSSL,我们特地为您准备了OpenSSL 0.9.8.a for win32的可执 ...