mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-24 06:27:39 +00:00
config: Add config of mem-agent
Add config of mem-agent to configate the mem-agent. Fixes: #10625 Signed-off-by: Hui Zhu <teawater@antgroup.com>
This commit is contained in:
parent
692ded8f96
commit
cb86d700a6
@ -18,6 +18,44 @@ use crate::eother;
|
||||
/// agent name of Kata agent.
|
||||
pub const AGENT_NAME_KATA: &str = "kata";
|
||||
|
||||
#[derive(Default, Debug, Deserialize, Serialize, Clone)]
|
||||
pub struct MemAgent {
|
||||
#[serde(default, alias = "mem_agent_enable")]
|
||||
pub enable: bool,
|
||||
|
||||
#[serde(default)]
|
||||
pub memcg_disable: Option<bool>,
|
||||
#[serde(default)]
|
||||
pub memcg_swap: Option<bool>,
|
||||
#[serde(default)]
|
||||
pub memcg_swappiness_max: Option<u8>,
|
||||
#[serde(default)]
|
||||
pub memcg_period_secs: Option<u64>,
|
||||
#[serde(default)]
|
||||
pub memcg_period_psi_percent_limit: Option<u8>,
|
||||
#[serde(default)]
|
||||
pub memcg_eviction_psi_percent_limit: Option<u8>,
|
||||
#[serde(default)]
|
||||
pub memcg_eviction_run_aging_count_min: Option<u64>,
|
||||
|
||||
#[serde(default)]
|
||||
pub compact_disable: Option<bool>,
|
||||
#[serde(default)]
|
||||
pub compact_period_secs: Option<u64>,
|
||||
#[serde(default)]
|
||||
pub compact_period_psi_percent_limit: Option<u8>,
|
||||
#[serde(default)]
|
||||
pub compact_psi_percent_limit: Option<u8>,
|
||||
#[serde(default)]
|
||||
pub compact_sec_max: Option<i64>,
|
||||
#[serde(default)]
|
||||
pub compact_order: Option<u8>,
|
||||
#[serde(default)]
|
||||
pub compact_threshold: Option<u64>,
|
||||
#[serde(default)]
|
||||
pub compact_force_times: Option<u64>,
|
||||
}
|
||||
|
||||
/// Kata agent configuration information.
|
||||
#[derive(Debug, Deserialize, Serialize, Clone)]
|
||||
pub struct Agent {
|
||||
@ -98,6 +136,10 @@ pub struct Agent {
|
||||
/// container pipe size
|
||||
#[serde(default)]
|
||||
pub container_pipe_size: u32,
|
||||
|
||||
/// Memory agent configuration
|
||||
#[serde(default)]
|
||||
pub mem_agent: MemAgent,
|
||||
}
|
||||
|
||||
impl std::default::Default for Agent {
|
||||
@ -116,6 +158,7 @@ impl std::default::Default for Agent {
|
||||
health_check_request_timeout_ms: 90_000,
|
||||
kernel_modules: Default::default(),
|
||||
container_pipe_size: 0,
|
||||
mem_agent: MemAgent::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -115,6 +115,14 @@ pub struct TomlConfig {
|
||||
pub runtime: Runtime,
|
||||
}
|
||||
|
||||
macro_rules! mem_agent_kv_insert {
|
||||
($ma_cfg:expr, $key:expr, $map:expr) => {
|
||||
if let Some(n) = $ma_cfg {
|
||||
$map.insert($key.to_string(), n.to_string());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
impl TomlConfig {
|
||||
/// Load Kata configuration information from configuration files.
|
||||
///
|
||||
@ -204,6 +212,83 @@ impl TomlConfig {
|
||||
DEFAULT_AGENT_DBG_CONSOLE_PORT.to_string(),
|
||||
);
|
||||
}
|
||||
if cfg.mem_agent.enable {
|
||||
kv.insert("psi".to_string(), "1".to_string());
|
||||
kv.insert("agent.mem_agent_enable".to_string(), "1".to_string());
|
||||
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.memcg_disable,
|
||||
"agent.mem_agent_memcg_disable",
|
||||
kv
|
||||
);
|
||||
mem_agent_kv_insert!(cfg.mem_agent.memcg_swap, "agent.mem_agent_memcg_swap", kv);
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.memcg_swappiness_max,
|
||||
"agent.mem_agent_memcg_swappiness_max",
|
||||
kv
|
||||
);
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.memcg_period_secs,
|
||||
"agent.mem_agent_memcg_period_secs",
|
||||
kv
|
||||
);
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.memcg_period_psi_percent_limit,
|
||||
"agent.mem_agent_memcg_period_psi_percent_limit",
|
||||
kv
|
||||
);
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.memcg_eviction_psi_percent_limit,
|
||||
"agent.mem_agent_memcg_eviction_psi_percent_limit",
|
||||
kv
|
||||
);
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.memcg_eviction_run_aging_count_min,
|
||||
"agent.mem_agent_memcg_eviction_run_aging_count_min",
|
||||
kv
|
||||
);
|
||||
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.compact_disable,
|
||||
"agent.mem_agent_compact_disable",
|
||||
kv
|
||||
);
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.compact_period_secs,
|
||||
"agent.mem_agent_compact_period_secs",
|
||||
kv
|
||||
);
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.compact_period_psi_percent_limit,
|
||||
"agent.mem_agent_compact_period_psi_percent_limit",
|
||||
kv
|
||||
);
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.compact_psi_percent_limit,
|
||||
"agent.mem_agent_compact_psi_percent_limit",
|
||||
kv
|
||||
);
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.compact_sec_max,
|
||||
"agent.mem_agent_compact_sec_max",
|
||||
kv
|
||||
);
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.compact_order,
|
||||
"agent.mem_agent_compact_order",
|
||||
kv
|
||||
);
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.compact_threshold,
|
||||
"agent.mem_agent_compact_threshold",
|
||||
kv
|
||||
);
|
||||
mem_agent_kv_insert!(
|
||||
cfg.mem_agent.compact_force_times,
|
||||
"agent.mem_agent_compact_force_times",
|
||||
kv
|
||||
);
|
||||
}
|
||||
}
|
||||
Ok(kv)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user