home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.unix.questions:13543 comp.unix.wizards:4762
- Newsgroups: comp.unix.questions,comp.unix.wizards
- Path: sparky!uunet!ferkel.ucsb.edu!taco!gatech!rpi!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!cbnewsi!ft
- From: ft@cbnewsi.cb.att.com (frederick.d.true)
- Subject: Re: Unlocking named pipes (solved + question)
- Organization: AT&T
- Date: Wed, 18 Nov 1992 00:06:43 GMT
- Message-ID: <1992Nov18.000643.26562@cbnewsi.cb.att.com>
- Followup-To: comp.unix.questions
- Keywords: named pipe FIFO
- Lines: 48
-
-
- Well, after receiving very few responses to my problem, I did a little
- poking around in the SunOS kernel config files to try and find an
- answer.
-
- Basically, my problem was this: I was using several named pipes to
- receive the output of several 'zcat file...' commands, and was then
- using 'sort <ops> -m pipe1 pipe2...' to merge the named pipes
- together. The result was that I could merge several large compressed
- sorted files, without having to decompress them to disk.
-
- The problem was that after running for a while, the process would
- freeze and all processes would go into IW. I thought it was strange
- that this would happen all by itself, and indeed it didn't. At the
- same time, I was testing this process on several smaller files, using
- named pipes (different pipes, of course).
-
- I then noticed in the kernel configuration file, the option "options
- FIFOCNT=10' was being set. Sure enough, in the "Sun System and Network
- Administration" manual, I stumbled across the following, under "Tuning
- IPC System Parameters":
-
- FIFOCNT determines the makimum number of FIFOs that may be in
- use in the system an any given time. Attempts to write more
- than FIFOCNT simultaneous FIFOs will block until some FIFOs
- are closed, releasing system resources. In the current
- implementation, FIFO buffers are allocated in non-paging
- memory, and can lead to system lockup if indiscriminantly
- allocated. This restriction make be removed in a future
- release.
-
- Well, that was the problem. The job would run fine as long as I was
- using <= 10 pipes. When I fiddled around while the job was running, I
- caused several of the pipes to block, and sort would stop, and all
- other processes would eventually stop since none of the pipes would
- clear until sort was done.
-
- I've rebuilt the kernel with FIFOCNT=16 to help me out temporarily,
- but my question is this: is it really true that only this many named
- pipes can be used at once *in the entire system*? What if 2 users try
- to do this at the same time? Or 2 jobs for that matter?
-
- It seems very unfriendly, for such a nice feature.
-
- --
- Fred True
- AT&T
-
-