From: MERC::"uunet!CRVAX.SRI.COM!RELAY-INFO-VAX" 1-JUL-1992 09:39:57.70 To: info-vax@kl.sri.com CC: Subj: Re: iozone on vax/vms is slow In article <1992Jun30.141251.6408@dxcern.cern.ch>, michelotto@dxcern.cern.ch (Michele Michelotto) writes: |> |> I tried IOZONE 1.15 on a vaxstation 4000/60 and 3100/76 with vms 5.5 |> and on a DS5000/200 with Ultrix 4.1 with different disk. |> I've the impression that IOZONE has some problem on vms because I get |> very poor figure. Actually, poor showing on VMS is due to the poor implementation of the write() function in VAX C. I originally wrote IOzone (about a year before V1.0 was published to the outside world), while I was working in VMS Development at DEC on the VMS POSIX project. I wanted to compare the then-current performance of C I/O on VMS and ULTRIX in order to see if the VMS POSIX file system would meet the goal: at least 85% as fast as ULTRIX on the same model VAX (it isn't) and at least as fast as VAX C I/O (it is). I never exceeded 25K bytes/second on writes on any of the VAXes I tested it on (big ones with fast disks). To verify that the bottleneck was in the C runtime library, I tested IOzone with the GNU C compiler on VMS. I don't have the exact figures anymore, but gcc was on the order of 4-5 times faster than VAX C on writes. VAX C write() does not seem to use the RMS per-process buffer caching code, but if I remember correctly it does use RMS to open and do I/O to the file. VMS, unlike UNIX, does not have a system-wide file system cache. At the $QIO level of VMS I/O, writes go directly to disk. I could have written IOzone to use the VMS-specific $QIO system calls, but my objective was to have a portable program. In fairness to VMS, if you use POSIX synchronous I/O by opening the file with the O_SYNC modifier, then VMS has a much better showing versus the UNIX platforms. If you are developing a VMS-specific application, I would consider using asynchronous virtual file I/O calls using $QIO with ASTs to get maximum performance, this is one of the strong points of VMS. However, if you are interested in running portable C applications on VMS, be aware that the performance of write() with VAX C is poor. -----------------------------------------------------------------------| Bill Norcott GUARDIAN POSIX project Tandem Computers, Inc. 10600 N. Tantau Avenue PHONE: (408) 285-3253 Cupertino, CA 95014 EMAIL: norcott_bill@tandem.com