sql server windows nt 64bit 内存占用过高解决办法

  • 内存居高背景
  • 软件运行环境参数
  • 内存占用居高不下
  • 内存高占用竟然降下去了
  • 降内存的办法

内存居高背景

本人业余从事淘宝客研究,是一个误入技术领域的非专业技术人员,业余时间用:asp.net+sql server express 搭建一个网站,网 址:爱尚偶乐分享,技术比较low,各位看官就请多见谅。

网站大约在2019年3月份上线,运行了半年之久,发现内存占用比例飙升,一度达到80-90%,网站只存储了淘宝联盟、多多客的推广链接,数据大约50-70M左右,以非专业人员评估,应该用不到那么大的内存空间,一直不明所以。

软件运行环境参数

在2018年12月12日,当晚做了冲动的决定,头脑一发热,按耐不出内心的想法,赶紧上阿里云买下ECS,系统配置如下:

购买ECS花费我近1700大洋,各位看官估计都认为我人傻钱多,据后来事实验证,我确实是人傻,但钱不多。

数据库方面,考虑自己对microsoft sqlserver最熟,另一个是出于对版权的考虑,再一个是轻量,所以采用express版本,至于与standard版本,是否有效率上的差异,我也拿不太准,有待进一步测试。

内存占用居高不下

ECS买了之后,不能一直闲置啊,么有办法,临时找了几本书asp.net的书,初入职场时干过一年的net.asp开发,多少心里还有点数,临时临为就编写自己的个人网站。前后大概用了三个月时间,一边看书,一边写代码,中间的过程,省略一万字,也算是历经千辛万苦,好歹是给搞出来的,哈哈,我还是有点小佩服自己,至少有8年我没有系统的写过代码了。

代码差不多码完了,直接部署到ECS上的IIS中,过程比较顺利,能正常仿问,后续的时间里,也不断迭带了一功能,也开发了mobile版,但一直没有关注系统性能问题,直到临近今年双十一,我上ECS看系统监控性能图表,吓到我了。

我上来看性能报表主要原因,是因为上线半年以来,并没有带来理想收益,一直处于亏损状态,淘宝客并没有我想像的那么好做,流量是个大问题,给我的感觉是,大家现在不是谈虎色变,而是谈“加微信”色变,谈微商色变,大家有么有这样的感觉。

为了让自己的钱包不至于太干瘪,目前流量也不太,就想着将服务器降配,降到2核4G上,我的钱袋子还能留点,但一看内存都飙到6-7G了,顿时给我浇了一盆冷水,毕竟做了大半年,现在放弃又很可惜,我该怎么办呢。

当时为了网站仿问效率比较高,采用memorycatch缓存技术,将首面内容、频道信息、分类信息、菜单信息以及页面主要参数进行了缓存,所对对内存要求比较高,但高到多少我心里也没有低,当时还沾沾自喜,用上了缓存技术。没办法,我只能泡到各大asp.net群里,问有没有办法降低内存的消耗,可能是我没有说清楚,搞了一周也没有问到好办法,问题就一直拖着。

内存高占用竟然降下去了

不知道什么原因,一下刺激我的脑回路,我服务器从买至今,都没有重启动过,试试万能启起行不行(之前帮朋友看过网吧,网管万技术,重启试试),哈哈,重启竟然生效。

事实告诉我,肯定是什么东东,偷偷的吃掉什么内存了,我就连续多天观察阿里云性能监控图表,哈哈,偷吃的贼被的逮到了。

服务启重启后,随时间的推移,内存占用又起来了。这到底是什么情况呢,还要不要人活了,活还是要活着,毕竟好死不如癞活着。

好吧,咱们再去找罪魁祸首,通过服务器任务管理器观察,发现进程sql server windows nt 64bit 占用内存达到1G左右,元凶终到找到了。

降内存的办法

解决的原理就是控制sqlserver消耗内存与释放内存的原因,经查文献和试验可知,SQL Server对服务器内存的使用策略是用多少内存就占用多少内存,只用在服务器内存不足时,才会释放一点占用的内存,至少释放多少,完全由sql server控制,所以SQL Server 服务器内存往往会占用很高。

SQL Server提供数据库脚本查徇内存占用情况
sql script: DBCC MemoryStatus

这些内存一般都是Sql Server运行时候用作缓存的:

  1. 数据缓存:执行查询语句,Sql Server会将相关的数据内容(Sql Server操作的数据都是以页为单位的)加载到内存中进行缓存,以便于再次请求此页的数据的时候,直接从内存返回,大大提高了提取效率。
  2. 执行命令缓存:在执行存储过程,自定函数时,Sql Server需要先二进制编译再运行,编译后的结果也会缓存起来, 再次调用时就无需再次编译。

其它DBCC管理命令
DBCC FREEPROCCACHE 清除存储过程相关的缓存
DBCC FREESESSIONCACHE 会话缓存
DBCC FREESYSTEMCACHE(‘All’) 系统缓存
DBCC DROPCLEANBUFFERS 所有缓存

以上命令虽然会清除掉现有缓存,为新的缓存腾出空间,但是Sql server并不会因此释放掉已经占用的内存。Sql Server并没有提供任何命令允许我们释放不用到的内存。因此我们只能通过动态调整Sql Server可用的物理内存设置来强迫它释放内存。

限制Sql Server可用的物理内存设置步骤

按以上步骤,设置sql占用内存的上限,就会让sqlserver在内存上限范围内,主动清除脏数据替换成热数据,不至少向吸血鬼一样,无休止占用内在。

这样我双十一就能顺利,将我的服务器下调一个档次,我也不担心用户的体验,如果有帮到各位,也请点一个赞,全是个人的真实经历。

sql server windows nt 64bit 内存占用过高解决办法相关推荐

  1. win10内存占用过高解决办法参考

    win10内存占用过高解决办法参考 1.问题描述: win10刚开机,浏览器和聊天工具等什么都不开,已用内存达75%左右了,开个浏览器能达到90%,电脑是8G内存的. 2. 方法:之前可能很焦躁,没查 ...

  2. Linux中buff/cache内存占用过高解决办法

    Linux中buff/cache内存占用过高解决办法 在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个centos7的系统上,free命令的显示内容大概是这样一个状态: 这个 ...

  3. Linux中Cache内存占用过高解决办法

    在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: 这里的默认显示单位是kb,我的服务器是128G内存,所以数字显 ...

  4. mysql buff cache_Linux中buff/cache内存占用过高解决办法

    在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个centos7的系统上,free命令的显示内容大概是这样一个状态: 这个命令几乎是每一个使用过Linux的人必会的命令,但越是 ...

  5. linux缓冲区内容占用较多什么原因,Linux中Cache内存占用太高解决办法

    在Linux系统中,咱们常常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态:html 这里的默认显示单位是kb,个人服务器是128G内存,因 ...

  6. SQL Server 2005远程连接连不上的解决办法收藏 Microsoft给的方法

    SQL Server 2005远程连接连不上的解决办法收藏 Microsoft给的方法http://support.microsoft.com/kb/914277 是可以的,但我怕以后还会遇到这问题, ...

  7. SQL Server 2000 SP4补丁打不上的解决办法

    文章转载自:http://hi.baidu.com/ksir/blog/item/06940d089eea549f0b7b82e9.html 这两天在做数据库的作业,用java连sql server ...

  8. win10 dcom服务器进程占用cpu,WIN10CPU百分百,Windows10 DCOM占用过高解决办法 | 帮助信息-动天数据...

    WIN10CPU百分百,Windows10 DCOM占用过高解决办法 作者:dthost | 时间:2018-09-26 | 分类:未分类 | 14,361 次阅读 最近很多朋友在用WIN10,但是自 ...

  9. Spring cloud开发内存占用过高解决方法

    https://blog.csdn.net/wanhuiguizong/article/details/79289986 版权声明:本文为博主原创文章,转载请声明文章来源和原文链接. https:// ...

  10. 用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联'。错误代码:18452 解决办法...

    原文:https://blog.csdn.net/wuxianwei/article/details/6330270 SQLSERVER 2005采用'SQLSERVER身份验证'去登录, 出错的原因 ...

最新文章

  1. SEGGER RTT STOP/SLEEP 模式下使用
  2. 红黑树(一)之 原理和算法详细介绍---转帖
  3. 大数据时代的公共安全治理
  4. android 日期国际化,Flutter 日期时间选择类控件及国际化
  5. Mysql闪回工具之binlog2sql的原理及其使用
  6. flowable工作流 流程变量_信也科技工作流平台的技术实践
  7. 【洛谷P4219】【BJOI2014】—大融合(线段树合并)
  8. 【水果识别】基于matlab GUI灰度+二值化+腐蚀+膨胀算法水果识别【含Matlab源码 671期】
  9. 三菱PLC软件有LINUX版本吗,三菱PLC编程软件(GX Developer)
  10. android中实现一键加QQ群功能
  11. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句...
  12. Spring 青鸟云题库
  13. 码农的自我修养 - 流程图 Flowchart
  14. 3D NAND 前沿
  15. linux 配置trac界面显示为中文,Trac的安装和配置
  16. lower_bound与upper_bound
  17. Cocos Creator | 挤水果小游戏实现 ( 二 )
  18. 分享 :Google的42条军规,别说你懂职场,太有价值了
  19. HM-3220: Create a Hexahedral Mesh(创建一个六面体网格)
  20. 【机器学习笔记】可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning)

热门文章

  1. 逻辑库、物理库、分库分表(TDDL)
  2. Oracle 锁表问题查询处理
  3. 推荐三款最佳的远程桌面管理工具
  4. Windows10(64位)下安装MySql5.7
  5. android 字体显示框架,资源样式 - 主题 - 《XUI - Android 原生 UI 框架》 - 书栈网 · BookStack...
  6. 元素周期表排列的规律_元素周期表的元素排列规律和元素的性质
  7. 遥感数据产品分级体系
  8. 雄迈摄像头研究笔记一:telnet的开启
  9. 系统服务器软件 服务器操作软件,服务器操作系统和服务器软件
  10. mysql修改唯一索引