Re: slab allocator performance issues

Поиск
Список
Период
Сортировка
От Tomas Vondra
Тема Re: slab allocator performance issues
Дата
Msg-id 76ebb476-4060-393b-5bf1-0287ae1464bd@enterprisedb.com
обсуждение исходный текст
Ответ на Re: slab allocator performance issues  (Andres Freund <andres@anarazel.de>)
Ответы Re: slab allocator performance issues  (Tomas Vondra <tomas.vondra@enterprisedb.com>)
Список pgsql-hackers
On 8/1/21 11:07 PM, Andres Freund wrote:
> Hi,
> 
> On 2021-08-01 19:59:18 +0200, Tomas Vondra wrote:
>> In the attached .ods file with results, the "comparison" sheets are the
>> interesting ones - the last couple columns compare the main metrics for the
>> two patches (labeled patch-1 and patch-2) to master.
> 
> I assume with patch-1/2 you mean the ones after the benchmark patch
> itself?
> 

Yes, those are the two WIP patches you shared on 19/7.

> 
>> Overall, the results look quite good - patch-1 is mostly on par with master,
>> with maybe 5% variability in both directions. That's expected, considering
>> the patch does not aim to improve performance.
> 
> Not for slab anyway...
> 

Maybe the hot/cold separation could have some effect, but probably not 
for the workloads I've tested.

> 
>> The second patch brings some nice improvements - 30%-50% in most cases (for
>> both allocation and free) seems pretty nice. But for the "increase" FIFO
>> pattern (incrementally allocating/freeing more memory) there's a significant
>> regression - particularly for the allocation time. In some cases (larger
>> chunks, block size does not matter too much) it jumps from 25ms to almost
>> 200ms.
> 
> I'm not surprised to see some memory usage increase some, but that
> degree of time overhead does surprise me. ISTM there's something wrong.
> 

Yeah, the higher amount of allocated memory is due to the couple fields 
added to the SlabBlock struct, but even that only affects a single case 
with 480B chunks and 1kB blocks. Seems fine to me, especially if we end 
up growing the slab blocks.

Not sure about the allocation time, though.

> It'd probably worth benchmarking the different improvements inside the
> WIP: slab performance. patch. There's some that I'd expect to be all
> around improvements, whereas others likely aren't quite that clear
> cut. I assume you'd prefer that I split the patch up?
> 

Yeah, if you split that patch into sensible parts, I'll benchmark those. 
Also, we can add more interesting workloads if you have some ideas.

> 
>> This seems unfortunate - the allocation pattern (FIFO, allocating more
>> memory over time) seems pretty common, and the slowdown is significant.
> 
> Did you analyze what causes the regressions?
> 

No, not yet. I'll run the same set of benchmarks for the Generation, 
discussed in the other thread, and then I'll investigate this. But if 
you split the patch, that'd probably help.


regards

-- 
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: Replace l337sp34k in comments.
Следующее
От: David Rowley
Дата:
Сообщение: Re: Record a Bitmapset of non-pruned partitions