Re: Keep elog(ERROR) and ereport(ERROR) calls in the cold path
От | David Rowley |
---|---|
Тема | Re: Keep elog(ERROR) and ereport(ERROR) calls in the cold path |
Дата | |
Msg-id | CAApHDvqbd1ndnHS-icvP4QQH9JqjCoa1PFkGaDXZwRHwDRaTTA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Keep elog(ERROR) and ereport(ERROR) calls in the cold path (David Rowley <dgrowleyml@gmail.com>) |
Ответы |
Re: Keep elog(ERROR) and ereport(ERROR) calls in the cold path
|
Список | pgsql-hackers |
On Mon, 29 Jun 2020 at 21:36, David Rowley <dgrowleyml@gmail.com> wrote: > (I attribute the speedup here not being the same as my last report due > to noise. A recent bios update partially fixed the problem, but not > completely) I managed to fix the unstable performance on this AMD machine by tweaking some bios power management settings. I did some further testing with the v4 patch using both each of: 1. pgbench -S 2. pgbench -S -M prepared 3. pgbench -S -M prepared -c 64 -j 64. 4. TPC-H @ 5GB scale (per recommendation from Andres offlist) The results of 1-3 above don't really show much of a win, which really does contradict what I saw about 5 years ago when testing unlikely() around elog calls in [1]. The experiment I did back then did pre-date the use of unlikely() in the source code, so I thought perhaps that since we now have a sprinkling of unlikely() in various of the hottest code paths that the use of those already gained most of what we were going to gain from today's patch. To see if this was the case, I decided to hack up a test patch which removes all those unlikely() calls that exist in an if test above an elog/ereport ERROR and I confirm that I *do* see a small regression in performance from doing that. This patch only serves to confirm if the existing unlikely() macros are already giving us most of what we'd get from today's v4 patch, and the results do seem to confirm that. The 5GB scaled TPC-H test does show some performance gains from the v4 patch and shows an obvious regression from removing the unlikely() calls too. Based, mostly on the TPC-H results where performance did improve close to 2%, I'm starting to think it would be a good idea just to go for the v4 patch. It means that future hot elog/ereport calls should make it into the cold path. Currently, I'm just unsure how other CPUs will benefit from this. The 3990x I've been testing with is pretty new and has some pretty large caches. I suspect older CPUs may see larger gains. David [1] https://www.postgresql.org/message-id/CAKJS1f8yqRW3qx2CO9r4bqqvA2Vx68%3D3awbh8CJWTP9zXeoHMw%40mail.gmail.com
Вложения
В списке pgsql-hackers по дате отправления: