In this article, let’s understand the Minimum and Maximum server memory settings of SQL Server. The min server memory and max server memory configuration options establish upper and lower limits to the amount of memory used by the buffer pool of the SQL Server Database Engine. The buffer pool starts with only the memory required to initialize. As the workload increases, it keeps acquiring the memory required to support the workload.

When you peek into the SQL Server box for memory, you almost always find it is hogging all the available memory. This is because SQL Server is given the freedom to do so. The default Memory setting on SQL Server is as shown in the figure below; the min server memory is 0 and the max server memory is 2147483647 MB; that is the equivalent of nearly 2 PB. This is huge and hence will eat up all of the available memory. Though, SQL Server changes its memory requirements dynamically based on available system resources.

The maximum memory needs to be changed based on what other instances are installed on that server for other applications and the available RAM. Generally speaking, on a machine where there are no other applications apart from SQL Server, 75% of the maximum available RAM should be allocated for SQL Server. So if you have a 16GB RAM machine, 75% of 16 = 12 GB should be allocated as the maximum memory to SQL Server and the remaining will be used by operating systems processes and other processes.
Minimum memory is also an important setting. If the operating system needs to reclaim memory from SQL Server, it will request that SQL Server release memory. SQL Server will release the memory back to the Operating System until the amount of memory in use reaches the minimum server setting that is 0 by default. So if in the case that there is a huge file that needs to be copied then the operating system will keep claiming memory until SQL Server is allowed to release memory. This makes SharePoint performance slower. Hence, the minimum memory setting also needs to be changed to at least 50% of the available RAM. So if you have a 16GB RAM machine, 50% of 16 = 8 GB should be allocated as the minimum memory to SQL Server.
The Min server memory setting is used to guarantee a minimum amount of memory available to the SQL Server Memory Manager for an instance of SQL Server. SQL Server will not immediately allocate the amount of memory specified in min server memory on startup, neither will it take up all the min server memory setting value. If SQL Server is able to run on a lesser amount of memory then it will do so. But, after memory usage has reached this value due to client load, SQL Server cannot free memory unless the value of min server memory is reduced.
If the setting for both min server memory and max server memory is the same, then once the memory allocated to the SQL Server reaches that value, the Database Engine stops dynamically freeing and acquiring memory for the buffer pool.
On a SQL Server machine where multiple instances are loaded, for Max server memory setting, establish maximum settings for each instance, being cognizant of the fact that the total allowance is not more than the total physical memory of the machine. You might want to provide each instance of memory proportional to its expected workload or database size. This approach has the advantage that when new processes or instances start up, free memory will be available to them immediately. The drawback is that if you are not running all of the instances, none of the running instances will be able to utilize the remaining free memory.
On a SQL Server machine where multiple instances are loaded, for Min server memory setting, establish minimum settings for each instance, so that the sum of these minimums is 1-2 GB less than the total physical memory on your machine. Again, you may establish these minimums proportionately to the expected load of that instance.
This approach has the advantage that if not all instances are running at the same time then the ones that are running can use the remaining free memory. This approach is also useful when there is another memory-intensive process on the computer, since it would insure that SQL Server would at least get a reasonable amount of memory. The drawback is that when a new instance or any other process starts, it may take some time for the running instances to release memory, especially if they must write modified pages back to their databases to do so.

Server Memory Server Configuration Options
In the next article we will see some more SQL Server Settings relevant to SharePoint performance.

sp_configure 'show advanced options', 1;

GO

RECONFIGURE WITH OVERRIDE;

GO

sp_configure 'max degree of parallelism', 1;

GO

RECONFIGURE WITH OVERRIDE;

GO

sp_configure 'max server memory', 12288; --12*1024

GO

RECONFIGURE WITH OVERRIDE;

GO

sp_configure 'min server memory', 8192; --8*1024

GO

RECONFIGURE WITH OVERRIDE;

GO

Sharepoint 性能之SQL Server内存设置的更多相关文章

  1. SQL Server内存性能分析

    内存概念: Working Set = Private Bytes + Shared Memory Working Set:某个进程的地址空间中,存放在物理内存的那一部分 Private Bytes: ...

  2. SQL Server内存遭遇操作系统进程压榨案例

    场景: 最近一台DB服务器偶尔出现CPU报警,我的邮件报警阈(请读yù)值设置的是15%,开始时没当回事,以为是有什么统计类的查询,后来越来越频繁. 探索: 我决定来查一下,究竟是什么在作怪,我排查的 ...

  3. Sql Server 内存相关计数器以及内存压力诊断

    在数据库服务器中,内存是数据库对外提供服务最重要的资源之一, 不仅仅是Sql Server,包括其他数据库,比如Oracle,MySQL等,都是一类非常喜欢内存的应用. 在Sql Server服务器中 ...

  4. 人人都是 DBA(IV)SQL Server 内存管理

    SQL Server 的内存管理是一个庞大的主题,涉及特别多的概念和技术,例如常见的 Plan Cache.Buffer Pool.Memory Clerks 等.本文仅是管中窥豹,描述常见的内存管理 ...

  5. SQL Server内存理解的误区

    SQL Server内存理解 内存的读写速度要远远大于磁盘,对于数据库而言,会充分利用内存的这种优势,将数据尽可能多地从磁盘缓存到内存中,从而使数据库可以直接从内存中读写数据,减少对机械磁盘的IO请求 ...

  6. SQL SERVER 内存分配及常见内存问题 简介

    一.问题: 1.SQL Server 所占用内存数量从启动以后就不断地增加: 首先,作为成熟的产品,内存溢出的机会微乎其微.对此要了解SQL SERVER与windows是如何协调.共享内存.并且SQ ...

  7. SQL Server 内存相关博文

    Don’t confuse error 823 and error 832 本文大意:      错误832:           A page that should have been const ...

  8. SQL Server 内存中OLTP内部机制概述(二)

    ----------------------------我是分割线------------------------------- 本文翻译自微软白皮书<SQL Server In-Memory ...

  9. SQL SERVER 内存分配及常见内存问题(1)——简介

    原文:SQL SERVER 内存分配及常见内存问题(1)--简介 一.问题: 1.SQL Server 所占用内存数量从启动以后就不断地增加: 首先,作为成熟的产品,内存溢出的机会微乎其微.对此要了解 ...

随机推荐

  1. JS 去除重复元素的方法

    Array.prototype.del = function () { var a = {}, c = [], l = this.length; ; i < l; i++) { var b = ...

  2. Sharding模式

    将数据存储为一组水平的数据分区.这种模式可以在存储和访问大量的数据的时候提高可扩展性. 场景和问题 由单个服务器托管的数据存储可能受到下列限制: 存储空间限制.基于大规模云应用所使用的数据仓库,可能会 ...

  3. 基于uFUN开发板的RGB调色板

    前言 使用uFUN开发板配合Qt上位机,实现任意颜色的混合,Qt上位机下发RGB数值,范围0-255,uFUN开发板进行解析,然后输出不同占空比的PWM,从而实现通过RGB三原色调制出任意颜色. Qt ...

  4. iOS开发简记(1):指定APP的图标与启动图

    各位兄弟姐妹们,早上好,本人花了将近一个月的时间打造了一个完整的IOS版的App, 期间包括开发,测试,上线审核,现在花点时间把实现的过程分享给大家,“知音”app功能简单,适合对象为初学者,后面我会 ...

  5. checkpoint-BLCR部署和测试(源码)

    1. 概述2. 部署过程2.1 源码下载2.2 解压安装2.3 添加库环境2.4 插入内核模块3. 测试3.1 创建测试程序3.2 功能测试4. 参考博客 1. 概述 checkpoint 2. 部署 ...

  6. websocket(二)——基于node js 的同步聊天应用

      https://github.com/sitegui/nodejs-websocket 1.用node搭建本地服务 npm install nodejs-websocket var ws = re ...

  7. Map获取key值

    有两种方法 public static void test4(){ Map<String, Object> map = new HashMap<>(); map.put(&qu ...

  8. 个人阅读作业——软件工程M1/M2的总结

    临近学期末,本学期的软件工程课也已经结束了,在此我对软件工程课中,我们团队M1和M2开发阶段中,我做的工作做一个总结 我是DEV,主要工作是等着上级给我分配任务,但是很多时候如果这个活我不干,其他人就 ...

  9. sho

    手工编程:hello world 全部用命令行工具和Notepad编辑器,用手工创建并编译一个C的命令行程序:hello world. public class Hello{         publ ...

  10. Sprint 冲刺第三阶段第3-5天 数据库代码

    数据库代码: package com.example.brdemo; import android.app.Activity; import android.content.Intent; impor ...