very busy syslog server
sean at gigave.com
Wed Dec 7 10:41:18 PST 2005
> I'm trying to setup a syslog server to serve a large group of
> servers. For the syslog daemon, I have chosen rsyslogd, and the
> backend is mysql (on a different machine).
> The machine has 2 Intel Xeon 2.80GHz CPUs, and 1GB of RAM, and it is
> running FreeBSD 6 (6.0-STABLE).
> The problem is, that I see a lot of UDP packets being dropped:
> 390202 datagrams received
> 0 with incomplete header
> 0 with bad data length field
> 0 with bad checksum
> 6 with no checksum
> 0 dropped due to no socket
> 0 broadcast/multicast datagrams dropped due to no socket
> ->>> 123677 dropped due to full socket buffers
> 0 not for hashed pcb
> 266525 delivered
> 133260 datagrams output
> I have tried to increase net.inet.udp.recvspace, but it didn't solve
> the problem.
> I would appreciate any hint or tips.
When you're doing a large number of packets per second, you may want
to look into enabling device polling(4). Right now, every packet
results in an interrupt. With device polling, you can handle more
than one packet per interrupt. See the man page for details. If your
syslogd's are blocking, waiting for the MySQL INSERT to complete, you
may be dropping UDP packets and polling won't help you. I'd write
messages out to a file then process them once a minute. *shrug* -sc
More information about the freebsd-performance