mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2025-06-26 21:36:37 +02:00
upgrade some settings to enable 5g in continuwuity
enable converged 6g at the edge in continuwuity better stateinfo_cache_capacity default better roomid_spacehierarchy_cache_capacity make sender workers default better and clamp value to core count update sender workers documentation add more parallelism_scaled and make them public update 1 document
This commit is contained in:
parent
181c7c90bd
commit
4d12a3f6bb
3 changed files with 43 additions and 50 deletions
|
@ -1590,11 +1590,9 @@
|
||||||
#stream_amplification = 1024
|
#stream_amplification = 1024
|
||||||
|
|
||||||
# Number of sender task workers; determines sender parallelism. Default is
|
# Number of sender task workers; determines sender parallelism. Default is
|
||||||
# '0' which means the value is determined internally, likely matching the
|
# number of CPU cores. Override by setting a different value.
|
||||||
# number of tokio worker-threads or number of cores, etc. Override by
|
|
||||||
# setting a non-zero value.
|
|
||||||
#
|
#
|
||||||
#sender_workers = 0
|
#sender_workers = 4
|
||||||
|
|
||||||
# Enables listener sockets; can be set to false to disable listening. This
|
# Enables listener sockets; can be set to false to disable listening. This
|
||||||
# option is intended for developer/diagnostic purposes only.
|
# option is intended for developer/diagnostic purposes only.
|
||||||
|
|
|
@ -1823,12 +1823,10 @@ pub struct Config {
|
||||||
pub stream_amplification: usize,
|
pub stream_amplification: usize,
|
||||||
|
|
||||||
/// Number of sender task workers; determines sender parallelism. Default is
|
/// Number of sender task workers; determines sender parallelism. Default is
|
||||||
/// '0' which means the value is determined internally, likely matching the
|
/// '4'. Override by setting a different value. Values clamped 1 to core count.
|
||||||
/// number of tokio worker-threads or number of cores, etc. Override by
|
|
||||||
/// setting a non-zero value.
|
|
||||||
///
|
///
|
||||||
/// default: 0
|
/// default: 4
|
||||||
#[serde(default)]
|
#[serde(default = "default_sender_workers")]
|
||||||
pub sender_workers: usize,
|
pub sender_workers: usize,
|
||||||
|
|
||||||
/// Enables listener sockets; can be set to false to disable listening. This
|
/// Enables listener sockets; can be set to false to disable listening. This
|
||||||
|
@ -2059,45 +2057,47 @@ fn default_database_backups_to_keep() -> i16 { 1 }
|
||||||
|
|
||||||
fn default_db_write_buffer_capacity_mb() -> f64 { 48.0 + parallelism_scaled_f64(4.0) }
|
fn default_db_write_buffer_capacity_mb() -> f64 { 48.0 + parallelism_scaled_f64(4.0) }
|
||||||
|
|
||||||
fn default_db_cache_capacity_mb() -> f64 { 128.0 + parallelism_scaled_f64(64.0) }
|
fn default_db_cache_capacity_mb() -> f64 { 512.0 + parallelism_scaled_f64(512.0) }
|
||||||
|
|
||||||
fn default_pdu_cache_capacity() -> u32 { parallelism_scaled_u32(10_000).saturating_add(100_000) }
|
fn default_pdu_cache_capacity() -> u32 { parallelism_scaled_u32(50_000).saturating_add(500_000) }
|
||||||
|
|
||||||
fn default_cache_capacity_modifier() -> f64 { 1.0 }
|
fn default_cache_capacity_modifier() -> f64 { 1.0 }
|
||||||
|
|
||||||
fn default_auth_chain_cache_capacity() -> u32 {
|
fn default_auth_chain_cache_capacity() -> u32 {
|
||||||
parallelism_scaled_u32(10_000).saturating_add(100_000)
|
parallelism_scaled_u32(50_000).saturating_add(500_000)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_shorteventid_cache_capacity() -> u32 {
|
fn default_shorteventid_cache_capacity() -> u32 {
|
||||||
parallelism_scaled_u32(50_000).saturating_add(100_000)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn default_eventidshort_cache_capacity() -> u32 {
|
|
||||||
parallelism_scaled_u32(25_000).saturating_add(100_000)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn default_eventid_pdu_cache_capacity() -> u32 {
|
|
||||||
parallelism_scaled_u32(25_000).saturating_add(100_000)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn default_shortstatekey_cache_capacity() -> u32 {
|
|
||||||
parallelism_scaled_u32(10_000).saturating_add(100_000)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn default_statekeyshort_cache_capacity() -> u32 {
|
|
||||||
parallelism_scaled_u32(10_000).saturating_add(100_000)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn default_servernameevent_data_cache_capacity() -> u32 {
|
|
||||||
parallelism_scaled_u32(100_000).saturating_add(500_000)
|
parallelism_scaled_u32(100_000).saturating_add(500_000)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_stateinfo_cache_capacity() -> u32 { parallelism_scaled_u32(100) }
|
fn default_eventidshort_cache_capacity() -> u32 {
|
||||||
|
parallelism_scaled_u32(100_000).saturating_add(500_000)
|
||||||
|
}
|
||||||
|
|
||||||
fn default_roomid_spacehierarchy_cache_capacity() -> u32 { parallelism_scaled_u32(1000) }
|
fn default_eventid_pdu_cache_capacity() -> u32 {
|
||||||
|
parallelism_scaled_u32(50_000).saturating_add(500_000)
|
||||||
|
}
|
||||||
|
|
||||||
fn default_dns_cache_entries() -> u32 { 32768 }
|
fn default_shortstatekey_cache_capacity() -> u32 {
|
||||||
|
parallelism_scaled_u32(50_000).saturating_add(500_000)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn default_statekeyshort_cache_capacity() -> u32 {
|
||||||
|
parallelism_scaled_u32(50_000).saturating_add(500_000)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn default_servernameevent_data_cache_capacity() -> u32 {
|
||||||
|
parallelism_scaled_u32(200_000).saturating_add(500_000)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn default_stateinfo_cache_capacity() -> u32 {
|
||||||
|
parallelism_scaled_u32(500).clamp(100, 12000) }
|
||||||
|
|
||||||
|
fn default_roomid_spacehierarchy_cache_capacity() -> u32 {
|
||||||
|
parallelism_scaled_u32(500).clamp(100, 12000) }
|
||||||
|
|
||||||
|
fn default_dns_cache_entries() -> u32 { 327680 }
|
||||||
|
|
||||||
fn default_dns_min_ttl() -> u64 { 60 * 180 }
|
fn default_dns_min_ttl() -> u64 { 60 * 180 }
|
||||||
|
|
||||||
|
@ -2286,14 +2286,13 @@ fn default_admin_log_capture() -> String {
|
||||||
fn default_admin_room_tag() -> String { "m.server_notice".to_owned() }
|
fn default_admin_room_tag() -> String { "m.server_notice".to_owned() }
|
||||||
|
|
||||||
#[allow(clippy::as_conversions, clippy::cast_precision_loss)]
|
#[allow(clippy::as_conversions, clippy::cast_precision_loss)]
|
||||||
fn parallelism_scaled_f64(val: f64) -> f64 { val * (sys::available_parallelism() as f64) }
|
pub fn parallelism_scaled_f64(val: f64) -> f64 { val * (sys::available_parallelism() as f64) }
|
||||||
|
|
||||||
fn parallelism_scaled_u32(val: u32) -> u32 {
|
pub fn parallelism_scaled_u32(val: u32) -> u32 { val.saturating_mul(sys::available_parallelism() as u32) }
|
||||||
let val = val.try_into().expect("failed to cast u32 to usize");
|
|
||||||
parallelism_scaled(val).try_into().unwrap_or(u32::MAX)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn parallelism_scaled(val: usize) -> usize { val.saturating_mul(sys::available_parallelism()) }
|
pub fn parallelism_scaled_i32(val: i32) -> i32 { val.saturating_mul(sys::available_parallelism() as i32) }
|
||||||
|
|
||||||
|
pub fn parallelism_scaled(val: usize) -> usize { val.saturating_mul(sys::available_parallelism()) }
|
||||||
|
|
||||||
fn default_trusted_server_batch_size() -> usize { 256 }
|
fn default_trusted_server_batch_size() -> usize { 256 }
|
||||||
|
|
||||||
|
@ -2313,6 +2312,8 @@ fn default_stream_width_scale() -> f32 { 1.0 }
|
||||||
|
|
||||||
fn default_stream_amplification() -> usize { 1024 }
|
fn default_stream_amplification() -> usize { 1024 }
|
||||||
|
|
||||||
|
fn default_sender_workers() -> usize { 4 }
|
||||||
|
|
||||||
fn default_client_receive_timeout() -> u64 { 75 }
|
fn default_client_receive_timeout() -> u64 { 75 }
|
||||||
|
|
||||||
fn default_client_request_timeout() -> u64 { 180 }
|
fn default_client_request_timeout() -> u64 { 180 }
|
||||||
|
|
|
@ -401,16 +401,10 @@ impl Service {
|
||||||
|
|
||||||
fn num_senders(args: &crate::Args<'_>) -> usize {
|
fn num_senders(args: &crate::Args<'_>) -> usize {
|
||||||
const MIN_SENDERS: usize = 1;
|
const MIN_SENDERS: usize = 1;
|
||||||
// Limit the number of senders to the number of workers threads or number of
|
// Limit the maximum number of senders to the number of cores.
|
||||||
// cores, conservatively.
|
let max_senders = available_parallelism();
|
||||||
let max_senders = args
|
|
||||||
.server
|
|
||||||
.metrics
|
|
||||||
.num_workers()
|
|
||||||
.min(available_parallelism());
|
|
||||||
|
|
||||||
// If the user doesn't override the default 0, this is intended to then default
|
// default is 4 senders. clamp between 1 and core count.
|
||||||
// to 1 for now as multiple senders is experimental.
|
|
||||||
args.server
|
args.server
|
||||||
.config
|
.config
|
||||||
.sender_workers
|
.sender_workers
|
||||||
|
|
Loading…
Add table
Reference in a new issue