On 2014-11-10 18:58, Martin Mares wrote:
Unfortunately, non-blocking operations on plain files are not supported
by most operating systems, including Linux.
It is supported though is not perfect (yet):
http://man7.org/linux/man-pages/man7/aio.7.html
It would be logical to have separate thread which will handle
async logging i/o, allowing core process to operate.
Blocking for 40 seconds is a pathological case, which should not happen
on properly configured systems. Which kernel do you use?
It has nothing to do with proper configuration - if there is a lot
of i/o on a [slow] disk, this could happen, unless the destination
is a ram-disk or SSD (though SSD may block too in some cases).
IMHO, using *any* blocking calls in a routing daemon is bad idea,
especially for protocols like OSPF or BFD where timing is very critical.
On the other hand, using heavily loaded system as a router is bad idea
by itself :)
Regards,
Alexander.