docs/en/administration/management/BE_parameters/log_server_meta.md
import BEConfigMethod from '../../../_assets/commonMarkdown/BE_config_method.mdx'
import CNConfigMethod from '../../../_assets/commonMarkdown/CN_config_method.mdx'
import PostBEConfig from '../../../_assets/commonMarkdown/BE_dynamic_note.mdx'
import StaticBEConfigNote from '../../../_assets/commonMarkdown/StaticBE_config_note.mdx'
You can view the BE configuration items using the following command:
SELECT * FROM information_schema.be_configs [WHERE NAME LIKE "%<name_pattern>%"]
This topic introduces the following types of FE configurations:
STACK_TRACE requests. When a diagnose request arrives, the daemon skips collecting and logging stack traces if the last collection happened less than diagnose_stack_trace_interval_ms milliseconds ago. Increase this value to reduce CPU overhead and log volume from frequent stack dumps; decrease it to capture more frequent traces to debug transient issues (for example, in load fail-point simulations of long TabletsChannel::add_chunk blocking).lake_replication_slow_log_ms * 1000. When triggered, StarRocks writes an INFO log with file size, cost and trace metrics for that replicated file. Increase the value to reduce noisy slow logs for large/slow transfers; decrease it to detect and surface smaller slow-copy events sooner.-1 and 0. -1 indicates that logs are not buffered in memory.${STARROCKS_HOME}/log${STARROCKS_HOME}/logTIME-DAY, TIME-HOUR, and SIZE-MB-size. The default value indicates that logs are segmented into rolls, each of which is 1 GB.true indicates to show timezone information, false indicates not to show.storage_engine,tablet_manager, StarRocks prints VLOG logs from the storage_engine.cpp and tablet_manager.cpp files. You can also use wildcards, e.g., set to * to print VLOG logs from all files. The VLOG log printing level is controlled by the sys_log_verbose_level parameter.> 0 and requested size > threshold), this flag controls how the process responds. If true, StarRocks calls std::abort() immediately (hard crash) when such a large allocation is detected. If false, the allocation is blocked and the allocator returns failure (nullptr or ENOMEM) so callers can handle the error. This check only takes effect for allocations that are not wrapped with the TRY_CATCH_BAD_ALLOC path (the mem hook uses a different flow when bad-alloc is being caught). Enable for fail-fast debugging of unexpected huge allocations; keep disabled in production unless you want an immediate process abort on over-large allocation attempts.-1 indicaes to disable the Arrow Flight service. On non-macOS builds, BE invokes Arrow Flight SQL Server with this port during startup; if the port is unavailable, the server startup fails and the BE process exits. The configured port is reported to the FE in the heartbeat payload."single""single" (Default): One persistent TCP connection for each channel."pooled": A pool of persistent connections for higher concurrency at the cost of more sockets/file descriptors."short": Short‑lived connections created per RPC to reduce persistent resource usage but with higher latency.
The choice affects per-socket buffering behavior and can influence Socket.Write failures (EOVERCROWDED) when unwritten bytes exceed socket limits.BrpcStubCache creates a StubPool whose _stubs vector is reserved to this size. On first accesses, new stubs are created until the limit is reached. After that, existing stubs are returned in a round‑robin fashion. Increasing this value raises per‑endpoint concurrency (reduces contention on a single channel) at the cost of more file descriptors, memory, and channels.-1 indicates the same number with the CPU threads.Socket.Write calls fail with EOVERCROWDED. This prevents unbounded per-connection memory growth but can cause RPC send failures for very large messages or slow peers. Align this value with brpc_max_body_size to ensure single-message bodies are not larger than the allowed unwritten buffer. Increasing the value raises memory usage per connection.true indicates compressing the row batches, and false indicates not compressing them.consistency_max_memory_limit (bytes) and (process_mem_limit * consistency_max_memory_limit_percent / 100). If process_mem_limit is unset (-1), consistency memory is considered unlimited. For consistency_max_memory_limit_percent, values less than 0 or greater than 100 are treated as 100. Adjusting this value increases or decreases memory reserved for consistency operations and therefore affects memory available for queries and other services.true, the MemPool chunk pooling is disabled so each allocation gets its own sized chunk instead of reusing or increasing pooled chunks. Disabling pooling reduces long-lived retained buffer memory at the cost of more frequent allocations, increased number of chunks, and skipped integrity checks (which are avoided because of the large chunk count). Keep disable_mem_pools as false (default) to benefit from allocation reuse and fewer system calls. Set it to true only when you must avoid large pooled memory retention (for example, low-memory environments or diagnostic runs).true, the BE's bRPC server is configured to use TLS: ServerOptions.ssl_options will be populated with the certificate and private key specified by ssl_certificate_path and ssl_private_key_path at BE startup. This enables HTTPS/TLS for incoming bRPC connections; clients must connect using TLS. Ensure the certificate and key files exist, are accessible to the BE process, and match bRPC/SSL expectations.true, the BE starts a background thread (jemalloc_tracker_daemon) that polls jemalloc statistics (once per second) and updates the GlobalEnv jemalloc metadata MemTracker with the jemalloc "stats.metadata" value. This ensures jemalloc metadata consumption is included in StarRocks process memory accounting and prevents under‑reporting of memory used by jemalloc internals. The tracker is only compiled/started on non‑macOS builds (#ifndef APPLE) and runs as a daemon thread named "jemalloc_tracker_daemon". Because this setting affects startup behaviour and threads that maintain MemTracker state, changing it requires a restart. Disable only if jemalloc is not used or when jemalloc tracking is intentionally managed differently; otherwise keep enabled to maintain accurate memory accounting and allocation safeguards.enable_system_metrics to control system-level metric collection.>0 that value is applied; if 0 the runtime callback uses the number of CPU cores (CpuInfo::num_cores()). On initialization the pool's max threads is computed as max(get_pindex_worker_count, max_apply_thread_cnt * 2) where max_apply_thread_cnt is the apply-thread pool maximum. Increase to raise parallelism for pindex loading; lowering reduces concurrency and memory/CPU usage.${UDF_RUNTIME_DIR}<local_library_dir>/pyworker_<pid>, and chdirs Python worker processes into this directory before exec. The directory must exist, be writable by the BE process, and reside on a filesystem that supports Unix domain sockets (i.e., a local filesystem). Because this config is immutable at runtime, set it before startup and ensure adequate permissions and disk space on each BE.max_transmit_batched_bytes or when EOS is reached. Increase this value to reduce RPC frequency and improve throughput at the cost of higher per-request latency and memory use; reduce it to lower latency and memory but increase RPC rate.(limit * memory_urgent_level / 100), BE triggers immediate memory reclamation, which forces data cache shrinkage, evicts update caches, and causes persistent/lake MemTables to be treated as "full" so they will be flushed/compacted soon. The code validates that this setting must be greater than memory_high_level, and memory_high_level must be greater or equal to 1, and less thant or equal to 100). A lower value causes more aggressive, earlier reclamation, that is, more frequent cache evictions and flushes. A higher value delays reclamation and risks OOM if too close to 100. Tune this item together with memory_high_level and Data Cache-related auto‑adjust settings.priority_networks is not specified. true indicates to allow the system to use an IPv6 address preferentially when the server that hosts the node has both IPv4 and IPv6 addresses and priority_networks is not specified./proc/cpuinfo and uses all available cores. If set to a positive integer, that value overrides the detected core count and becomes the effective core count. When running inside containers, cgroup cpuset or cpu quota settings can further restrict usable cores; CpuInfo also respects those cgroup limits.${STARROCKS_HOME}/pluginplugin_path should point to a directory accessible by the BE process (read and execute permissions) and must exist before plugins are loaded. Ensure correct ownership and that plugin files use the platform's native binary extension (for example, .so on Linux).10.10.10.0/24. If no IP address matches the entries in this list, an available IP address of the server will be randomly selected. From v3.3.0, StarRocks supports deployment based on IPv6. If the server has both IPv4 and IPv6 addresses, and this parameter is not specified, the system uses an IPv4 address by default. You can change this behavior by setting net_use_ipv6_when_priority_networks_empty to true.> rpc_compress_ratio_threshold. With the default 1.1, compressed data must be at least ~9.1% smaller than uncompressed to be used. Lower the value to prefer compression (more CPU for smaller bandwidth savings); raise it to avoid compression overhead unless it yields larger size reductions. Note: this applies to RPC/shuffle serialization and is effective only when row-batch compression is enabled (compress_rowbatches).enable_https is set to true, the system sets brpc::ServerOptions::ssl_options().default_cert.private_key to this path at process start. The file must be accessible by the BE process and must match the certificate provided by ssl_certificate_path. If this value is not set or the file is missing or unaccessible, HTTPS will not be configured and the bRPC server may fail to start. Protect this file with restrictive filesystem permissions (for example, 600).be_port and the Thrift server binds to this value; otherwise be_port is used. This configuration is deprecated — setting a non-zero thrift_port logs a warning advising to use be_port instead.thrift_client_timeout_ms.0 indicates the size is unlimited.true, the system allocates chunks using anonymous private mmap mappings (MAP_ANONYMOUS | MAP_PRIVATE) and frees them with munmap. Enabling this may create many virtual memory mappings, thus you must raise the kernel limit (as root user, running sysctl -w vm.max_map_count=262144 or echo 262144 > /proc/sys/vm/max_map_count), and set chunk_reserved_bytes_limit to a relatively large value. Otherwise, enabling mmap can cause very poor performance due to frequent mapping/unmapping.brpc::ServerOptions::ssl_options().default_cert.certificate; you must also set ssl_private_key_path to the matching private key. Provide the server certificate and any intermediate certificates in PEM format (certificate chain) if required by your CA. The file must be readable by the StarRocks BE process and is applied only at startup. If unset or invalid while enable_https is enabled, brpc TLS setup may fail and prevent the server from starting correctly.tablet_writer_open_rpc_timeout_sec and load_timeout_sec).retry_apply_interval_second * failed_attempts). The code also uses retry_apply_interval_second to compute the cumulative retry duration (arithmetic-series sum) which is compared against retry_apply_timeout_second to decide whether to keep retrying. Effective only when enable_retry_apply is true. Increasing this value lengthens both individual retry delays and the cumulative time spent retrying; decreasing it makes retries more frequent and may increase the number of attempts before reaching retry_apply_timeout_second.retry_apply_interval_second and compares the total duration against retry_apply_timeout_second. If enable_retry_apply is true and the error is considered retryable, apply attempts will be rescheduled until the accumulated backoff exceeds retry_apply_timeout_second; then apply stops and the tablet transitions to error. Explicitly non-retryable errors (e.g., Corruption) are not retried regardless of this setting. Tune this value to control how long StarRocks will keep retrying apply operations (default 7200s = 2 hours).thrift_rpc_timeout_ms on requests sent to FE (used in stream_load planning, loadTxnBegin/loadTxnPrepare/loadTxnCommit, and getLoadTxnStatus). If a connection has been pooled longer than this value it will be closed. When a per-request timeout (ctx->timeout_second) is provided, the BE computes the RPC timeout as rpc_timeout_ms = max(ctx1000/4, min(ctx1000/2, txn_commit_rpc_timeout_ms)), so the effective RPC timeout is bounded by the context and this configuration. Keep this consistent with FE's thrift_client_timeout_ms to avoid mismatched timeouts.