Skip to content

Instantly share code, notes, and snippets.

View markhpc's full-sized avatar

Mark Nelson markhpc

  • Clyso
  • North Vancouver
View GitHub Profile
@markhpc
markhpc / gist:431b57767cfe4ae1edf32c34acd16734
Created October 11, 2022 15:03
qemu-kvm librbd 16k randread perf
11.25% qemu-kvm [vdso] [.] __vdso_clock_gettime ◆
7.50% qemu-kvm qemu-kvm [.] virtio_queue_empty ▒
5.83% tp_librbd libc-2.28.so [.] _int_malloc ▒
2.98% msgr-worker-0 libceph-common.so.0 [.] ceph_crc32c_sctp ▒
2.50% qemu-kvm qemu-kvm [.] aio_poll ▒
2.47% msgr-worker-1 libceph-common.so.0 [.] ceph_crc32c_sctp ▒
2.26% msgr-worker-2 libceph-common.so.0 [.] ceph_crc32c_sctp
Thread 3628345 (flusher) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)
+ 100.00% void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)
+ 100.00% pthread_cond_timedwait
Thread 3628342 (fn-radosclient) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
@markhpc
markhpc / gist:15af4d9cd7b1547ad1b8f2a9b75ca118
Created October 10, 2022 16:51
qemu process fio 16K random read
Thread 3628345 (flusher) - 1000 samples
+ 100.00% __clone
+ 100.00% start_thread
+ 100.00% ObjectCacher::FlusherThread::entry()
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread 3628342 (fn-radosclient) - 1000 samples
+ 100.00% __clone
+ 100.00% start_thread
66.68% 0.53% tp_osd_tp ceph-osd [.] OSD::ShardedOpWQ::_process
|
--66.19%--OSD::ShardedOpWQ::_process
|
|--60.23%--OSD::ShardedOpWQ::_process
| |
| |--57.83%--ceph::osd::scheduler::PGOpItem::run
| | |
| | |--57.15%--OSD::dequeue_op
| | | |
@markhpc
markhpc / gist:fa3984447cc12059b4ed1406d65a512b
Created September 15, 2022 11:59
perf snaptrim with flat_map ref_map
68.38% 0.09% tp_osd_tp ceph-osd [.] OSD::ShardedOpWQ::_process
|
--68.29%--OSD::ShardedOpWQ::_process
|
--67.47%--OSD::ShardedOpWQ::_process
|
|--35.56%--ceph::osd::scheduler::PGSnapTrim::run
| PrimaryLogPG::snap_trimmer
| |
| --35.56%--boost::statechart::state_machine<PrimaryLogPG::SnapTrimmer, PrimaryLogPG::NotTrimming, std::allocator<boost::statechart::none>, boost::statechart::null_exception_translator>::process_event
(gdb) bt
#0 0x00007f61a0af9d6a in tc_newarray () from /lib64/libtcmalloc.so.4
#1 0x0000564a191ccb2d in __gnu_cxx::new_allocator<std::_Rb_tree_node<unsigned long> >::allocate (this=0x7f6175774df0, __n=1)
at /usr/include/c++/8/ext/new_allocator.h:99
#2 std::allocator_traits<std::allocator<std::_Rb_tree_node<unsigned long> > >::allocate (__a=..., __n=1)
at /usr/include/c++/8/bits/alloc_traits.h:436
#3 std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_M_get_node (this=0x7f6175774df0) at /usr/include/c++/8/bits/stl_tree.h:588
#4 std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_M_create_node<unsigned long const&> (this=0x7f6175774df0) at /usr/include/c++/8/bits/stl_tree.h:642
#5 std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_M_emplace_unique<unsig
*** Snapshot 1 Example ***
2022-09-13T23:02:33.318+0000 7f2911c55700 0 bluestore.extentmap(0x562e8d4e3780) dup old_extents: 064, total_sbs: 064, [ref_map.size():sbs], [001:060], [002:000], [003:003]
2022-09-13T23:02:33.328+0000 7f2911454700 0 bluestore.extentmap(0x562e98642440) dup old_extents: 064, total_sbs: 064, [ref_map.size():sbs], [001:055], [002:002], [003:006]
2022-09-13T23:02:33.378+0000 7f2914c5b700 0 bluestore.extentmap(0x562e98094180) dup old_extents: 064, total_sbs: 064, [ref_map.size():sbs], [001:055]
2022-09-13T23:02:33.538+0000 7f290dc4d700 0 bluestore.extentmap(0x562e9948e440) dup old_extents: 064, total_sbs: 064, [ref_map.size():sbs], [001:058]
2022-09-13T23:02:33.678+0000 7f2911c55700 0 bluestore.extentmap(0x562e8d44fd00) dup old_extents: 064, total_sbs: 064, [ref_map.size():sbs], [001:059], [002:001]
2022-09-13T23:02:33.698+0000 7f2914c5b700 0 bluestore.extentmap(0x562e9890d780) dup old_extents: 064, total_sbs: 064, [ref_map.size():sbs], [001:058], [002:003]
2022-09-13T23:02:33.819+
60.90% 0.23% tp_osd_tp ceph-osd [.] OSD::ShardedOpWQ::_process
|
--60.67%--OSD::ShardedOpWQ::_process
|
|--58.15%--OSD::ShardedOpWQ::_process
| |
| |--30.99%--ceph::osd::scheduler::PGOpItem::run
| | |
| | --30.87%--OSD::dequeue_op
| | |
2022-09-13T15:48:06.330+0000 7f7d1f745700 -1 ../src/os/bluestore/bluestore_types.cc: In function 'void bluestore_extent_ref_map_t::put(uint64_t, uint32_t, PExtentVector*, bool*)' thread 7f7d1f745700 time 2022-09-13T15:48:06.316558+0000
../src/os/bluestore/bluestore_types.cc: 210: ceph_abort_msg("put on missing extent (nothing before)")
ceph version 10.0.4-83883-geead666690 (eead666690af633ea429b8f0eefc99933b510ed4) quincy (dev)
1: (ceph::__ceph_abort(char const*, int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0xe1) [0x560522002a98]
2: (bluestore_extent_ref_map_t::put(unsigned long, unsigned int, std::vector<bluestore_pextent_t, mempool::pool_allocator<(mempool::pool_index_t)5, bluestore_pextent_t> >*, bool*)+0x386) [0x56052269b896]
3: (BlueStore::_wctx_finish(BlueStore::TransContext*, boost::intrusive_ptr<BlueStore::Collection>&, boost::intrusive_ptr<BlueStore::Onode>, BlueStore::WriteContext*, std::set<BlueStore::SharedBlob*, std::less<BlueStore
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/local/bin/ceph-osd -c /tmp/cbt/ceph/ceph.conf -i 0 --pid-file=/var/run/cep'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f1cc85a8d6a in tc_newarray () from /lib64/libtcmalloc.so.4
[Current thread is 1 (Thread 0x7f1c9c22b700 (LWP 3397747))]
Missing separate debuginfos, use: yum debuginfo-install brotli-1.0.6-3.el8.x86_64 cyrus-sasl-lib-2.1.27-5.el8.x86_64 fmt-6.2.1-1.el8.x86_64 fuse-libs-2.9.7-15.el8.x86_64 glibc-2.28-196.el8.x86_64 gperftools-libs-2.7-9.el8.x86_64 keyutils-libs-1.5.10-9.el8.x86_64 krb5-libs-1.18.2-13.el8.x86_64 libaio-0.3.112-1.el8.x86_64 libblkid-2.32.1-35.el8.x86_64 libcom_err-1.45.6-2.el8.x86_64 libgcc-8.5.0-12.el8.x86_64 libibverbs-37.2-1.el8.x86_64 libidn2-2.2.0-1.el8.x86_64 libmount-2.32.1-35.el8.x86_64 libnl3-3.5.0-1.el8.x86_64 liboath-2.6.2-3.el8.x86_64 libpsl-0.20.2-6.el8.x86_64 librdmacm-37.2-1.el8.x86_64 libselinux-2.9-5.el