On 2017-10-02 19:50:51 -0400, Tom Lane wrote: > Andres Freund <and...@anarazel.de> writes: > > On 2017-10-02 18:33:17 -0400, Tom Lane wrote: > >> I'm kind of surprised that machine B doesn't show obvious tanking in this > >> test given that msync() makes it suck so badly at copying a database. > >> I wonder what is different from the kernel's standpoint ... maybe the > >> sheer number of different files mmap'd by a single process during the > >> copy? > > > Yea, that's curious. I've really no clue about OSX, so pardon my > > question: With HEAD and CREATE DATABASE, is it IO blocked or kernel cpu > > blocked? > > What I saw was that the backend process was consuming 100% of (one) CPU, > while the I/O transaction rate viewed by "iostat 1" started pretty low > --- under 10% of what the machine is capable of --- and dropped from > there as the copy proceeded. I did not think to check if that was user > or kernel-space CPU, but I imagine it has to be the latter.
So that's pretty clearly a kernel bug... Hm. I wonder if it's mmap() or msync() that's the problem here. I guess you didn't run a profile? One interesting thing here is that in the CREATE DATABASE case there'll probably be a lot larger contiguous mappings than in *_flush_after cases. So it might be related to the size of the mapping / flush "unit". Greetings, Andres Freund -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers