Loadrunner学习笔记_线程

原创 2006年05月18日 16:08:00
一般认为SQL Server包含四种Windows服务:MSSqlServer 是最常用的服务,一般的数据库功能都是由它提供的,例如文件管理、查询处理、数据存储等;DTC是分布式事务协调器,支持跨越两个或多个服务器的更新操作来保证事务的完整性;SQLServerAgent负责SQL Server 自动化工作,如果需要SQL Server 在指定时间执行某一个存储过程,就需要用到这个服务了;Search Service是全文查询服务,负责全文检索方面的工作。
 
一个实例就是一组服务(可能是所有服务,也可能是部分服务)。
 
每个 sql server实例都是一个单独的操作系统进程。每个实例都有可能必须处理来自用户的成千上万个并发请求。SQL Server 2000 实例使用 Microsoft Windows® 线程(有时是纤程)有效地管理这些并发任务。每个 SQL Server 2000 实例始终为系统进程运行多个线程。
 
工作线程数是由服务器配置选项 max worker threads 控制的。max worker threads 的默认设置值 255 (最小值10,最大值32767) 对大多数系统是最优的。然而,取决于系统配置,将 max worker threads 设置为一个稍小的值有时会提高性能。
当从客户端收到一批 Transact-SQL 语句时,如果现有的工作线程空闲,就会分配它来执行这个批处理。如果没有空闲的现有工作线程而且工作线程数少于 max worker threads,那么就会分配一个新的工作线程。如果没有空闲的工作线程而且已经达到 max worker threads,那么新的批处理就要一直等到现有工作线程完成其当前批处理任务而空闲为止。当工作线程数达到 max worker threads 时,SQL Server 显示如下消息:
工作线程限制 255 已经达到。
对所有工作线程进行分配,并不意味着 SQL Server 的性能会降低。通常,新的批处理等待空闲线程只需要很短的时间。分配更多的线程可能会降低性能,因为增加的工作需要在线程之间协调资源。
每个 SQL Server 实例都为用户连接维护一个线程池或纤程池。使用的线程越多,维护所需要的资源越多。该值太大反而会影响性能。
  当服务器的内存够多时,配制线程数量 = 最大连接数+5,这样能发挥最大的效率;
否则使用 配制线程数量<最大连接数,启用SQL SERVER的线程池来解决,如果还是数量 = 最大连接数+5,严重的损害服务器的性能。
 
服务器配置 lightweight pooling 选项控制 SQL Server 2000 实例是使用线程还是纤程。默认情况下,lightweight pooling 的设置为 0,在该设置下 SQL Server 实例对每个并发用户命令调度一个线程,直到到达 max worker threads 的值。如果 lightweight pooling 的设置为 1,那么 SQL Server 使用纤程而不是线程。这称为以纤程模式运行。在纤程模式下,SQL Server 实例为每个 CPU 分配一个线程,然后为每个并发用户命令分配一个纤程,最大可以达到 max worker threads 的值。SQL Server 实例在使用线程或纤程时使用相同的算法调度和同步任务。SQL Server 2000 个人版和 SQL Server 2000 Desktop Engine 不支持纤程。
 
 
归纳:
Sql server 对线程的使用也是动态根据需要增减,最大值也设置一个默认值225,对大多数情况下这个值是最优的,但减小该值也可能提高性能,根据实际情况决定。
 
对线程的配置(如下图):
 
对上图的说明〔联机文档〕:
  处理器
指定希望 Microsoft® SQL Server™ 实例使用的处理器。
最大工作线程
指定 SQL Server 进程可用工作线程的最大数目。
在 Windows 上提升 SQL Server 的优先级
指定 SQL Server 实例是否应当比同一计算机上运行的其它进程具有更高的优先级。默认值为 0,其优先级基数为 7。如果将该选项设置为 1,则 SQL Server 在 Microsoft Windows NT® 4.0 或 Windows® 2000 调度程序中以优先级基数 13 运行。建议只在 SQL Server 专用的 Windows NT 4.0 或 Windows 2000 系统上更改该默认值。
[提升sql server 进程的优先级会提高本实例进程的性能,但对其它应用程序和对没有提高优先级的实例的进程产生影响(如果该台服务器上同时运行多个实例的话)]
 
使用 Windows NT 纤程
指定希望 SQL Server 实例使用纤程而非线程。在纤程中,SQL Server 为每个 CPU 分配一个线程,然后为每个并发用户分配一个纤程,直到 max worker threads 值为止。此设置在重新启动服务器后生效。
使用所有可用的处理器
指定希望 SQL Server 将所有可用的处理器都用于并行执行查询。
使用处理器数
指定希望 SQL Server 用于并行执行查询的处理器数。
为允许查询并行执行须满足的最小查询计划阈值
指定 SQL Server 创建和执行并行计划的阈值。只有当同一查询的串行计划的估计执行成本高于此选项的设置值时,SQL Server 才会为该查询创建和执行并行计划。
查看或更改此选项卡上的选项的配置值。如果更改了这些值,单击"运行值"查看更改是否已生效。如果尚未生效,必须重新启动 SQL Server 实例才能使更改生效。
运行值
查看此选项卡上的选项的当前运行值。这些值为只读值。
 
 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java线程学习笔记

  • 2012-07-30 17:51
  • 15KB
  • 下载

LoadRunner学习笔记——Day4

Day4 一、性能测试的学习路线: 1、性能测试的初级部分:       1)概念的理解和灵活应用:事务、检查点、并发点(集合点),初级的参数池(参数化)       2)理解并能够灵活应用的...

loadrunner学习笔记

  • 2014-08-26 17:07
  • 36KB
  • 下载

loadrunner 学习笔记--AJAX

用loadrunner测试WEB程序的时候总是会碰到AJAX或者ActiveX实现的功能,而通常这些功能会包含很多客户端函数(一般为JavaScript)。我们该如何处理?如果从功能实现的角度去考虑这...

loadrunner、QTP、TestDirector/Quality Center、Rational Robot学习笔记

在Windows XP下安装了loadrunner 8.1、QTP  9.2/QC9.0、TestDirector 8.0、Rational Robot 7.0 loadrunner 8.1 运行菜单...

LoadRunner学习笔记(脚本开发_1)1

1.Action 简介 1) 什么是Action? 一个函数包,将用户操作根据类别存放在不同的函数中。 2) 脚本框架生成的时机:当选择完Http协议后,Vu...

LoadRunner学习笔记——Day3

Day3 每天一更新,今天的内容较前两天略少呢,加油! 一、复习 1、什么是性能测试?(性能测试的概念) 答:性能测试指在正常、峰值、以及异常条件下测试AUT的各项性能指标是否...

LoadRunner学习笔记——Day2

Day2 一、练习题: 1、什么是性能测试? 答:使用工具去模拟实际的生产情况中的业务压力,去测试系统,去攻击系统,去验证系统是否能够承受当前的压力,满足性能的需求指标 2、简述LR的工作原理...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)