Re: [PATCH 00/14] Present useful limits to user (v2)
From: Topi Miettinen <hidden>
Date: 2016-07-15 16:35:33
Also in:
cgroups, kvm, linux-fsdevel, linux-mm, linux-rdma, netdev
On 07/15/16 13:04, Balbir Singh wrote:
On Fri, Jul 15, 2016 at 01:35:47PM +0300, Topi Miettinen wrote:quoted
Hello, There are many basic ways to control processes, including capabilities, cgroups and resource limits. However, there are far fewer ways to find out useful values for the limits, except blind trial and error. This patch series attempts to fix that by giving at least a nice starting point from the highwater mark values of the resources in question. I looked where each limit is checked and added a call to update the mark nearby. Example run of program from Documentation/accounting/getdelauys.c: ./getdelays -R -p `pidof smartd` printing resource accounting RLIMIT_CPU=0 RLIMIT_FSIZE=0 RLIMIT_DATA=18198528 RLIMIT_STACK=135168 RLIMIT_CORE=0 RLIMIT_RSS=0 RLIMIT_NPROC=1 RLIMIT_NOFILE=55 RLIMIT_MEMLOCK=0 RLIMIT_AS=130879488 RLIMIT_LOCKS=0 RLIMIT_SIGPENDING=0 RLIMIT_MSGQUEUE=0 RLIMIT_NICE=0 RLIMIT_RTPRIO=0 RLIMIT_RTTIME=0 ./getdelays -R -C /sys/fs/cgroup/systemd/system.slice/smartd.service/ printing resource accounting sleeping 1, blocked 0, running 0, stopped 0, uninterruptible 0 RLIMIT_CPU=0 RLIMIT_FSIZE=0 RLIMIT_DATA=18198528 RLIMIT_STACK=135168 RLIMIT_CORE=0 RLIMIT_RSS=0 RLIMIT_NPROC=1 RLIMIT_NOFILE=55 RLIMIT_MEMLOCK=0 RLIMIT_AS=130879488 RLIMIT_LOCKS=0 RLIMIT_SIGPENDING=0 RLIMIT_MSGQUEUE=0 RLIMIT_NICE=0 RLIMIT_RTPRIO=0 RLIMIT_RTTIME=0Does this mean that rlimit_data and rlimit_stack should be set to the values as specified by the data above?
My plan is that either system administrator, distro maintainer or even upstream developer can get reasonable values for the limits. They may still be wrong, but things would be better than without any help to configure the system.
Do we expect a smart user space daemon to then tweak the RLIMIT values?
Someone could write an autotuning daemon that checks if the system has changed (for example due to upgrade) and then run some tests to reconfigure the system. But the limits are a bit too fragile, or rather, applications can't handle failure, so I don't know if that would really work. -Topi
Balbir Singh.