On Wed, Aug 12, 2015 at 5:48 AM, Dałek, Piotr <[email protected]> wrote: >> -----Original Message----- >> From: [email protected] [mailto:ceph-devel- >> [email protected]] On Behalf Of Sage Weil >> Sent: Tuesday, August 11, 2015 10:11 PM >> >> I went ahead and implemented both of these pieces. See >> >> https://github.com/ceph/ceph/pull/5534 >> >> My benchmark numbers are highly suspect, but the approximate takeaway is >> that it's 2x faster for the simple microbenchmarks and does 1/3rd the >> allocations. But there is some weird interaction with the allocator going on >> for 16k allocations that I saw, so it needs some more careful benchmarking. > > 16k allocations aren't that common, actually. > Some time ago I took an alloc profile for raw_char and posix_aligned buffers, > and... > > [root@storage1 /]# sort buffer::raw_char-2143984.dat | uniq -c | sort -g > 1 12 > 1 33 > 1 393 > 1 41 > 2 473 > 2 66447 > 3 190 > 3 20 > 3 64 > 4 16 > 36 206 > 88 174 > 88 48 > 89 272 > 89 36 > 90 34 > 312 207 > 3238 208 > 32403 209 > 196300 210 > 360164 45
Since size is centralization, we could use a fixed size buffer pool to optimize this. The performance is outstanding as I perf. > > [root@storage1 /]# sort buffer::posix_aligned-2081990.dat | uniq -c | sort -g > 36 36864 > 433635 4096 > > So most common are very small (<255 bytes) allocs and CEPH_PAGE_SIZE allocs. > >> The other interesting thing is that either of these pieces in isolation >> seems to >> have a pretty decent benefit, but when combined the benefits are fully >> additive. >> >> It seems to be reasonably stable, though! > > I'm going to test them in my environment, because allocations and > deallocations alone, when done in "best-case pattern" (series of allocations > followed by series of frees not interleaved by frees/allocs), aren't a good > benchmark for memory allocators (actually, most allocators are specially > optimized for this case). > > > With best regards / Pozdrawiam > Piotr Dałek > > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to [email protected] > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Best Regards, Wheat -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
