<hannes>
so it is what mini-os thinks about memory, which is fine (good); there's as well the OCaml gc whom you could ask (will report less used memory since the io-page/cstruct is not part of the ocaml gc-managed heap)
<mezu>
hm. which one is Gc.compact() hitting? or both?
<hannes>
tl;dr: the Gc.compact calls help you and we should figure out how to trigger this implicitly :)
<hannes>
Gc.compact is mainly concerned about the gc heap, but it as well takes care to free those non-gc-managed pieces by running finalisers..
<mezu>
yes, that would be one of the two issues i see currently. "call Gc.compact more frequently than daily". :P
<mezu>
(the other is the "4mb per client".)
<hannes>
was this "4mb per client" there before? (or did you not look, ...)?
Hrundi_V_Bakshi has joined #mirage
<mezu>
i never really looked, but i would have hit a "4mb per client" limit _very_ hard a lot of times.
<hannes>
ok
<mezu>
my sys-mfwt has 17 running downstream vms right now, that is an "average" situation for it.
<mezu>
(and it used to run on 42MB and i would have to do log digging to say how much used to be reported as free)
<mezu>
you mentioned Gc triggers were removed in some place(s)?
<hannes>
17 * 4 > 42 in any case, so there seems to be a memory regression
<hannes>
i mentioned that the call to Gc.compact (triggered by Io_page.get) are happening less often
<mezu>
another unverfied impression: it seems to "leak harder" after memory got actualy used, like "more likely to not free up memory if the client vm shutting down did a bunch of serious traffic"
<mezu>
(which again fits with fragmentation)
<hannes>
and to add to the pile of things to investigate is https://github.com/ocaml/ocaml/pull/8809 -- a best-fit allocator which should help against fragmentation. NB this code is only in OCaml 4.10.0+ (which is not released, but in beta2)
jnavila has joined #mirage
jnavila has quit [Remote host closed the connection]
Hrundi_V_Bakshi has quit [Ping timeout: 268 seconds]