Oknet,

The proposed change below is NOT directly related to setting the ATS internal 
soft and hard limits (fds_throttle and fds_limit respectively). Instead, I am 
proposing to modify the way that we currently change the OS limits (done by 
setting lim.rlim_cur and lim.rlim_max and then calling the setrlimit() system 
function). If you look inside the adjust_sys_settings() function, we first 
attempt to set the OS limits to 90% of maxfiles 
(proxy.config.system.file_max_pct), and then we attempt to set the OS limits to 
fds_throttle (proxy.config.net.connections_throttle) if the current OS limits 
are not enough to satisfy the needs of fds_throttle + THROTTLE_FD_HEADROOM. The 
change I am proposing is that if we are changing the OS limits anway, then it 
seems not to make sense to set the OS limit to just fds_throttle. Instead, we 
should set the OS limit to fds_throttle + THROTTLE_FD_HEADROOM so that the 
fds_throttle is not forced lower again later in check_fd_limit().

Thanks,
Peter

-----Original Message-----
From: Chao Xu [mailto:ok...@apache.org] 
Sent: Saturday, June 24, 2017 5:43 AM
To: dev@trafficserver.apache.org
Subject: Re: Setting fds_limit.

Hi Peter,

The `fds_limit` is hard limit of fds. The 192 fds are reserved for ats
internal use (epoll fd , EThread signal, etc ...).
The throttle is soft limit of fds and (fds_limit - 192) is the max value of
throttle.

We can not and must not change the hard limit since it is set by operating
system.

Oknet Xu

2017-06-24 3:10 GMT+08:00 Chou, Peter <pbc...@labs.att.com>:

> Hi,
>
> In adj_system_settings() in proxy/Main.cc, we have (paraphrasing here) --
>
> if throttle > (current - head_room) then
>     cur = max = throttle
>     setrlimit()...
>
> Would it make more sense to set --
>
>     cur = max = throttle + head_room
>
> Otherwise, our users see the warning, try to compensate, and see the
> warning again...
>
> Default of 30000:
>
> WARNING: connection throttle too high, 30000 (throttle) + 192 (internal
> use) > 30000 (file descriptor limit), using throttle of 29808
> Changed to 29800:
> WARNING: connection throttle too high, 29800 (throttle) + 192 (internal
> use) > 29800 (file descriptor limit), using throttle of 29608
>
> We can make the warnings go away by setting the file limit higher in the
> systemd file for the service, but the above behavior can cause some
> confusion.
>
> Thanks,
> Peter
>

Reply via email to