Results 1 to 2 of 2
  1. #1
    Join Date
    Feb 2012

    Unanswered: disk i/o structures

    hi guys,
    hoping you could help me share your ideas to my current problem.

    I've been noticing an increment value on "disk i/o structure" every time i run
    sp_monitorconfig 'all' and decided to adjust configuration higher based on max_used output of sp_monitorconfig for disk i/o.
    The question is would there be a way to fix that value of max_used for disk i/o structure inorder to avoid resizing from time to time the disk i/o structure using sp_configure "disk i/o structure".


  2. #2
    Join Date
    Aug 2002
    Madrid, Spain
    IMHO, I would keep tuning "disk i/o structures" manually from time to time, instead of trying to self-tune it. Too high a value, in a dataserver doing lots of I/O, could be inefficient. For this reason I would prefer being aware of how large are the increases of "disk i/o structures"

    In version 12.5 I noticed that a high number of outstanding I/Os --that is, async I/Os requested to the OS and still waiting for them-- drove to somewhat high values of CPU busy on I/O. ASE was consuming more CPU on checking pending I/O than in the rest of her activity. Under such a stressed situation, query response times begun to degradate. IIRC, even queries not supposed to depend on physical I/O worsened. Should we have artificially reduced the outstanding I/Os by imposing a low config value for "disk i/o structures" ? I don't know, perhaps that would have been counterproductive, but it shows that too large a value of "disk i/o structures" could harm.

    We have never been in such an I/O constrained situation that the OS had rejected some I/O, but in theory this may happen. In this case, the advice is clear: decrease "disk i/o structures" before your OS or disks become overcommited.

    In 12.5 and I think also in 15, "max async i/os per server" is a static config parm. ASE will suspend new async I/O if either the limit in "max async i/os per server" or "disk i/o structures" is reached. The admin manual states that is slighty more efficient for ASE to wait on the "disk i/o structures" limit than on "max async i/os per server", and consequently recommends setting both parms equal. Well, let's say "max async i/os per server" higher or equal than "disk i/o structures". My point is that, since both parms should be tuned simultaneously and one of them is static, you cannot tune both automatically and dynamically.

    An out of topic remark about I/O: since high I/O activity has severe performance penalties (this happens in every RDBMS, but ASE 12.5 is, IMHO, specially sensitive to high I/O) the sensible DBA should request, buy, borrow, implore or steal as much physical memory as ASE needs in order to abate I/O when too high.

    How high is high? As usually, it depends. sp_sysmon "Max Outstanding I/Os" above 300 per server will hurt in any system. On many, even 200 may be harming. Or even 100. sp_sysmon "Total Requested Disk I/Os" or "Total Completed I/Os" are, in my opinion, less useful as a rule of the thumb because advanced disk systems may allow higher values than slower disks. But they are good for comparing trends on the same dataserver.

    Mariano Corral

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts