读书频道 > 网站 > 网页设计 > 软件定义网络:基于OpenFlow的SDN
1.4.6 SQL Server配置
14-11-14    奋斗的小年轻
收藏    我要投稿   
《软件定义网络:基于OpenFlow的SDN技术揭秘》是利用OpenFlow实际动手搭建SDN的系统实践指南。书中不仅深入浅出地讲解OpenFlow的基础知识,还详细阐述基于OpenFlow的网络应用开发、网络虚拟化、云计算中的安装与立即去当当网订购
 
SQL Server 和其他Windows应用类似,都是类似“傻瓜式”的,很多配置已经默认化,并且在大部分情况下是最优配置。但是既然微软给你“选择”的机会,那证明它在特定情况下还是需要进行调整的。所以合理的配置会对性能有很重要的帮助,相反,不合理的配置则会严重影响性能。在适当的情境下,适当地改变配置可以使其发挥最大性能。这里简要介绍一下CPU和内存相关的一些配置。
 
1.CPU相关配置
 
CPU相关配置可以用于控制被SQL Server利用的CPU数量、最大并行度及工作线程数量等。这些配置包含关联掩码、轻量缓冲池、最大工作线程及最大并行度。
 
(1)关联掩码
 
控制CPU到SQL Server进程的映射,默认情况下SQL Server会使用服务器所有可用的处理器。通常不建议修改它,但是下面几种情况下可能需要使用。
 
1)同一台服务器上运行着多个应用程序,并且Windows处于高负荷状态下,可能会将线程转移到不同的CPU中。这时可通过使用关联掩码,将SQL Server的每个调度绑定到各自的CPU上,通过消除线程的迁移,减少因为上下文切换导致的性能问题。
 
2)控制一台SQL Server工作时所用到的CPU数量可以通过这个参数来设置,特别是当一个服务器上运行多个SQL Server实例时。
 
(2)轻量缓冲池
 
当该选项被启用时,SQL Server可以利用Windows纤程进行运作,并把工作进程映射到Windows的线程或者纤程上。纤程和线程类似,但是其开销更低。如果服务器花费了大量时间在内核模式和上下文切换上,开启这个选项会带来一定的好处,但是这个选项也可能导致性能下降,所以需要进行测试。另外,开启这个选项,会使得CLR整合不被支持。
 
(3)最大工作线程数
 
工作线程在SQL Server中就是执行用户请求的线程,一个工作线程会一直绑定在一个批处理上,直到处理完成。所以工作线程的最大值也限制了并发数,默认情况下CPU个数与工作线程的关系如表1-1所示。
 
表1-1 逻辑CPU个数与工作线程的关系
逻辑CPU数(个) 32位操作系统(个) 64位操作系统(个)
≤?4 256 512
8 288 576
16 352 704
32 480 960
 
每个工作进程在32位的OS上使用512KB内存,在X64上使用2MB的内存,在IA64上则使用4MB的内存。为了保证有空余内存,SQL Server一开始只会打开少量的工作线程,根据实际运行情况来增加或者减少线程数。一般在以下两种情况下需要考虑修改。
 
1)如果知道应用程序只会使用少量工作进程,可以配置一个较小的值,使SQL Server不用为工作线程的最大数目保留内存。
 
2)如果有一些需要运行很久的批处理(包括等待、锁定),所需的工作进程数量可能会超过默认值。
 
(4)最大并行度
 
可以控制用来执行并行查询的进程或者内核的最大数值。这部分在第8章“执行计划”中会有介绍。
 
2.内存相关配置
 
内存配置用于控制SQL Server消耗的内存量。通常我们关心的配置有下面几项。
 
(1)服务器最大最小内存
 
从性能角度来说,这个配置最重要,特别是在32位OS中,很多人把这个配置误解为物理内存,但是它仅表示缓冲池(Buffer Pool)的内存。任何现代数据库管理系统都严重依赖于内存,这也是很多人会指责SQL Server占用那么多内存的理由之一。对于这种指责,只能说不占用内存的SQL Server(或者其他数据库管理系统)不是好的数据库管理系统。对于这个配置,在64位系统中,推荐设置一个合适的上限,以便为OS或者其他应用预留内存,在后面章节中会有设置建议。
 
(2)AWE Enabled
 
在32位的OS中,SQL Server只能使用2GB的虚拟内存。如果已经在boot.ini文件加入了3GB参数,重启计算机后可以使用3GB的虚拟内存。如果物理内存超过4GB,并启用了这个选项,SQL Server可以最高使用64GB内存。
 
使用AWE需要考虑以下几个问题。
 
1)尽管允许SQL Server从缓冲池获得最高64GB的内存,但是执行计划、Join、锁和其他机制所使用的内存仍然控制在2GB以内。
 
2)AWE映射的内存不可分页,并且运行在同一台服务器上的其他应用可能导致内存耗尽。从SQL Server 2005开始,AWE内存可以被动态释放,但是仍然不可调出。
 
3)在64位的OS中这个选项无法使用,如果SQL Server进程已经被授予内存中的加锁页,缓冲池也会锁住这些页,使得页不能调出。
 
4)对于内存问题,最好的解决方法就是更换成64位系统。
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站