[systemd-devel] [RFC] [PATCH 0/3] journal: Add deferred log processing to reduce synchonous IO overhead

Lennart Poettering lennart at poettering.net
Mon Dec 16 08:13:55 PST 2013


On Mon, 16.12.13 16:54, Lennart Poettering (lennart at poettering.net) wrote:

> > That's it.
> > 
> > While journal code tries to set buffer size via SO_SNDBUF/SO_RCVBUF
> > options to 8MB, kernel limits these to wmem_max/rmem_max. On machines
> > I've tested respective values are quite small - around 150-200kB each.
> 
> Hmm, so on the journald's side we actually use SO_RCVBUFFORCE to
> override that kernel limit. If I understood you correctly though then
> SO_SNDBUF on the sending side is the issue here, not SO_RCVBUF on the
> receiving side.
> 
> We could certainly update src/journal/journal-send.c to also use
> SO_SNDBUFFORCE on the client side, but that would leave unpriviliged
> clients and traditional /dev/log clients in the cold, since the
> SO_SNDBUFFORCE requires privs, and the client side for /dev/log lives in
> glibc, not in systemd.

I made such a change in git now. But again, this is only a very partial
solution, as it only covers native clients with priviliges. It does not
cover unpriviliged clients or traditional syslog() clients... Also, it
cannot influence the qlen. 

But I fear the rest of this really needs to be fixed in the kernel (and
glibc), we cannot do much about this from the systemd side...

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list