forked from Deuxfleurs/garage
Tune Sled configuration
- Make sled cache size and flush interval configurable - Set less agressive default values: - cache size 128MB instead of 1GB - Flush interval 2 seconds instead of .5 seconds
This commit is contained in:
parent
339c611789
commit
575726358c
2 changed files with 20 additions and 1 deletions
|
@ -40,7 +40,12 @@ pub async fn run_server(config_file: PathBuf) -> Result<(), Error> {
|
||||||
info!("Opening database...");
|
info!("Opening database...");
|
||||||
let mut db_path = config.metadata_dir.clone();
|
let mut db_path = config.metadata_dir.clone();
|
||||||
db_path.push("db");
|
db_path.push("db");
|
||||||
let db = sled::open(&db_path).expect("Unable to open sled DB");
|
let db = sled::Config::default()
|
||||||
|
.path(&db_path)
|
||||||
|
.cache_capacity(config.sled_cache_capacity)
|
||||||
|
.flush_every_ms(Some(config.sled_flush_every_ms))
|
||||||
|
.open()
|
||||||
|
.expect("Unable to open sled DB");
|
||||||
|
|
||||||
info!("Initialize RPC server...");
|
info!("Initialize RPC server...");
|
||||||
let mut rpc_server = RpcServer::new(config.rpc_bind_addr.clone(), config.rpc_tls.clone());
|
let mut rpc_server = RpcServer::new(config.rpc_bind_addr.clone(), config.rpc_tls.clone());
|
||||||
|
|
|
@ -26,6 +26,14 @@ pub struct Config {
|
||||||
/// Consul service name to use
|
/// Consul service name to use
|
||||||
pub consul_service_name: Option<String>,
|
pub consul_service_name: Option<String>,
|
||||||
|
|
||||||
|
/// Sled cache size, in bytes
|
||||||
|
#[serde(default = "default_sled_cache_capacity")]
|
||||||
|
pub sled_cache_capacity: u64,
|
||||||
|
|
||||||
|
/// Sled flush interval in milliseconds
|
||||||
|
#[serde(default = "default_sled_flush_every_ms")]
|
||||||
|
pub sled_flush_every_ms: u64,
|
||||||
|
|
||||||
/// Max number of concurrent RPC request
|
/// Max number of concurrent RPC request
|
||||||
#[serde(default = "default_max_concurrent_rpc_requests")]
|
#[serde(default = "default_max_concurrent_rpc_requests")]
|
||||||
pub max_concurrent_rpc_requests: usize,
|
pub max_concurrent_rpc_requests: usize,
|
||||||
|
@ -86,6 +94,12 @@ pub struct WebConfig {
|
||||||
pub index: String,
|
pub index: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn default_sled_cache_capacity() -> u64 {
|
||||||
|
128 * 1024 * 1024
|
||||||
|
}
|
||||||
|
fn default_sled_flush_every_ms() -> u64 {
|
||||||
|
2000
|
||||||
|
}
|
||||||
fn default_max_concurrent_rpc_requests() -> usize {
|
fn default_max_concurrent_rpc_requests() -> usize {
|
||||||
12
|
12
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue