On Thu, Mar 06, 2003 at 04:33:46PM +0100, Roberto Nibali wrote:
Using 1 client (5000 messages total): -------------- syslogd as a client (UDP transfer) no MACRO : 5000 messages (100%) #no loss at all file MACRO : ~4979 messages (99%) #loss: packet receive errors file+template MACRO: ~4408 messages (88%) #loss: packet receive errors
syslog-ng as a client (UDP transfer) no MACRO : ~3905 messages (78%) \ file MACRO : ~3400 messages (68%) > #loss: packet receive errors!! file+template MACRO: ~3362 messages (67%) /
syslog-ng as a client (TCP transfer) no MACRO : 5000 messages (100%) file MACRO : 5000 messages (100%) file+template MACRO: 5000 messages (100%)
What strikes me as particularly odd is that syslog-ng as a client in UDP mode still performs worse than syslogd in burst mode.
What do you use for fetching local messages? unix-stream or unix-dgram? sysklogd uses unix-dgram while syslog-ng is usually used with unix-stream sources.
In case you're interested: The 5000 messages are 142Bytes in length and sent in 0.9s without any sleeping between sending. This results in almost exactly 1MByte/s which is close to link saturation (no IRQ or RX queue starvation noticed from NIC driver code) on my 10Mbit/s test network.
Your results are really appreciated. No one has done so extensive performance testing on syslog-ng before.
If I find time I'll run the tests with 3 clients too. But meanwhile I'm all for the inclusion of the gprof'd code since rewriting doesn't look like a feasible option in the current state of development (shortly before stable release).
I'll go with the gperf based code for now. -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1