盗版SQL Server的性能限制

 

微软的SQL Server产品分为两种卖法
1、盒装 :Server+CAL授权方式(SQL2017取消了Server+CAL授权方式,盗版序列号,一般电脑城有卖光盘、盗版光盘、代理商,CAL方式最多只能用20个逻辑核,超线程只能用40核,SQL2014之后找不到盗版序列号)
select serverproperty(‘Edition’)
Enterprise Edition (64-bit)

2.1、授权:Core-based 授权方式(按逻辑核心授权,SQL2012及之后,没有盗版序列号,只能找正规代理商买,至少要买四核心,超线程也按照正常核心计算)
select serverproperty(‘Edition’)
Enterprise Edition: Core-based Licensing (64-bit)

2.2、授权:Processor-based 授权方式(按物理核心授权,SQL2012以前,没有盗版序列号,只能找正规代理商买,一个物理核心只能对应一个逻辑核心,也就是即使一个物理核心有多个逻辑核也无法利用)

 

分清授权模式和edition
edition
express edition:免费,只能用1逻辑核CPU,可以用于生产环境。
Enterprise edition:Core-based 授权
Standard edition:xxx
。。。

 

Server+CAL授权方式的限制
限制CPU=20核/40核(超线程)
限制内存=当前物理内存/NUMA数量*(总核数/20)
限制内存的解释:如果设置了SQL Server的最大使用内存超过限制内存,则当使用内存大于限制内存而需要再向操作系统申请内存时,则会产生跨NUMA处理的情况,导致大量消耗系统资源,引起性能下降

 

举个栗子
硬件配置
8核 64G内存的机器
限制内存=当前物理内存/NUMA数量*(总核数/20)=64G/1*(8/20)=25.6G 内存
超过26G内存就会出现性能下降

例子
硬件配置
OS:win2012r2 datacenter
cpu:32核
内存:128g
数据库:SQL2008/SQL2012

select serverproperty(‘Edition’) SQL2008/SQL2012
Enterprise Edition (64-bit)

 

sp_readerrorlog SQL2012、SQL2014、SQL2016。。。
2018-01-02 18:13:04.510 Server SQL Server detected 2 sockets with 16 cores per socket and 16 logical processors per socket, 32 total logical processors; using 20 logical processors based on SQL Server licensing. This is an informational message; no user action is required.

sp_readerrorlog SQL2008(SQL2008虽然探测到当前机器的所有逻辑核,但是实际上只能使用20个逻辑核)
2018-01-02 17:32:36.600 服务器 Detected 32 CPUs. This is an informational message; no user action is required.

 

 

最后总结一句话:天下没有免费的午餐,使用收费软件之前请搞清楚软件的授权方式,想解除限制还是老老实实买Core-based 授权或者用开源数据库吧

 

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

本文版权归作者所有,未经作者同意不得转载。

版权声明:本文为lyhabc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lyhabc/p/8203572.html