X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ftools%2Fpsim.cc;fp=src%2Fceph%2Fsrc%2Ftools%2Fpsim.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=90e6fb95899fb27f775e4f3b2e45bb8d4875ddf4;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/tools/psim.cc b/src/ceph/src/tools/psim.cc deleted file mode 100644 index 90e6fb9..0000000 --- a/src/ceph/src/tools/psim.cc +++ /dev/null @@ -1,117 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab - -#include "osd/OSDMap.h" -#include "include/buffer.h" - -int main(int argc, char **argv) -{ - /* - * you need to create a suitable osdmap first. e.g., for 40 osds, - * $ ./osdmaptool --createsimple 40 --clobber .ceph_osdmap - */ - bufferlist bl; - std::string error; - if (bl.read_file(".ceph_osdmap", &error)) { - cout << argv[0] << ": error reading .ceph_osdmap: " << error << std::endl; - return 1; - } - OSDMap osdmap; - - try { - osdmap.decode(bl); - } catch (ceph::buffer::end_of_buffer &eob) { - cout << "Exception (end_of_buffer) in decode(), exit." << std::endl; - exit(1); - } - - //osdmap.set_primary_affinity(0, 0x8000); - //osdmap.set_primary_affinity(3, 0); - - int n = osdmap.get_max_osd(); - int count[n]; - int first_count[n]; - int primary_count[n]; - int size[4]; - - memset(count, 0, sizeof(count)); - memset(first_count, 0, sizeof(first_count)); - memset(primary_count, 0, sizeof(primary_count)); - memset(size, 0, sizeof(size)); - - for (int i=0; itype = pg_pool_t::TYPE_ERASURE; - - for (int n = 0; n < 10; n++) { // namespaces - char nspace[20]; - snprintf(nspace, sizeof(nspace), "n%d", n); - for (int f = 0; f < 5000; f++) { // files - for (int b = 0; b < 4; b++) { // blocks - char foo[20]; - snprintf(foo, sizeof(foo), "%d.%d", f, b); - object_t oid(foo); - ceph_object_layout l = osdmap.make_object_layout(oid, 0, nspace); - vector osds; - pg_t pgid = pg_t(l.ol_pgid); - //pgid.u.ps = f * 4 + b; - int primary; - osdmap.pg_to_acting_osds(pgid, &osds, &primary); - size[osds.size()]++; -#if 0 - if (0) { - hash H; - int x = H(oid); - x = ceph_stable_mod(x, 1023, 1023); - int s = crush_hash32(x) % 15; - //cout << "ceph_psim: x = " << x << " s = " << s << std::endl; - //osds[0] = s; - } -#endif - //osds[0] = crush_hash32(f) % n; - //cout << "oid " << oid << " pgid " << pgid << " on " << osds << std::endl; - for (unsigned i=0; i= 0) - primary_count[primary]++; - } - } - } - - uint64_t avg = 0; - for (int i=0; iget_pg_num() / (double)n; - double edev = sqrt(pgavg) * (double)avg / pgavg; - cout << " avg " << avg - << " stddev " << dev - << " (expected " << edev << ")" - << " (indep object placement would be " << sqrt(avg) << ")" << std::endl; - - for (int i=0; i<4; i++) { - cout << "size" << i << "\t" << size[i] << std::endl; - } - - return 0; -}