Applications such as web proxies can create and close large numbers of sockets. In Onload 201805, socket caching has been extended to improve the support for such applications:
- Applications using many listening sockets with scalable filters can now use a common cache of sockets accepted from them, improving utilization of the cache.
- When a listening socket is used simultaneously by multiple processes, file
descriptors can now be cached per-process. In earlier versions of Onload, accepted sockets were cachable only in the
process that originated them.
This is of particular benefit to server applications such as NGINX that support dynamic reconfiguration by spawning a new process reusing existing listening sockets.
This feature is not compatible with sockets that require O_CLOEXEC.