Re: [PATCH] ipv4: Namespaceify tcp_max_orphans knob

From: David Miller
Date: Sat Sep 09 2017 - 01:17:01 EST


From: äæå <yanhaishuang@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 9 Sep 2017 13:09:57 +0800

>
>
>> On 2017å9æ9æ, at äå12:35, Cong Wang <xiyou.wangcong@xxxxxxxxx> wrote:
>>
>> On Fri, Sep 8, 2017 at 6:25 PM, äæå <yanhaishuang@xxxxxxxxxxxxxxxxxxxx> wrote:
>>>
>>>
>>>> On 2017å9æ9æ, at äå6:13, Cong Wang <xiyou.wangcong@xxxxxxxxx> wrote:
>>>>
>>>> On Wed, Sep 6, 2017 at 8:10 PM, Haishuang Yan
>>>> <yanhaishuang@xxxxxxxxxxxxxxxxxxxx> wrote:
>>>>> Different namespace application might require different maximal number
>>>>> of TCP sockets independently of the host.
>>>>
>>>> So after your patch we could have N * net->ipv4.sysctl_tcp_max_orphans
>>>> in a whole system, right? This just makes OOM easier to trigger.
>>>>
>>>
>>> From my understanding, before the patch, we had N * net->ipv4.sysctl_tcp_max_orphans,
>>> and after the patch, we could have ns1.sysctl_tcp_max_orphans + ns2.sysctl_tcp_max_orphans
>>> + ns3.sysctl_tcp_max_orphans, is that right? Thanks for your reviewing.
>>
>> Nope, by N I mean the number of containers. Before your patch, the limit
>> is global, after your patch it is per container.
>>
>
> Yeah, for example, if there is N containers, before the patch, I mean the limit is:
>
> N * net->ipv4.sysctl_tcp_max_orphans
>
> After the patch, the limit is:
>
> ns1. net->ipv4.sysctl_tcp_max_orphans + ns2. net->ipv4.sysctl_tcp_max_orphans + â

Not true.

Please remove "N" from your equation of the current situation.

"sysctl_tcp_max_orphans" applies to entire system, it is a global limit,
comparing one limit against all orphans in the system, there is no N.