mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-25 06:52:13 +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.
|
/// agent name of Kata agent.
|
||||||
pub const AGENT_NAME_KATA: &str = "kata";
|
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.
|
/// Kata agent configuration information.
|
||||||
#[derive(Debug, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Deserialize, Serialize, Clone)]
|
||||||
pub struct Agent {
|
pub struct Agent {
|
||||||
@ -98,6 +136,10 @@ pub struct Agent {
|
|||||||
/// container pipe size
|
/// container pipe size
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub container_pipe_size: u32,
|
pub container_pipe_size: u32,
|
||||||
|
|
||||||
|
/// Memory agent configuration
|
||||||
|
#[serde(default)]
|
||||||
|
pub mem_agent: MemAgent,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl std::default::Default for Agent {
|
impl std::default::Default for Agent {
|
||||||
@ -116,6 +158,7 @@ impl std::default::Default for Agent {
|
|||||||
health_check_request_timeout_ms: 90_000,
|
health_check_request_timeout_ms: 90_000,
|
||||||
kernel_modules: Default::default(),
|
kernel_modules: Default::default(),
|
||||||
container_pipe_size: 0,
|
container_pipe_size: 0,
|
||||||
|
mem_agent: MemAgent::default(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -115,6 +115,14 @@ pub struct TomlConfig {
|
|||||||
pub runtime: Runtime,
|
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 {
|
impl TomlConfig {
|
||||||
/// Load Kata configuration information from configuration files.
|
/// Load Kata configuration information from configuration files.
|
||||||
///
|
///
|
||||||
@ -204,6 +212,83 @@ impl TomlConfig {
|
|||||||
DEFAULT_AGENT_DBG_CONSOLE_PORT.to_string(),
|
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)
|
Ok(kv)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user