SQLSERVER吞噬内存解决记录

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:

现在手上有一个不大不小的系统,运行了一段时间,因为是24*7不断运行,所以内存逐渐增高,慢慢的会飙到95%以上,然后不得不重启电脑,因为用的是云,怕虚拟机重启down掉起不来,重启操作还只能在凌晨4、5点人为弄,周而复始的搞很累,于是下决心找出来到底是什么吞内存

 

 

以上两张图是系统的配置和内存占有情况,可以计算出来,在任务管理器中实际显示使用的内存不到2G,而我4核8G的服务器已经是相对不错的配置了,到底是什么东东占用了内存呢,为什么没有在任务管理器里面显示出来?

为了达到这个目的,我找到了微软官方的工具 RAMMap

http://technet.microsoft.com/zh-cn/sysinternals/ff700229.aspx

运行一看,AWE这条占了7G多,那AWE又是什么呢,具体是哪个软件导致的呢?继续往下挖

首先是AWE的定义,从这篇可以找到,可以看到AWE和SQL有关

http://blogs.technet.com/b/askperf/archive/2010/08/13/introduction-to-the-new-sysinternals-tool-rammap.aspx

 

于是找到这篇Why does my SQL Server use AWE memory? and why is this not visible in RAMMap?”

http://serverfault.com/questions/558287/why-does-my-sql-server-use-awe-memory-and-why-is-this-not-visible-in-rammap

从标题基本已经可以猜测到了,这事肯定是SQLSERVER干的,继续往下了解

 

http://dba.stackexchange.com/questions/48504/awe-memory-usage-growing-with-sql-server-2012

http://blogs.msdn.com/b/psssql/archive/2009/09/11/fun-with-locked-pages-awe-task-manager-and-the-working-set.aspx

这两篇会告诉你SQLSERVER和AWE的关系

 

http://technet.microsoft.com/zh-cn/library/ms178067(v=sql.105).aspx

这篇会告诉你如何限制SQLSERVER不停的吞噬内存,基本命令如下:

 

sp_configure 'show advanced options', 1;

GO

RECONFIGURE;

GO

sp_configure 'max server memory', 4096; --设置最大可使用内存为4G

GO

RECONFIGURE;

GO

 

http://www.brentozar.com/archive/2011/09/sysadmins-guide-microsoft-sql-server-memory/

这篇会告诉你限制 max server memory已经不合适了应该加内存了

以上,基本解决内存问题,随笔记录

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
6月前
|
SQL 数据库 流计算
flink-connector-sqlserver-cdc支持SQL server的内存优化表
flink-connector-sqlserver-cdc支持SQL server的内存优化表
49 1
|
SQL Go 数据库
SQLServer数据库获取重复记录中日期最新的记录
在日常的项目开发当中,经常会遇到获取同一属性相同的记录,如何获取记录时间最新的那一条,比如获取某个淘宝用户最新一次的购物记录,美团外卖获取用户最后一次的点外卖记录等等场景,下面通过简单的示例给大家提供三种比较常见的SQL写法,希望能给大家带来一些思路。
SQLServer数据库获取重复记录中日期最新的记录
|
SQL Shell 数据库
SQLServer删除登录记录用户名和密码
原文:SQLServer删除登录记录用户名和密码 介绍: 作为一名开发人员都会知道我们做的项目都要用到数据库,数据库都需要账号和密码,然而问题来了,做的东西多了那些没用的账号和密码还在哪里纠缠着我们。
1619 0
|
SQL 运维 Go
sql server 运维时CPU,内存,操作系统等信息查询(用sql语句)
原文:sql server 运维时CPU,内存,操作系统等信息查询(用sql语句) 我们只要用到数据库,一般会遇到数据库运维方面的事情,需要我们寻找原因,有很多是关乎处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统的,这时我们就需要查询他们的一些设置和内容,下面讲的就是如何查询它们的相关信息。
1070 0
|
SQL 存储 缓存
sql server 性能调优 资源等待之内存瓶颈的三种等待类型
原文:sql server 性能调优 资源等待之内存瓶颈的三种等待类型 一.概述   这篇介绍Stolen内存相关的主要三种等待类型以及对应的waittype编号,CMEMTHREAD(0x00B9),SOS_RESERVEDMEMBLOCKLIST(0x007B),RESOURCE_SEMAPHORE_QUERY_COMPILE(0x011A)。
1190 0
|
SQL Shell 数据库
SQLServer删除登录记录用户名和密码
介绍: 作为一名开发人员都会知道我们做的项目都要用到数据库,数据库都需要账号和密码,然而问题来了,做的东西多了那些没用的账号和密码还在哪里纠缠着我们。所有我们不能忍了删除掉他。 网上很多都是2008的是删除方案,知道我看到了这篇:http://stackoverflow.
1826 0
|
SQL 存储 缓存
sql server 内存初探
原文:sql server 内存初探 一. 前言    对于sql server 这个产品来说,内存这块是最重要的一个资源, 当我们新建一个会话,相同的sql语句查询第二次查询时间往往会比第一次快,特别是在sql统计或大量查询数据输出时,会有这么感觉。
1116 0
|
SQL 缓存 Go
查看SqlServer的内存使用情况
原文:查看SqlServer的内存使用情况       上一篇提到动态T-SQL会产生较多的执行计划,这些执行计划会占用多少内存呢?今天从徐海蔚的书中找到了答案。动态视图不仅可以查到执行计划的缓存,数据表的页面缓存也可以查到,将SQL整理一下,做个标记。
1536 0