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

    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".


    TIA

  2. #2
    Join Date
    Aug 2002
    Location
    Madrid, Spain
    Posts
    97
    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.

    Regards,
    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
  •