Home Forums Programming Service Broker recommendations for MAX_QUEUE_READER option on queue RE: recommendations for MAX_QUEUE_READER option on queue

  • RBarryYoung (5/15/2012)


    ...

    A theoretical upper limit is easy to set: it's the number of CPU threads plus the number of disk spindles that will be used by your service tasks. In theory, you can never have more tasks physically "in service"(*) than that anyway. Anymore than that and the excess would have to be physically "in queue" for resources, instead of in your Service Broker's queue.

    ...

    Hmm, I should correct myself here.

    Because loading in general is probabilistic and the loading between the CPU's and each individual disk spindle tends to be uneven, this number is not the actual upper limit, but rather some factor of it to account for both the variance and the disparities. Generally "3x" is the seat-of-the-pants number that is used as a starting point, if you are trying to get all resource utilizations to 100%.

    Note again, that for most "normal" service-tasks, you'll reach the overhead+blocking cross-over point well before that. (One exception to this is "insert-only" operations on a single, un-indexed table, which is highly optimized in SQL Server).

    [font="Times New Roman"]-- RBarryYoung[/font], [font="Times New Roman"] (302)375-0451[/font] blog: MovingSQL.com, Twitter: @RBarryYoung[font="Arial Black"]
    Proactive Performance Solutions, Inc.
    [/font]
    [font="Verdana"] "Performance is our middle name."[/font]