[CRIU] request for help

Dmitry Safonov 0x7f454c46 at gmail.com
Mon Mar 6 03:51:57 PST 2017


 2017-03-06 0:33 GMT+03:00 Rami Addad <Ramy.ak at hotmail.fr>:
> Hi Dmitry,


Hi Addad,

It's better to keep the conversation on the mail list as not only you
can meet this problem and other CRIU gents may have better ideas
and more knowledge of this part than me.

So, I'm CC'ing back people from prev. thread, please, use reply-to-all
button in your mail agent.

>
> according to your answer the issue is in the cgroup part

Yep, Tycho is expert in the cgroup C/R part and can correct me,
if I'm wrong by any reason here. (please, again, keep it on maillist)

>
> please i need more information is it hard to solve this issue or not because
> my project graduation depend
>
> please if you could help me even with some advice it will be great

Well, as much as I can see - I do believe it's kind of a bug in CRIU, not
some reasonable performance limitation. To spend 200msec on each
process just for cgroup dumping is a luxury.
Even if this goes from time spent on open/read/close for files, we could
optimize it at least by caching values between pids (as far as I see, all
your processes belong to one LXC container).

I'm quite sure it's a plain bug, but if it turns up to be a fair limitation,
then I think it can be optimized (in the extreme - moved to pre-dump).

So my advice is if you're not afraid of readable C code, can read it and
if you're motivated to solve this performance degradation:
clone criu, build it and try to figure how collect_cgroups() works and why
it's slow for your environment. It's not that hard as it may seem to be.
We surely will help answer your questions and review patches.
Or you can wait until it'll be solved. It looks like major performance
degradation, so everyone here is interested in a fix for it.

>
>
> Best regards,
>
> ADDAD
>
>
>
> Looks like the slowest is this:
> (03.092360) cg: adding cgroup /proc/self/fd/32/lxc/u1
> (03.104262) cg: adding cgroup /proc/self/fd/32/lxc/u1
> (03.120432) cg: adding cgroup /proc/self/fd/32/lxc/u1
> (03.140747) cg: adding cgroup /proc/self/fd/32/lxc/u1
> (03.152882) cg: adding cgroup /proc/self/fd/32/lxc/u1
> (03.172275) cg: adding cgroup /proc/self/fd/32/lxc/u1
> (03.192472) cg: adding cgroup /proc/self/fd/32/lxc/u1
> (03.204734) cg: adding cgroup /proc/self/fd/32/lxc/u1
> (03.232432) cg: adding cgroup /proc/self/fd/32/lxc/u1
> (03.248411) cg: adding cgroup /proc/self/fd/32/lxc/u1
> (03.272400) cg: adding cgroup /proc/self/fd/32/lxc/u1
>
> for each process "adding cgroup" eats totaly ~200 msec.
> 16 times * 200msec, AFAICS.
>

-- 
             Dmitry


More information about the CRIU mailing list