Date: Wed, 31 Aug 2011 11:38:33 +0400 From: Lev Serebryakov <lev@serebryakov.spb.ru> To: Bob Friesenhahn <bfriesen@simple.dallas.tx.us> Cc: freebsd-fs@freebsd.org Subject: Re: Very inconsistent (read) speed on UFS2 Message-ID: <485583919.20110831113833@serebryakov.spb.ru> In-Reply-To: <alpine.GSO.2.01.1108301735030.3028@freddy.simplesystems.org> References: <317753422.20110830231815@serebryakov.spb.ru> <201108302009.p7UK9CBQ085481@chez.mckusick.com> <103666698.20110831021404@serebryakov.spb.ru> <1693072185.20110831022933@serebryakov.spb.ru> <alpine.GSO.2.01.1108301735030.3028@freddy.simplesystems.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello, Bob. You wrote 31 =E0=E2=E3=F3=F1=F2=E0 2011 =E3., 2:40:07: >>> I'll try this experiment with mmap() and touching every 4096-th byte = of >>> mapped memory instead of read(2). >> Strange enough, it gives only 40-50MiB/s and results are very >> consistent. >> >> It really surprise me. I didn't think, that there will be so much >> difference, I was sure, that it will be almost equivalent speed. > FreeBSD does not seem to default to sequential read-ahead when memory > mapping is used with sequential page access. Try using madvise()=20 > with the MADV_SEQUENTIAL option and see if it helps. It were results with MADV_SEQUENTIAL. Code looks like this: (error checking is skipped here, but not in real code, of course): fd =3D open(fileName, O_RDONLY | O_DIRECT); buf =3D mmap(NULL, fileSize, PROT_READ, 0, fd, 0); madvise(buf, fileSize, MADV_SEQUENTIAL); gettimeofday(&start, NULL); for (rd =3D 0; rd < fileSize; rd +=3D 4096) c =3D buf[rd]; gettimeofday(&end, NULL); munmap(buf, fileSize); close(fd); > There are also MADV_WILLNEED, MADV_DONTNEED, and MADV_FREE. Careful > use of these options can help performance quite a lot when data is=20 > large compared to memory. It is too complex for simple linear read test :) --=20 // Black Lion AKA Lev Serebryakov <lev@serebryakov.spb.ru>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?485583919.20110831113833>