• Recent
    • Tags
    • Popular
    • Register
    • Login

    Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

    Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website Mango 5 Documentation Website

    High CPU usage

    User help
    4
    32
    19.3k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      btrombo
      last edited by

      I changed to MAPPED_BYTE_BUFFER and also tried the 200 and 50 settings. The 50 setting has no change that I could notice but changing it to 200 had even higher CPU usage. I put it at 500 and looks reasonable now. The core is no longer pinned and looks like the major issue has been resolved.

      1 Reply Last reply Reply Quote 0
      • phildunlapP
        phildunlap
        last edited by

        Great! Thanks for your patience through the investigation and glad to hear it!

        1 Reply Last reply Reply Quote 0
        • C
          craig
          last edited by

          what is the takeaway from this issue?

          On unix OS with a read heavy query load and lots of bacnet data sources use db.shardStreamType=MAPPED_BYTE_BUFFER and increase the "Batch write behind spawn threshold" to 500 and "Max batch write behind tasks" to 50?

          1 Reply Last reply Reply Quote 0
          • phildunlapP
            phildunlap
            last edited by phildunlap

            Hi Craig, I would consider the following the things to take away:

            On *nix operating systems MAPPED_BYTE_BUFFER is the fastest stream, but does not currently work on Windows. INPUT_STREAM is likely still the fastest option for Windows.

            Having write behind instances between 2 and 8 is most efficient for most users, with 2-3 (active, not maximum) probably being best, but 1 being totally sufficient in a system not under heavy load. But, you can experiment with this through the spawn threshold setting very easily.

            Meta points will expand their caches to requests for fixed numbers of values but not for time ranges, so if you're being weighted down by Meta points you can convert something like p.pointValuesSince( now - oneMinute ); into p.last(30); //knowing it's a 2 second poll and see performance improvments.

            1 Reply Last reply Reply Quote 0
            • B
              btrombo
              last edited by

              Well this problem has come back, all the changes we did before are still in place so I'm guessing those changes just helped the root cause be less of an issue or another issue has come up maybe just all the restarts during the last debugging helped. All cores are pinned this time.

              0_1483469260587_upload-ba7b39ae-2044-489b-b680-a7979fba96b4

              1 Reply Last reply Reply Quote 0
              • phildunlapP
                phildunlap
                last edited by phildunlap

                Hi btrombo,

                There is a new version of the database our that does some more efficient batch processing. I would consider updating to get that version. We have an instance running on this latest version and it's been intaking 300,000 values/s for months. This takes the shape of new Mango NoSQL system settings.

                We could also try to troubleshoot it through the same steps again (getting thread dumps) but I would speculate it's a combination of meta points putting a heavy query load and something else.

                1 Reply Last reply Reply Quote 0
                • B
                  btrombo
                  last edited by

                  A restart fixed the issue, it looks like the issue takes some time to come back or maybe some task we do causes the issue to come back but here is a CPU non kernal over 4 weeks. The drops are all manual restarts. We will try to upgrade again today, the last try failed so we rolled back.

                  0_1483554948162_upload-6432a910-8f9a-43e1-968f-ff0a4a611424

                  1 Reply Last reply Reply Quote 0
                  • phildunlapP
                    phildunlap
                    last edited by

                    Can you post a graph of your memory usage over the same time period?

                    1 Reply Last reply Reply Quote 0
                    • B
                      btrombo
                      last edited by

                      Basically 0 swap over the timeframe.

                      Virtual Memory Used
                      0_1483556698222_upload-b766f83e-eab8-44ba-b7b7-c7fb31f9e4d6
                      Idle Memory
                      0_1483556730579_upload-e50e4dfa-5b0b-43cb-a5a0-604e50c35cd9
                      Cache
                      0_1483556790369_upload-2b960cfd-bec7-4e37-add7-31203d2f1781

                      1 Reply Last reply Reply Quote 0
                      • phildunlapP
                        phildunlap
                        last edited by

                        You could experiment with using the concurrent garbage collector instead of the parallel garbage collector. There is the script Mango/bin/ext-available/concurrent-garbage-collector.sh to be placed in Mango/bin/ext-enabled/ if you're on Linux or Mac. GC tuning can take some effort, and it helps to log the output as well to know the effects changes have.

                        Another suggestion may be to encourage you to play with it and give us more information to work with.

                        1 Reply Last reply Reply Quote 0
                        • B
                          btrombo
                          last edited by

                          We did get the upgrade to work today so we will let that sit as is for a while before I start changing things again. We do get a few of these now:

                          High priority task: com.infiniteautomation.nosql.MangoNoSqlBatchWriteBehindManager$PointDataCleaner was rejected because it is already running.
                          

                          0_1483647051378_upload-6d19dbf0-b286-4052-8954-4c8b2b3dcf50

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post