From: Mark Nelson <mark.nelson@inktank.com>
To: "Shu, Xinxin" <xinxin.shu@intel.com>,
"ceph-devel@vger.kernel.org" <ceph-devel@vger.kernel.org>
Subject: Re: First attempt at rocksdb monitor store stress testing
Date: Thu, 24 Jul 2014 18:45:22 -0500 [thread overview]
Message-ID: <53D19A92.3010000@inktank.com> (raw)
In-Reply-To: <53D0EA63.10107@inktank.com>
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@vger.kernel.org
>> [mailto:ceph-devel-owner@vger.kernel.org] On Behalf Of Mark Nelson
>> Sent: Thursday, July 24, 2014 7:14 AM
>> To: ceph-devel@vger.kernel.org
>> 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@vger.kernel.org More majordomo
>> info at http://vger.kernel.org/majordomo-info.html
>>
>
next prev parent reply other threads:[~2014-07-24 23:45 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-23 23:14 First attempt at rocksdb monitor store stress testing Mark Nelson
2014-07-24 5:08 ` Shu, Xinxin
2014-07-24 11:13 ` Mark Nelson
2014-07-24 23:45 ` Mark Nelson [this message]
2014-07-25 1:28 ` Shu, Xinxin
2014-07-25 12:08 ` Mark Nelson
2014-07-25 16:09 ` Mark Nelson
2014-07-28 4:45 ` Shu, Xinxin
2014-07-28 16:55 ` Mark Nelson
2014-07-31 1:59 ` Shu, Xinxin
2014-07-31 12:41 ` Mark Nelson
2014-07-31 2:00 ` Shu, Xinxin
2014-07-31 2:08 ` Sage Weil
2014-07-31 8:41 ` Shu, Xinxin
2014-07-31 8:58 ` Shu, Xinxin
2014-07-31 12:47 ` Mark Nelson
2014-08-01 22:30 ` Sage Weil
2014-08-05 5:19 ` Shu, Xinxin
2014-08-01 17:41 ` Mark Nelson
2014-07-30 17:34 ` Mark Nelson
2014-07-31 1:46 ` Shu, Xinxin
2014-07-31 12:30 ` Mark Nelson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53D19A92.3010000@inktank.com \
--to=mark.nelson@inktank.com \
--cc=ceph-devel@vger.kernel.org \
--cc=xinxin.shu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.