Writes to FIFO named pipe block and generate filesystem I/O in Red Hat Enterprise Linux
Issue
When creating a FIFO (named pipe) for Inter process Communication (IPC), the writing application blocks under heavy filesystem I/O even though the open() call used the option O_NONBLOCK and O_NOATIME.
This was unexpected because it was thought that the FIFO is not actually writing data to the disk but only using the filesystem for its namespace for access by programs (e.g. /var/MY-FIFO). Any data should be flowing directly from the writer to the reader via the kernel and not actually written to the filesystem or harddisk.
Environment
Red Hat Enterprise Linux (RHEL) 6
Red Hat Enterprise Linux (RHEL) 5
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.