<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    <title></title>
  </head>
  <body text="#000000" bgcolor="#ffffff">
    Have you taken into account the size of the bucket name? is it 12
    bytes for key+bucket?<br>
    <br>
    Also there is some additional overhead that is due to memory
    alignment requirements, depending on your CPU architecture.<br>
    I have done some tests on this for x86_64 a while ago:<br>
    <br>
    size=55: overhead=9<br>
    size=56: overhead=8
    <br>
    size=57: overhead=23
    <br>
    size=58: overhead=22
    <br>
    size=59: overhead=21
    <br>
    size=60: overhead=20
    <br>
    size=61: overhead=19
    <br>
    size=62: overhead=18
    <br>
    size=63: overhead=17
    <br>
    size=64: overhead=16
    <br>
    size=65: overhead=15
    <br>
    size=66: overhead=14
    <br>
    size=67: overhead=13
    <br>
    size=68: overhead=12
    <br>
    size=69: overhead=11
    <br>
    size=70: overhead=10
    <br>
    size=71: overhead=9
    <br>
    size=72: overhead=8
    <br>
    Not much you can do about that, unless you want to use unaligned
    memory, which is super complicated (replace malloc with your own
    allocator) and has a huge performance penalty.<br>
    <br>
    So lets assume your 12 bytes are include bucket and key:<br>
    <br>
    43 byte overhead + 12 byte keydata = 55 bytes, this is the number of
    bytes allocated per entry. In reality malloc(55) allocates 64 bytes
    internally, so you total memory consumption is:<br>
    <br>
    64byte*3*450Mio = 80 Gb<br>
    <br>
    But if the bucket size is not included in the 12 bytes, and your
    bucket name(s) has at least a size of 2 bytes we get:<br>
    <br>
    (43 + 12 + 2) bytes  = 57 bytes, and in this case malloc(57) really
    allocates 80 bytes inernally. Therefore:<br>
    <br>
    80byte*3*450Mio = 100Gb<br>
    <br>
    <br>
    Cheers,<br>
    Nico<br>
    <br>
    <br>
    Am 17.08.2011 19:43, schrieb Jacques:
    <blockquote
cite="mid:CAO83RbW6ACQ_h9o3BOyAUJuBNr9ux-Jcpy-J=XPSdN9ufN8rjg@mail.gmail.com"
      type="cite">
      <meta http-equiv="Context-Type" content="text/html;
        charset=ISO-8859-1">
      <p>So if my math is correct, consumption should be around 70-80
        for me. Yet we see a usage over 100. I'm also notclear what the
        step changes are. If you have any insights on these that would
        be great. Thanks! </p>
      <div>On Aug 17, 2011 12:07 AM, "Nico Meyer" <<a
          moz-do-not-send="true" href="mailto:nico.meyer@adition.com">nico.meyer@adition.com</a>>
        wrote:<br>
        > Hi Jacques,<br>
        > <br>
        > please read my reply back in May, which should clear things
        up:<br>
        > <br>
        > <a moz-do-not-send="true"
href="http://lists.basho.com/pipermail/riak-users_lists.basho.com/2011-May/004292.html">http://lists.basho.com/pipermail/riak-users_lists.basho.com/2011-May/004292.html</a><br>
        > <br>
        > Cheers,<br>
        > Nico<br>
        > <br>
        > On 16.08.2011 21:09, Jacques wrote:<br>
        >> We're utilizing Riak 14.2 and we're seeing higher
        memory consumption<br>
        >> than we expect.<br>
        >><br>
        >> We're running on a 4 node cluster with each node
        housing 32gb of memory<br>
        >> and are utilizing bitcask with a 3x write replication
        factor. We're<br>
        >> seeing faster growth than we expect and also seeing
        weird bounces update.<br>
        >><br>
        >> You can see an example chart <<a
          moz-do-not-send="true"
          href="http://picturepush.com/public/6331935">http://picturepush.com/public/6331935</a>>.<br>
        >> (note, there are sometimes where we've had to stop the
        job for short<br>
        >> periods of time-- you can see these as flat spots).<br>
        >><br>
        >> We are doing a large throttled import that has key
        sizes of<br>
        >> approximately 12 bytes. We're currently around 450mm
        unique items and<br>
        >> riak memory consumption is ~110gb. The input job is
        probably 95% new<br>
        >> puts and 5% overwriting puts.<br>
        >><br>
        >> According to the capacity planner tools, our key space
        should probably<br>
        >> be about half what are actual memory consumption is.<br>
        >><br>
        >> As you can see in the chart, we're also seeing jumps in
        memory size at<br>
        >> random intervals. What might these be? Nothing
        interesting in the logs<br>
        >> that I can see. Regular merges.<br>
        >><br>
        >> A close up <<a moz-do-not-send="true"
          href="http://picturepush.com/public/6332084">http://picturepush.com/public/6332084</a>>
        of a recent jump in<br>
        >> memory consumption for one of the nodes (they all look
        the same). There<br>
        >> are no corresponding distinct patterns within the cpu
        chart. Things are<br>
        >> pretty flat although we have more wait sometimes than
        we like (need more<br>
        >> spindles clearly).<br>
        >><br>
        >><br>
        >> Any helpful thoughts?<br>
        >><br>
        >> Thanks,<br>
        >> Jacques<br>
        >><br>
        >><br>
        >><br>
        >><br>
        >><br>
        >> _______________________________________________<br>
        >> riak-users mailing list<br>
        >> <a moz-do-not-send="true"
          href="mailto:riak-users@lists.basho.com">riak-users@lists.basho.com</a><br>
        >> <a moz-do-not-send="true"
href="http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com">http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com</a><br>
      </div>
    </blockquote>
    <br>
  </body>
</html>