Messages in this thread | | | Date | Fri, 8 May 2009 10:07:45 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: madvise failure |
| |
On Thu, 7 May 2009 14:10:17 +0200 "Andries E. Brouwer" <Andries.Brouwer@cwi.nl> wrote:
> In an application something like > p = mmap(0, sz, PROT_READ, MAP_PRIVATE, fd, 0); > madvise(p, sz, MADV_SEQUENTIAL); > is done for a small number of files, each with a size of a few GB. > A single sequential pass is done over these files - essentially a merge. > > On an old machine the madvise is useful, and decreases total time. With the same kernel (Ubuntu/2.6.27) ? old one ?
> But on a more recent machine, with more memory, the madvise makes > things worse. There, it seems better not to reveal to the kernel > that the data will be read sequentially. > > Timing (six files of 4GB each, quadcore Intel Q9550, 16GB memory, > kernel 2.6.27 [Ubuntu], two other processes active): > with madvise, 7 runs: real time varying 9m10s - 37m29s, > without madvise, 6 runs: real time fairly constant 5m45s - 5m54s. > > Accessing each page one by one sequentially ? or Sequential but (may) skip some pages in each access ?
Thanks, -Kame
| |