WEB开发网
开发学院数据库MSSQL Server SQL Server 2000内存管理内幕 阅读

SQL Server 2000内存管理内幕

 2007-05-19 09:40:34 来源:WEB开发网   
核心提示: Monitoring SQL Server Virtual Memory Use 你可以通过SQL Server:Buffer ManagerTarget Pages Perfmon计数器跟踪计算出的BPool最大值,SQL Server不同部分需要内存时,SQL Server 2000内

Monitoring SQL Server Virtual Memory Use

你可以通过SQL Server:Buffer ManagerTarget Pages Perfmon计数器跟踪计算出的BPool最大值。SQL Server不同部分需要内存时,BPool提交一开始就被保留的8KB大小的页直到达到计算的上限值,你可以通过SQL Server:Buffer ManagerTotal Pages Perfmon计数器跟踪BPool中被提交的虚拟内存的使用状况。另外你可以通过Private Bytes计数器跟踪SQL Server进程中所有被提交的虚拟内存的使用状况。

因为SQL Server中绝大部分虚拟内存的使用都来自BPool,因此通常情况下,这两个计数器将一前一后的增加或平稳下来(记住,当启用AWE支持后,Private Bytes计数器不会反映SQL Server全部的内存使用)。如果Total Pages计数器平稳下来,而Private Bytes持续增加,这通常表明MemToLeave区域中连续的内存分配。这种内存分配可能比较常见,例如可能是SQL Server创建额外的工作线程时和线程栈相关的内存分配,或者是进程内COM对象、扩展存储过程等外部请求者的内存泄漏等。如果由于内存泄漏或者内存使用过大,导致MemToLeave区域耗尽,使SQL Server进程用完了虚拟内存地址空间的内存(或者是MemToLeave区域中的最大空闲块低于0.5M的默认进程栈大小),就算是并没有达到使用sp_configure配置的最大工作进程数,SQL Server将无法创建新的工作进程。这种情况下,如果SQL Server需要创建一个新的工作进程来执行一个工作请求,例如处理SQL Server新的连接请求等,那么这个工作请求将被延迟,知道服务器有足够的资源创建工作进程,或者是其它工作进程被释放出来。这可能会导致用户无法连接到服务器,因为在从MemToLeave中获得足够的空闲空间或者是其它工作进程被释放能够处理当前工作请求之前,连接可能会超时。

上一页  2 3 4 5 6 7 8  下一页

Tags:SQL Server 内存

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接