首页 > 代码库 > 性能指标

性能指标

1.Processor Queue Length:

是指处理队列中的线程数(运行队列中等待的进程数)。即使在有多个处理器的计算机上处理器时间也会有一个单队列。

不象磁盘计数器,这个计数器仅计数就绪的线程,而不计数 运行中的线程。如果处理器队列中总是有两个以上的线程通常表

示处理器堵塞。这个计数器仅显示上一次观察的值;而不是一个平均值。

This is the length of the "runnable processes" queue. A high queue length indicates that many processes are waiting for slices of CPU time,
and means that the system is heavily loaded.

2. Context Switches per Second:每秒线程切换次数, 在有的书中翻译成上下文切换,实际含义是任务切换,或CPU寄存

器内容切换。当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态(Context),即CPU寄存器中的全部内

容。这些内容保存在任务的当前状况保存区(Task’s Context Storage area),也就是任务自己的栈区之中。入栈工作完

成以后,就是把下一个将要运行的任务的当前状况从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个过

程叫做任务切换。任务切换过程增加了应用程序的额外负荷。CPU的内部寄存器越多,额外负荷就越重。做任务切换所需要的

时间取决于CPU有多少寄存器要入栈。

3.Privileged Time:(CPU内核时间)是在特权模式下处理线程执行代码所花时间的百分比。如果该参数值和"physical

Disk"参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统。另外设置Tempdb in RAM,减低"max async IO",

"max lazy writer IO"等措施都会降低该值。

4. Processor Time: 指处理器执行非闲置线程时间的百分比。这个计数器设计成用来作为处理器活动的主要指示器。它通

过在每个范例间隔中衡量处理器用于执行闲置处理线程的时间,并且用100%减去该值得出。(每个处理器有一个闲置线程,

该线程在没有其它线程可以运行时消耗周期)。可将其视为范例间隔用于做有用工作的百分比

5.cpu负载的定义:
在一般情况下可以将单核心cpu的负载看成是一条单行的桥,数字1代表cpu刚好能够处理过来,即桥上能够顺利通过所有的车辆,桥外没有等待的车辆,桥是畅通的。
当超过1时表示有等待上桥的车辆,小于1时表示车辆能够快速的通过。单核心cpu就表示该cpu能够处理的事务数是1,
在多核cpu中cpu能够并行处理的事务的数量应该是cpu个数*cpu核数,而且负载数最好不要超过这个数值。例如一个4核cpu,则cpu_load最大值为4,
不能长期超过4,否则会有任务没有得到及时的处理,而使系统的负载累积增高,导致系统运行缓慢

6.经验总结:

  1. 对于每一个CPU来说运行队列不要超过3,例如,如果是双核CPU就不要超过6;


  2. 如果CPU在满负荷运行,应该符合下列分布,
  a) User Time:65%~70%
  b) System Time:30%~35%
  c) Idle:0%~5%


  3. 对于上下文切换要结合CPU使用率来看,如果CPU使用满足上述分布,大量的上下文切换也是可以接受的。

 

性能指标