前几天,在调试DNN网站的时候,当数据量一大,发现网站速度特别慢。

而且动不动就出现服务不可用的提示。

经过半个小时的调整后,总算又恢复了正常。因为在DNN山海经里一说,发现大家似乎都有这个问题,估计也会有其他朋友遇到,因此把我的一些心得体会写出来,给大家一点启示。因为是几天前的事情了,具体的一些提示信息等的可能记不清楚了。但是具体思路应该是对的。

首先是查看windows的应用程序日志,可以发现提示asp.net的内存使用超过60%的提示,造成aspnet_wp.exe被结束重启。

观察windows的内存使用情况,发现sqlserver和aspnet_wp.exe 2个进程的内存达到了将近1G。我使用服务器的物理内存就只有1G。

首先,我将sql server的内存进行了限制,限制最大到300M。

发现还是不行。

于是想到的是因为我在DNN的Host配置中

Page State Persistence: Memory

Module Caching Method: Memory

Performance Setting: Heavy Caching

因此我将这几个配置降低,改成以下配置:

Page State Persistence: Page

Module Caching Method: Disk

Performance Setting: Moderate Caching

进行这样更改后,基本能正常访问了,但是发现只要多访问几下,马上还是会出现内存超过60%的问题。只是现在出现的次数少点。

没有办法,只好更改machine.config中<processModel>节点中对内存的限制,

将memoryLimit改为150,也就是允许使用物理内存的150%。这时基本正常了。

以上是具体的解决过程。

通过这个过程,我有以下感想:

1、首先是我采用的是永日的文章管理模块,当我的数据量不是很大的时候,没有出现这个问题,但当我数据上了万条以后就出现了,感觉它的这个性能优化做的不是很好,怀疑它的List显示模块没有对数据进行很好的缓存和优化。同时,感觉这种没有源代码的东西很烦,尤其是在碰到问题的时候,因为这种属于小东西,不可能有那么好的售后服务,于是对于使用者来说就会很痛苦。所以看来如果要采用文章管理模块,尽量还是自己写,或者开源的。

我之所以采用永日这个东西,主要是因为我做的这个项目时间很紧,我从接触DNN,到项目完成只有3个月时间。当时的要求是必须开源,而且要基于Asp.Net,并且要很好的继承原先asp网站的数据,这这么短的时间里,自己写个这样的框架不太现实,而Asp.net开源中,DNN无疑是最为耀眼的CMS框架。

2、DNN的性能确实很成问题,如果没有很好的服务器配置,很难流畅的运行。因此,象小型的个人网站,购买空间的这种小型网站,采用DNN不是很好,因为有点杀鸡用牛刀的感觉。首先是DNN的目标并不是个人网站,而是主机供应商;其次是DNN没有免费的文章管理模块,而对于国内的这种网站来说,这块是非常重要的。

对于服务器配置问题,我下一步准备采用更好的服务器配置,可能会采用几个CPU和几个G的服务器进一步测试。

3、对于上面的性能缓存问题,最好根据自己的内存进行配置,否则可能适得其反,因为如果如果缓存很大的话,对内存和cpu都是有损耗的,有个人可能会说只对内存有损耗,怎么会对cpu有损耗呢?原因是管理缓存,查找缓存的时候对cpu有影响,因此如果cpu和内存跟不上,反而造成性能下降。

接触DNN也有2,3个月了,分析了它很多的源代码,学到了很多知识,其中有正面,也有反面的。

例如其中采用的Provider设计方式就是值得借鉴的,同时例如DataProvider和xxxDataProvider这种继承架构感觉就不太好,这里应该采用接口,而不是抽象类,这样xxxDataProvider可以继承自统一的xxxDataProviderBase类,这样不需要在每个xxxDAtaProvider类中都有那些读取连接字符串等等的一些公用操作。

经过很多的思考后,觉得DNN需要改进的东西还有很多很多,至少对于我自己的项目来说是这样。对于里面一些设计思想,我可能会继续学习,不过也有了搭建自己的类似架构的想法。

转载于:https://www.cnblogs.com/MicroDreamSoft/articles/1259654.html

DNN网站出现服务不可用相关推荐

  1. 全面!一文理解微服务高可用的常用手段

    来自:高可用架构公众号 " 高可用并不是一套整体解决方案,而是由诸多环节组成,一环扣一环,鬼知道为了这些串联起来的环节,我得出多少张牌去应对,才能最终组成一个整个系统的高可用落地方案. 什么 ...

  2. Haproxy+Keepalived实现网站双主高可用-理论篇

    一.Haproxy简介 HAProxy是一款提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,HAProxy是完全免费的.借助HAProxy可以快速并且可靠的提供基于T ...

  3. Windows7 打开任务计划提示“任务计划程序服务不可用。任务计划程序将尝试重新与其建立连接。”解决办法

    不知什么原因,Windows7系统进入"控制面板"----"管理工具"----"任务计划程序"时,提示"任务计划程序服务不可用.任 ...

  4. 全面 一文理解微服务高可用的常用手段

    " 高可用并不是一套整体解决方案,而是由诸多环节组成,一环扣一环,鬼知道为了这些串联起来的环节,我得出多少张牌去应对,才能最终组成一个整个系统的高可用落地方案. 图片来自 Pexels 什么 ...

  5. Linux服务器出现503 服务不可用错误怎么办?

    ​ HTTP 503 服务不可用错误代码表示网站暂时不可用.无论您是网站访问者还是管理员,503 页面都很麻烦.尽管该错误表明存在服务器端问题,但对于访问者和网络管理员来说,有一些可能的解决方案.本文 ...

  6. 【CTO讲堂】打造数据可靠、服务高可用的客服平台

    为了帮助IT从业者职业之路拥有更多收获,在诸多C粉的殷切期待下,由 CTO俱乐部打造的CTO线上讲堂自登场以来获得大家好评.本期邀请Udesk CTO肖立鹏带来"打造数据可靠.服务高可用的客 ...

  7. 详细解读503服务不可用的错误以及如何解决503服务不可用

    文章目录 1. 问题引言 2. 什么是503服务不可用错误 3 尝试解决问题 3.1 重新加载页面 3.2 检查该站点是否为其他人关闭 3.3 重新启动设备 3.3 联系网站 4. 其他解决问的方法 ...

  8. 网站 ddos 服务_如何为您的网站选择DDoS保护服务

    网站 ddos 服务 This article was sponsored by Incapsula. Thank you for supporting the partners who make S ...

  9. 测评国内免费网站监控服务 - 监控宝,阿里云监控,百度云观测,360监控等对比

    无论我们使用的是昂贵的还是便宜的,甚至可能是免费的虚拟主机.VPS服务器,我们也不可能全天24小时在线盯着服务器的状态和网站的运行情况.如果是我 们个人站长可能自己的网站和服务器还不止一个,不可能照顾 ...

最新文章

  1. Fast ORB-SLAM
  2. 【Ubuntu】Ubuntu下的录频软件SimpleScreenRecorder
  3. windows环境下,django + mongoengine + mongodb环境配置
  4. ORACLE逻辑DATAGUARD创建表
  5. Android配置启动界面:Activity基本使用
  6. Unity 分离贴图 alpha 通道实践
  7. python return用法_初学Python要了解什么 装饰器知识汇总有哪些
  8. 雨林木风win11 64位原版系统v2021.08
  9. 本科生如何系统地学习前端开发?
  10. js错误: XXX变量 is not a function
  11. Linux ACL 权限
  12. CP/IP四层模型与OSI参考模型
  13. Visio2019中插入数学公式
  14. android ipv6 谷歌,Ipv6使用google服务的DNS
  15. 基于51单片机的指纹考勤系统密码锁门禁原理图PCB程序设计
  16. 单工通信、半双工通信和全双工通信之间有什么区别。
  17. TIM学习文档22-- 账户分配
  18. 计算机上静音快捷键是什么,电脑静音快捷键是什么(如何设置电脑一键静音?)...
  19. 工作中提高工作效率的几个思维模式
  20. Microsoft Project教程_编程入门自学教程_菜鸟教程-免费教程分享

热门文章

  1. Log4j自定义Appender介绍
  2. dede日期时间标签调用大全
  3. Linux —— 时间(hwlock设置硬件时间)
  4. MYSQL实现分组排序并取组内第一条数据
  5. java基础-容器-Set
  6. 蒟蒻JZZ的犯错汇总
  7. 【转】mysql,mysqli,PDO三种方式连接数据库
  8. struts2.0的工作原理
  9. 单元测试(Android)_JUnit
  10. 配置IIS Silverlight运行环境