On Sat, May 2, 2020 at 10:36 PM Andres Freund <and...@anarazel.de> wrote:
> I changed Robert's test program to optionall fallocate,
> sync_file_range(WRITE), posix_fadvise(DONTNEED), to avoid a large
> footprint in the page cache. The performance
> differences are quite substantial:
>
> gcc -Wall -ggdb ~/tmp/write_and_fsync.c -o /tmp/write_and_fsync && \
>     rm -ff /srv/dev/bench/test* && echo 3 |sudo tee /proc/sys/vm/drop_caches 
> && \
>     /tmp/write_and_fsync --sync_file_range=0 --fallocate=0 --fadvise=0 
> --filesize=$((400*1024*1024*1024)) /srv/dev/bench/test1
>
> running test with: numprocs=1 filesize=429496729600 blocksize=8192 
> fallocate=0 sfr=0 fadvise=0
> [/srv/dev/bench/test1][11450] open: 0, fallocate: 0 write: 214, fsync: 6, 
> close: 0, total: 220
>
> comparing that with --sync_file_range=1 --fallocate=1 --fadvise=1
> running test with: numprocs=1 filesize=429496729600 blocksize=8192 
> fallocate=1 sfr=1 fadvise=1
> [/srv/dev/bench/test1][14098] open: 0, fallocate: 0 write: 161, fsync: 0, 
> close: 0, total: 161

Ah, nice.

> The run-to-run variations between the runs without cache control are
> pretty large. So this is probably not the end-all-be-all numbers. But I
> think the trends are pretty clear.

Could you be explicit about what you think those clear trends are?

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Reply via email to