I have a prefork/fork daemon. By atop I see, that master-process often consumes disk:
PID TID RDDSK WRDSK WCANCL DSK CMD
16830 - 7264K 48696K 18624K 10% our daemon
From strace
I see, that it only forks in this time period:
1461316357.209106 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0) = 16203 <0.002074>
1461316357.211241 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0) = 16204 <0.000843>
1461316387.241264 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0) = 19984 <0.002144>
1461316387.243471 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0) = 19985 <0.000990>
1461316388.851070 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0) = 20063 <0.002046>
1461316388.853173 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0) = 20064 <0.000916>
Also there were nanosleep,waitpid,time,restart_syscall
in strace, but they aren't interesting.
My question is how fork
can cause disk usage? And how to fix that (this daemon is running in disk-bound servers, we try to reduce disk usage)?
0 Answers