Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-7895

[linearstore] Excessive CPU utilization for some kernel clocksources

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: qpid-cpp-1.37.0
    • Component/s: C++ Broker
    • Labels:
      None

      Description

      For some kernel clocksources (eg acpi_pm), it has been observed that there is an excessively high CPU utilization which correlates with the linearstore's flush timeout being set to a very low value (100us). This is a problem for some customers which require almost instant flush to obtain pseudo-synchronous store behavior (hence the 100us flush timer) and run many brokers (up to hundreds) on a single machine. In these cases, the CPU is 100% utilized.

      A check of the source shows that the flush timer is firing continuously, irrespective of whether any disk I/O has taken place.

      It is proposed that a change to linearstore be made which will only run the timer when needed (ie while there is content in the write buffers that needs flushing).

        Attachments

          Activity

            People

            • Assignee:
              kpvdr Kim van der Riet
              Reporter:
              kpvdr Kim van der Riet
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: