FreeBSD: syslog-ng: I/O error occurred while writing; fd='xx', error='No buffer space available (yy)'

Traiano Welcome Traiano.Welcome at mtnbusiness.co.za
Thu Mar 22 15:00:46 UTC 2012


Hi John



On 22/03/2012 14:16, "John Baldwin" <jhb at freebsd.org> wrote:

>On Thursday, March 22, 2012 6:03:21 am Traiano Welcome wrote:
>> Hi List
>> 
>> I've been seeing the following in the messages log of my freebsd syslog
>> server for quite some time now:
>> 
>> ---
>> Mar 20 12:19:12 syslog2 syslog-ng[35313]: I/O error occurred while
>> writing; fd='12', error='No buffer space available (55)'
>> Mar 20 12:19:12 syslog2 syslog-ng[35313]: Connection broken;
>> time_reopen='60'
>> Mar 20 12:19:12 syslog2 syslog-ng[35313]: I/O error occurred while
>> writing; fd='13', error='No buffer space available (55)'
>> Mar 20 12:19:12 syslog2 syslog-ng[35313]: Connection broken;
>> time_reopen='60'
>> ---
>> 
>> These happen at a frequency of about 7 per minute on average. See
>>attached
>> trend graphs for an idea of the volume of traffic we're doing, as well
>>as
>> the memory and cpu utilisation trends on this server during this period.
>> As can be seen from the graphs, load does not seem to be the issue.
>> Occasionally during the week, the system freezes and requires a reboot,
>>I
>> think it's related to the above message, though I'm not sure.
>> 
>> My question is: What does this error mean, and how can I resolve it?
>> 
>> I have tried to frame this as an operating system kernel resource issue,
>> and experimented with increasing the freebsd kernel sysctls for UDP
>> performance:
>
>It means that the network driver has "filled" up with packets.  Are you
>using 
>igb(4)?  We have to crank the number of descriptors assigned to igb to
>the max 
>to workaround this at work (we get DNS timeouts during a simple boot
>otherwise).  hw.igb.maxtxd is the tunable you would set.  The max value
>you 
>can set it to is 4096.


Thanks for the clue. It seems igb is indeed being used. However, I not
that when I try to list this tunable, I don't get anything:

---
[root at syslog2]# sysctl -a  | grep igb
[root at syslog2]#
---


---
[root at syslog2 /boot]# sysctl hw.igb.maxtxd=4000
sysctl: unknown oid 'hw.igb.maxtxd'
---


Is this due to the way igb is compiled into the kernel, or am I tuning in
the wrong place :-)









>
>-- 
>John Baldwin



More information about the freebsd-net mailing list