Re: profiling connection overhead
От | Andres Freund |
---|---|
Тема | Re: profiling connection overhead |
Дата | |
Msg-id | 201011242228.44011.andres@anarazel.de обсуждение исходный текст |
Ответ на | Re: profiling connection overhead (Robert Haas <robertmhaas@gmail.com>) |
Список | pgsql-hackers |
On Wednesday 24 November 2010 22:18:08 Robert Haas wrote: > On Nov 24, 2010, at 4:05 PM, Andres Freund <andres@anarazel.de> wrote: > >>> Won't this just cause loads of additional pagefaults after fork() when > >>> those pages are used the first time and then a second time when first > >>> written to (to copy it)? > >> > >> Aren't we incurring those page faults anyway, for whatever memory > >> palloc is handing out? The heap is no different from bss; we just > >> move the pointer with sbrk(). > > > > Yes, but only once. Also scrubbing a page is faster than copying it... > > (and there were patches floating around to do that in advance, not sure > > if they got integrated into mainline linux) > I'm not following - can you elaborate? When forking the memory mapping of the process is copied - the actual pages are not. When a page is first accessed the page fault handler will setup a mapping to the "old" page and mark it as shared. When now written to it will fault again and copy the page. In contrast if you access a page the first time after an sbrk (or mmap, doesn't matter) a new page will get scrubbed and and a mapping will get setup. Andres
В списке pgsql-hackers по дате отправления: