From 908c9bc9efc302ac7a7b23d0de4f394b2268f2de Mon Sep 17 00:00:00 2001 From: sage Date: Mon, 27 Feb 2006 04:24:26 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@684 29311d96-e01e-0410-9327-a35deaab8ce9 --- ceph/Makefile | 73 ++++++++++++++++++++---------------------- ceph/common/Logger.cc | 2 +- ceph/config.cc | 19 ++++++++++- ceph/config.h | 5 +++ ceph/mds/MDBalancer.cc | 10 +++--- 5 files changed, 63 insertions(+), 46 deletions(-) diff --git a/ceph/Makefile b/ceph/Makefile index 9bc417e4ad6fc..eb296b4a0747c 100644 --- a/ceph/Makefile +++ b/ceph/Makefile @@ -41,26 +41,31 @@ MDS_OBJS= \ mds/MDLog.o\ mds/OSDMonitor.o +OSD_OBJS= \ + osd/PG.o\ + osd/ObjectStore.o\ + osd/FakeStore.o\ + osd/OSD.o + COMMON_OBJS= \ msg/Messenger.o\ msg/Dispatcher.o\ msg/error.o\ msg/HostMonitor.o\ - osd/FakeStore.o\ osd/Filer.o\ osd/OSDMap.o\ - osd/PG.o\ - osd/ObjectStore.o\ mds/MDCluster.o\ - ebofs.o\ common/Logger.o\ common/Clock.o\ common/Timer.o\ + ebofs.o\ config.o -SYN_OBJS = \ +CLIENT_OBJS= \ + client/Client.o\ client/SyntheticClient.o\ - client/Trace.o + client/Trace.o\ + client/Buffercache.o TCP_OBJS = \ msg/TCPMessenger.o\ @@ -83,56 +88,33 @@ gprof-helper.so: test/gprof-helper.c -# old test crap -import: mds. osd/OSD.o msg/FakeMessenger.o import.cc ${COMMON_OBJS} - ${CC} ${CFLAGS} ${LIBS} $^ -o $@ - -singleclient: mds.o osd/OSD.o fakesingleclient.o client/Client.o client/Buffercache.o msg/FakeMessenger.o fsck.o ${COMMON_OBJS} - ${CC} ${CFLAGS} ${LIBS} $^ -o $@ - -tp: osd/tp.o - ${CC} ${CFLAGS} ${LIBS} $^ -o $@ - -fuseclient: client/Client.o client/Buffercache.o client/fuse.o msg/FakeMessenger.o ${COMMON_OBJS} - ${CC} ${CFLAGS} ${LIBS} -lfuse $^ -o $@ - -fakemds: test/fakemds.cc msg/FakeMessenger.o fakeclient/FakeClient.o osd/OSD.o mds.o ${COMMON_OBJS} - ${CC} ${CFLAGS} ${LIBS} $^ -o $@ - -mpitest: test/mpitest.o msg/MPIMessenger.cc mds.o osd/OSD.o fakeclient/FakeClient.o ${COMMON_OBJS} - ${MPICC} ${CFLAGS} $^ -o $@ - -mttest: test/mttest.cc msg/MTMessenger.cc ${COMMON_OBJS} - ${MPICC} ${CFLAGS} ${LIBS} $^ -o $@ - - # fuse -fakefuse: fakefuse.cc mds.o client/Client.o client/Buffercache.o osd/OSD.o client/fuse.o msg/FakeMessenger.cc ${COMMON_OBJS} +fakefuse: fakefuse.cc mds.o client.o osd.o client/fuse.o msg/FakeMessenger.cc common.o ${CC} -pg ${CFLAGS} ${LIBS} -lfuse $^ -o $@ -tcpfuse: tcpfuse.cc mds.o client/Client.o client/Buffercache.o osd/OSD.o client/fuse.o ${TCP_OBJS} ${COMMON_OBJS} +tcpfuse: tcpfuse.cc mds.o client.o client/fuse.o ${TCP_OBJS} common.o ${MPICC} ${CFLAGS} ${LIBS} -lfuse $^ -o $@ -mpifuse: mpifuse.cc mds.o client/Client.o client/Buffercache.o osd/OSD.o client/fuse.o ${TCP_OBJS} ${COMMON_OBJS} +mpifuse: mpifuse.cc mds.o client.o client/fuse.o ${TCP_OBJS} common.o ${MPICC} ${CFLAGS} ${LIBS} -lfuse $^ -o $@ # synthetic workload -fakesyn: fakesyn.cc mds.o client/Client.o client/Buffercache.o osd/OSD.o msg/FakeMessenger.o ${COMMON_OBJS} ${SYN_OBJS} +fakesyn: fakesyn.cc mds.o client.o osd.o msg/FakeMessenger.o common.o ${CC} -pg ${CFLAGS} ${LIBS} $^ -o $@ -mpisyn: mpisyn.cc mds.o client/Client.o client/Buffercache.o osd/OSD.o msg/MPIMessenger.cc ${COMMON_OBJS} ${SYN_OBJS} +mpisyn: mpisyn.cc mds.o client.o osd.o msg/MPIMessenger.cc common.o ${MPICC} ${MPICFLAGS} ${MPILIBS} $^ -o $@ -tcpsyn: tcpsyn.cc mds.o client/Client.o client/Buffercache.o osd/OSD.o ${TCP_OBJS} ${COMMON_OBJS} ${SYN_OBJS} +tcpsyn: tcpsyn.cc mds.o client.o osd.o ${TCP_OBJS} common.o ${MPICC} ${MPICFLAGS} ${MPILIBS} $^ -o $@ # + obfs -fakesynobfs: fakesyn.cc mds.o client/Client.o client/Buffercache.o osd/OSD.cc osd/OBFSStore.o msg/FakeMessenger.o ${COMMON_OBJS} ${SYN_OBJS} - ${CC} -DUSE_OBFS ${CFLAGS} ${LIBS} $^ -o $@ ../uofs/uofs.a +fakesynobfs: fakesyn.cc mds.o client.o osd_obfs.o msg/FakeMessenger.o common.o + ${CC} -DUSE_OBFS ${CFLAGS} ${LIBS} $^ -o $@ -tcpsynobfs: tcpsyn.cc mds.o client/Client.o client/Buffercache.o osd/OSD.cc osd/OBFSStore.o ${TCP_OBJS} ${COMMON_OBJS} ${SYN_OBJS} - ${MPICC} -DUSE_OBFS ${MPICFLAGS} ${MPILIBS} $^ -o $@ ../uofs/uofs.a +tcpsynobfs: tcpsyn.cc mds.o client.o osd_obfs.o ${TCP_OBJS} common.o + ${MPICC} -DUSE_OBFS ${MPICFLAGS} ${MPILIBS} $^ -o $@ # ebofs @@ -146,6 +128,7 @@ test.ebofs: ebofs/test.ebofs.cc config.cc common/Clock.o ebofs.o ebofs: mkfs.ebofs test.ebofs + # libceph libceph.o: client/ldceph.o client/Client.o client/Buffercache.o ${TCP_OBJS} ${COMMON_OBJS} ${SYN_OBJS} ld -i ${LIBS} $^ -o $@ @@ -172,9 +155,21 @@ testmpi: test/testmpi.cc msg/MPIMessenger.cc config.o common/Timer.o common/cloc clean: rm -f *.o */*.o ${TARGETS} ${TEST_TARGETS} +common.o: ${COMMON_OBJS} + ld -i -o $@ $^ + ebofs.o: ${EBOFS_OBJS} ld -i -o $@ $^ +client.o: ${CLIENT_OBJS} + ld -i -o $@ $^ + +osd.o: ${OSD_OBJS} + ld -i -o $@ $^ + +osd_obfs.o: osd/OBFSStore.o osd/OSD.ccosd/PG.o osd/ObjectStore.o osd/FakeStore.o + ${MPICC} -DUSE_OBFS ${MPICFLAGS} ${MPILIBS} $^ -o $@ ../uofs/uofs.a + mds.o: ${MDS_OBJS} ld -i -o $@ $^ diff --git a/ceph/common/Logger.cc b/ceph/common/Logger.cc index 6551283e2405e..e2c7111f86001 100644 --- a/ceph/common/Logger.cc +++ b/ceph/common/Logger.cc @@ -116,7 +116,7 @@ long Logger::get(const char* key) logger_lock.Lock(); int i = type->lookup_key(key); long r = 0; - if (i >= 0) + if (i >= 0 && (int)vals.size() > i) r = vals[i]; logger_lock.Unlock(); return r; diff --git a/ceph/config.cc b/ceph/config.cc index 4a05dffabc57c..d524fe52e15d5 100644 --- a/ceph/config.cc +++ b/ceph/config.cc @@ -113,7 +113,7 @@ md_config_t g_conf = { mds_bal_replicate_threshold: 8000, mds_bal_unreplicate_threshold: 1000, - mds_bal_hash_threshold: 2000, + mds_bal_hash_threshold: 1000,//2000, mds_bal_unhash_threshold: 250, mds_bal_interval: 30, // seconds mds_bal_hash_interval: 5, // seconds @@ -121,6 +121,12 @@ md_config_t g_conf = { mds_bal_max: -1, mds_bal_max_until: -1, + mds_bal_min_start: .2, // if we need less than this, we don't do anything + mds_bal_need_min: .8, // take within this range of what we need + mds_bal_need_max: 1.2, + mds_bal_midchunk: .3, // any sub bigger than this taken in full + mds_bal_minchunk: .001, // never take anything smaller than this + mds_commit_on_shutdown: true, mds_shutdown_check: 0, //30, @@ -389,6 +395,17 @@ void parse_config_options(vector& args) else if (strcmp(args[i], "--mds_bal_max_until") == 0) g_conf.mds_bal_max_until = atoi(args[++i]); + else if (strcmp(args[i], "--mds_bal_min_start") == 0) + g_conf.mds_bal_min_start = atoi(args[++i]); + else if (strcmp(args[i], "--mds_bal_need_min") == 0) + g_conf.mds_bal_need_min = atoi(args[++i]); + else if (strcmp(args[i], "--mds_bal_need_max") == 0) + g_conf.mds_bal_need_max = atoi(args[++i]); + else if (strcmp(args[i], "--mds_bal_midchunk") == 0) + g_conf.mds_bal_midchunk = atoi(args[++i]); + else if (strcmp(args[i], "--mds_bal_minchunk") == 0) + g_conf.mds_bal_minchunk = atoi(args[++i]); + else if (strcmp(args[i], "--client_cache_size") == 0) g_conf.client_cache_size = atoi(args[++i]); else if (strcmp(args[i], "--client_cache_stat_ttl") == 0) diff --git a/ceph/config.h b/ceph/config.h index 6dd4e7b94e49f..f85dc77a36589 100644 --- a/ceph/config.h +++ b/ceph/config.h @@ -90,6 +90,11 @@ struct md_config_t { float mds_bal_idle_threshold; int mds_bal_max; int mds_bal_max_until; + float mds_bal_min_start; + float mds_bal_need_min; + float mds_bal_need_max; + float mds_bal_midchunk; + float mds_bal_minchunk; bool mds_commit_on_shutdown; int mds_shutdown_check; diff --git a/ceph/mds/MDBalancer.cc b/ceph/mds/MDBalancer.cc index cfbc3a8b49ed6..a4242cbabafdb 100644 --- a/ceph/mds/MDBalancer.cc +++ b/ceph/mds/MDBalancer.cc @@ -474,12 +474,12 @@ void MDBalancer::find_exports(CDir *dir, set& already_exporting) { double need = amount - have; - if (need < amount / 5) + if (need < amount * g_conf.mds_bal_min_start) return; // good enough! - double needmax = need * 1.2; - double needmin = need * .8; - double midchunk = need * .3; - double minchunk = need * .001; + double needmax = need * g_conf.mds_bal_need_max; + double needmin = need * g_conf.mds_bal_need_min; + double midchunk = need * g_conf.mds_bal_midchunk; + double minchunk = need * g_conf.mds_bal_minchunk; list bigger; multimap smaller; -- 2.39.5