回答:首先调整操作系统参数:增大文件描述符(ulimit -n)、提升 net.core.somaxconn、调整 vm.swappiness(视是否允许交换)、设置 vm.overcommit_memory。为容器设置合理的 --memory 与 --memory-swap,配置 OOM 调整值。在分配器上,可考虑使用 jemalloc 或 tikv-jemalloc 来降低碎片并获取更好统计,或在高吞吐场景下尝试 tcmalloc。对大页和透明大页(hugepages)进行测试,某些场景能显著降低 TLB 缺失带来的开销。
回答:尽量减少临时分配:使用 Vec::with_capacity、预分配缓冲区、重用 buffer(如 bytes::BytesMut)、使用 smallvec、bumpalo 等 arena。避免频繁的 Arc 克隆与 Box

回答:IO 密集型偏向 async,CPU 密集型或阻塞操作用线程池(rayon 或 spawn_blocking)。若用 Tokio:按核数配置 worker-threads(tokio::runtime::Builder),限定 blocking 任务数,使用 spawn_blocking 处理同步阻塞。为高并发连接调优 accept 队列、启用 SO_REUSEPORT、调整线程亲和性。对延迟敏感的路径避免长时间占用 worker,使用 bounded channel 与信号量控制并发量。
回答:常用工具包括 cargo-flamegraph(CPU 火焰图)、perf、tokio-console(观察任务与资源)、heaptrack 或 jemalloc 的 prof(jeprof)做堆分析。在线上要开启采样型探针、Prometheus 指标(分配速率、RSS、线程数)、并定期抓取堆快照。排查时关注程序的持久集合、连接池泄露、未关闭的 socket 与 tokio task 泄露。远程分析结合 SSH、火焰图与堆分析可定位热点和泄露栈。
回答:香港节点常面向内地与亚太网络,延迟与带宽特征需考虑连接并发与内存占用的平衡:每个连接尽量减少内存占用(复用 buffer、控制读写窗口),使用连接池与 keepalive 减少握手开销;网络栈调优如 TCP_NODELAY、SO_RCVBUF、tcp_tw_reuse、增加 backlog 与文件描述符上限。实现应用级的背压与熔断,使用自适应并发限流(令牌桶或信号量)以在突发流量时避免 OOM 或线程耗尽。