RE: First attempt at rocksdb monitor store stress testing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi mark, 

I am looking forward to your results on SSDs .
rocksdb generates a crc of data to be written , this cannot be switch off (but can be subsititued with xxhash),  there are two options , Option. verify_checksums_in_compaction and ReadOptions. verify_checksums,  If we disable these two options , i think cpu usage will goes down . If we use universal compaction , this is not friendly with read operation.

Btw , can you list your rocksdb configuration?

Cheers,
xinxin

-----Original Message-----
From: Mark Nelson [mailto:mark.nelson@xxxxxxxxxxx] 
Sent: Friday, July 25, 2014 7:45 AM
To: Shu, Xinxin; ceph-devel@xxxxxxxxxxxxxxx
Subject: Re: First attempt at rocksdb monitor store stress testing

Earlier today I modified the rocksdb options so I could enable universal compaction.  Over all performance is lower but I don't see the hang/stall in the middle of the test either.  Instead the disk is basically pegged with 100% writes.  I suspect average latency is higher than leveldb, but the highest latency is about 5-6s while we were seeing 30s spikes for leveldb with levelled (heh) compaction.

I haven't done much tuning either way yet.  It may be that if we keep level 0 and level 1 roughly the same size we can reduce stalls in the levelled setups.  It will also be interesting to see what happens in these tests on SSDs.

Mark

On 07/24/2014 06:13 AM, Mark Nelson wrote:
> Hi Xinxin,
>
> Thanks! I wonder as well if it might be interesting to expose the 
> options related to universal compaction?  It looks like rocksdb 
> provides a lot of interesting knobs you can adjust!
>
> Mark
>
> On 07/24/2014 12:08 AM, Shu, Xinxin wrote:
>> Hi mark,
>>
>> I think this maybe related to 'verify_checksums' config option ,when 
>> ReadOptions is initialized, default this option is  true , all data 
>> read from underlying storage will be verified against corresponding 
>> checksums,  however,  this option cannot be configured in wip-rocksdb 
>> branch. I will modify code to make this option configurable .
>>
>> Cheers,
>> xinxin
>>
>> -----Original Message-----
>> From: ceph-devel-owner@xxxxxxxxxxxxxxx 
>> [mailto:ceph-devel-owner@xxxxxxxxxxxxxxx] On Behalf Of Mark Nelson
>> Sent: Thursday, July 24, 2014 7:14 AM
>> To: ceph-devel@xxxxxxxxxxxxxxx
>> Subject: First attempt at rocksdb monitor store stress testing
>>
>> Hi Guys,
>>
>> So I've been interested lately in leveldb 99th percentile latency 
>> (and the amount of write amplification we are seeing) with leveldb. 
>> Joao mentioned he has written a tool called mon-store-stress in 
>> wip-leveldb-misc to try to provide a means to roughly guess at what's 
>> happening on the mons under heavy load.  I cherry-picked it over to 
>> wip-rocksdb and after a couple of hacks was able to get everything 
>> built and running with some basic tests.  There was little tuning 
>> done and I don't know how realistic this workload is, so don't assume 
>> this means anything yet, but some initial results are here:
>>
>> http://nhm.ceph.com/mon-store-stress/First%20Attempt.pdf
>>
>> Command that was used to run the tests:
>>
>> ./ceph-test-mon-store-stress --mon-keyvaluedb <leveldb|rocksdb> 
>> --write-min-size 50K --write-max-size 2M --percent-write 70 
>> --percent-read 30 --keep-state --test-seed 1406137270 --stop-at 5000 
>> foo
>>
>> The most interesting bit right now is that rocksdb seems to be 
>> hanging in the middle of the test (left it running for several 
>> hours).  CPU usage on one core was quite high during the hang.  
>> Profiling using perf with dwarf symbols I see:
>>
>> -  49.14%  ceph-test-mon-s  ceph-test-mon-store-stress  [.] unsigned 
>> int 
>> rocksdb::crc32c::ExtendImpl<&rocksdb::crc32c::Fast_CRC32>(unsigned
>> int, char const*, unsigned long)
>>      - unsigned int
>> rocksdb::crc32c::ExtendImpl<&rocksdb::crc32c::Fast_CRC32>(unsigned
>> int, char const*, unsigned long)
>>           51.70% 
>> rocksdb::ReadBlockContents(rocksdb::RandomAccessFile*,
>> rocksdb::Footer const&, rocksdb::ReadOptions const&, 
>> rocksdb::BlockHandle const&, rocksdb::BlockContents*, rocksdb::Env*,
>> bool)
>>           48.30%
>> rocksdb::BlockBasedTableBuilder::WriteRawBlock(rocksdb::Slice const&, 
>> rocksdb::CompressionType, rocksdb::BlockHandle*)
>>
>> Not sure what's going on yet, may need to try to enable 
>> logging/debugging in rocksdb.  Thoughts/Suggestions welcome. :)
>>
>> Mark
>> --
>> To unsubscribe from this list: send the line "unsubscribe ceph-devel"
>> in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo 
>> info at  http://vger.kernel.org/majordomo-info.html
>>
>

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux