rctl logs swapuse even if swap is empty

Miroslav Lachman 000.fbsd at quip.cz
Tue Mar 31 00:17:03 UTC 2015


Edward Tomasz Napierała wrote on 03/30/2015 22:54:
> It's been a while since I last touched that part of code, but I believe
> the "swapuse" limit is swap reservation.  In other words, the amount of
> swap that would be used if the system had to swap, in the worst case
> scenario.

Then it is very misleading to name it "swapuse". And I can't imagine how 
this "tiny web application" can ever need to reserve 60GB of swap.

I think the rctl man page needs a better explanation of all resources 
and behaviour of manipulation with limits.
FreeBSD was very well know for it's good documentation, but rctl is not 
this case. It is too brief.

For swapuse, there is only "swap usage, in bytes" - nothing that one can 
deduce it is "reservation for the worst case if system had to swap and 
not the actual swap usage"


> On 0329T1151, Miroslav Lachman wrote:
>> Hello Edward,
>> I am trying to contact you directly, because you are the author of RCTL.
>> Can you shed some light on this issue? I still have a problem with
>> understanding this swapuse issue. Now I have a monitoring of all values
>> reported by "rctl -u jail:fox" and there are values like 60GB of
>> swapuse. It doesn't make sense to me.
>> If this is a bug, I can send you a CSV log file, od ODS (LibreOffice
>> Calc) with graph, or MRTG graphs of all values.
>>
>> Miroslav Lachman
>>
>> https://lists.freebsd.org/pipermail/freebsd-stable/2015-March/082019.html
>>
>>
>> Miroslav Lachman wrote on 03/22/2015 22:42:
>>> Miroslav Lachman wrote on 03/21/2015 01:35:
>>>> I tried RCTL for the first time, so maybe it is error on my side.
>>>
>>> [...]
>>>
>>>> Both jails are small webservers with PHP + Apache. They do not use much
>>>> memory and they really do not user any swap space. (according to top and
>>>> swapinfo)
>>>>
>>>>
>>>> # swapinfo -h
>>>> Device          1K-blocks     Used    Avail Capacity
>>>> /dev/mirror/gm0s1b  16777216       0B      16G     0%
>>>>
>>>>
>>>> # rctl -hu jail:fox | grep swap
>>>> swapuse=0
>>>>
>>>>
>>>> Processes in both jails are logged as using more than 32MB of swap:
>>>>
>>>> Mar 21 01:18:55 neon kernel: rctl: rule "jail:fox:swapuse:log=33554432"
>>>> matched by pid 20783 (httpd), uid 80, jail fox
>>>> Mar 21 01:18:55 neon kernel: rctl: rule "jail:fox:swapuse:log=33554432"
>>>> matched by pid 20787 (httpd), uid 80, jail fox
>>>> Mar 21 01:18:58 neon kernel: rctl: rule "jail:fox:swapuse:log=33554432"
>>>> matched by pid 19207 (httpd), uid 80, jail fox
>>>> Mar 21 01:18:58 neon kernel: rctl: rule "jail:fox:swapuse:log=33554432"
>>>> matched by pid 20790 (sh), uid 0, jail fox
>>>> Mar 21 01:18:58 neon kernel: rctl: rule "jail:fox:swapuse:log=33554432"
>>>> matched by pid 20792 (sh), uid 0, jail fox
>>>> Mar 21 01:18:58 neon kernel: rctl: rule
>>>> "jail:olymp:swapuse:log=33554432" matched by pid 20793 (sh), uid 0, jail
>>>> olymp
>>>> Mar 21 01:18:58 neon kernel: rctl: rule
>>>> "jail:olymp:swapuse:log=33554432" matched by pid 20795 (sh), uid 0, jail
>>>> olymp
>>>>
>>>> Is it expected? I do not think so.
>>>> Or am I doing something wrong with rctl?
>>>
>>> This is really strange. FOP (Java application) in jail is failing unless
>>> rctl swapuse is set to 7GB or more.
>>>
>>> Does swapuse means anything completely different than what is swapinfo
>>> or top reporting?
>>>
>>> The same web services with FOP is running completely fine on real server
>>> with 2GB of physical RAM installed and less than 5GB of swap partition
>>> (swap is empty). But it is not working in jail if RCTL is set to
>>> swapuse:deny=4GB or memoryuse:deny=4GB.
>>>
>>> Can somebody explain it?
>>>
>>> Miroslav Lachman




More information about the freebsd-stable mailing list