From 773b70685597ca7e93252a6d2c6aa5bd2786bebd Mon Sep 17 00:00:00 2001 From: sageweil Date: Thu, 13 Sep 2007 03:48:58 +0000 Subject: [PATCH] config tuning for lb; more aggressive journal replay git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1832 29311d96-e01e-0410-9327-a35deaab8ce9 --- trunk/ceph/config.cc | 25 +++++++++++++------------ trunk/ceph/config.h | 1 + trunk/ceph/osdc/Journaler.h | 3 ++- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/trunk/ceph/config.cc b/trunk/ceph/config.cc index 66461f8308b72..090ab4e781c89 100644 --- a/trunk/ceph/config.cc +++ b/trunk/ceph/config.cc @@ -188,15 +188,16 @@ md_config_t g_conf = { journaler_safe: false, // wait for COMMIT on journal writes journaler_write_head_interval: 15, journaler_cache: false, // cache writes for later readback + journaler_prefetch_periods: 50, // * journal object size (1~MB? see above) // --- mds --- mds_cache_size: MDS_CACHE_SIZE, mds_cache_mid: .7, - mds_decay_halflife: 10, + mds_decay_halflife: 5, - mds_beacon_interval: 10, //30.0, - mds_beacon_grace: 90, //60*60.0, + mds_beacon_interval: 4, //30.0, + mds_beacon_grace: 15, //60*60.0, mds_log: true, mds_log_max_len: MDS_CACHE_SIZE / 3, @@ -206,23 +207,23 @@ md_config_t g_conf = { mds_log_flush_on_shutdown: true, mds_log_eopen_size: 100, // # open inodes per log entry - mds_bal_sample_interval: 5.0, // every 5 seconds - mds_bal_replicate_threshold: 2000, + mds_bal_sample_interval: 3.0, // every 5 seconds + mds_bal_replicate_threshold: 8000, mds_bal_unreplicate_threshold: 0,//500, - mds_bal_split_size: 1000, - mds_bal_split_rd: 10000, + mds_bal_split_size: 10000, + mds_bal_split_rd: 25000, mds_bal_split_wr: 10000, mds_bal_merge_size: 50, mds_bal_merge_rd: 1000, mds_bal_merge_wr: 1000, - mds_bal_interval: 3000, // seconds + mds_bal_interval: 10, // seconds mds_bal_fragment_interval: 5, // seconds - mds_bal_idle_threshold: .1, + mds_bal_idle_threshold: 0, //.1, mds_bal_max: -1, mds_bal_max_until: -1, mds_bal_mode: 0, - mds_bal_min_rebalance: .2, // must be this much above average before we export anything + mds_bal_min_rebalance: .1, // must be this much above average before we export anything 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, @@ -301,8 +302,8 @@ md_config_t g_conf = { ebofs_idle_commit_ms: 0, // 0 = no idle detection. UGLY HACK. use bdev_idle_kick_after_ms instead. ebofs_oc_size: 10000, // onode cache ebofs_cc_size: 10000, // cnode cache - ebofs_bc_size: (80 *256), // 4k blocks, *256 for MB - ebofs_bc_max_dirty: (60 *256), // before write() will block + ebofs_bc_size: (60 *256), // 4k blocks, *256 for MB + ebofs_bc_max_dirty: (30 *256), // before write() will block ebofs_max_prefetch: 1000, // 4k blocks ebofs_realloc: false, // hrm, this can cause bad fragmentation, don't use! diff --git a/trunk/ceph/config.h b/trunk/ceph/config.h index 62565bb4b0001..220716f26e0df 100644 --- a/trunk/ceph/config.h +++ b/trunk/ceph/config.h @@ -181,6 +181,7 @@ struct md_config_t { bool journaler_safe; int journaler_write_head_interval; bool journaler_cache; + int journaler_prefetch_periods; // mds int mds_cache_size; diff --git a/trunk/ceph/osdc/Journaler.h b/trunk/ceph/osdc/Journaler.h index 094f740054d69..c6f8ec0867d28 100644 --- a/trunk/ceph/osdc/Journaler.h +++ b/trunk/ceph/osdc/Journaler.h @@ -167,7 +167,8 @@ public: // prefetch intelligently. // (watch out, this is big if you use big objects or weird striping) if (!fetch_len) - fetch_len = inode.layout.object_size*inode.layout.stripe_count; + fetch_len = inode.layout.object_size*inode.layout.stripe_count * + g_conf.journaler_prefetch_periods; if (!prefetch_from) prefetch_from = fetch_len / 2; } -- 2.39.5