• csla 与高cpu


    在项目中一直使用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,即可.

  • 相关阅读:
    美国保健品排行榜
    美国海淘购物入门
    美国保健品品牌介绍之Now Foods
    haitaolab.com 我的新网站,欢迎访问
    PTC点击网赚入门
    信用卡基础知识
    12月购物10%-12%积分返还
    java界面设计(swing)
    c语言中阶乘的精确值
    java中Map集合的理解
  • 原文地址:https://www.cnblogs.com/forhell/p/6709174.html
Copyright © 2020-2023  润新知