GithubHelp home page GithubHelp logo

Reduce heap memory usage about sidewinder HOT 1 CLOSED

srotya avatar srotya commented on September 27, 2024
Reduce heap memory usage

from sidewinder.

Comments (1)

ambud avatar ambud commented on September 27, 2024

After doing a thorough analysis on the heap and objects, this issue boils down to 2 factors:

  1. Size of the time series bucket used
  2. Buffer (measurement.increment.size)

Size of time series bucket determines how many buckets will be created and the series retention policy describes how many buckets will be preserved in memory after each Sidewinder GC cycle. Tuning the bucket size is important since data can only be GC'ed in bucket chunks i.e. partial bucket GCs can't be performed.

measurement.increment.size
This setting determines how big of a buffer is allocated to a writer by the measurement class on request. The bigger this buffer the more data can be stored, if this buffer overflows but newer data still falls in the same bucket then new buffer chunks will be allocated and a pointer in the bucket list is created.

Therefore the above two settings must be adjusted in tandem based on the frequency and types of data received since that drives the effective compression ratio that can be achieved. Essentially, the bucket should be large enough to not create too many small buffer chunks such that heap runs out while making sure it's not too large that the retention period becomes unreasonable for your use case and the read performance is effected (all data of at least 1 bucket requires a full scan on reads). The increment size should be adjusted such that too large buffers aren't allocated such that compression is resulting in a mostly empty buffer for a bucket of time.

from sidewinder.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.