centos context性能优化有哪些方法
小樊
40
2025-12-09 17:59:32
CentOS 性能优化方法总览
一 系统资源与内核参数
- 文件句柄与进程限制
- 提升系统最大句柄数:编辑 /etc/sysctl.conf 设置 fs.file-max(如:fs.file-max = 2097152),并执行 sysctl -p 生效。
- 提升用户会话限制:编辑 /etc/security/limits.conf(示例:* soft nofile 65535、* hard nofile 65535),重新登录后生效。
- 内存与虚拟内存
- 降低换页倾向:设置 vm.swappiness=10,减少不必要的 swap。
- 调整 VFS 缓存回收:设置 vm.vfs_cache_pressure=50,在元数据压力与缓存命中间折中。
- 网络与连接
- 扩大本地端口范围:net.ipv4.ip_local_port_range = 1024 65535。
- 增大监听队列与 SYN 队列:net.core.somaxconn = 4096、net.ipv4.tcp_max_syn_backlog = 16384。
- 启用端口复用与时间戳:net.ipv4.tcp_tw_reuse = 1、net.ipv4.tcp_timestamps = 1。
- 优化 TCP 缓冲区与内存阈值:net.core.rmem_max / wmem_max = 873200;net.ipv4.tcp_rmem/tcp_wmem = 32768 436600 873200;net.ipv4.tcp_mem = 786432 1048576 1572864(单位为页)。
- 缩短 KeepAlive 探测:net.ipv4.tcp_keepalive_time = 1800、tcp_keepalive_intvl = 30、tcp_keepalive_probes = 3。
- 提升网卡队列:net.core.netdev_max_backlog = 16384;必要时调整 net.ipv4.tcp_retries2 = 5 加速释放异常连接。
- 共享内存与信号量(数据库/中间件常用)
- 共享内存段上限:kernel.shmmax(如:68719476736 字节 ≈ 64GB)。
- 共享内存总页数:kernel.shmall(如:4294967296 页 ≈ 16TB,按页大小 4KB 计算)。
- 信号量集合:kernel.sem = 250 32000 32 128。
二 文件系统与存储 I/O
- 文件系统选型
- ext4:通用稳定;XFS:大文件/高并发更佳;Btrfs:快照/校验/压缩等高级特性(生产需评估稳定性与工具链)。
- 挂载与挂载选项
- 通用优化:defaults,noatime,nodiratime(减少元数据写)。
- ext4:创建时可用 -E lazy_itable_init=1 加速初始化;必要时评估 data=writeback(权衡一致性)。
- XFS:创建时增大日志提升元数据性能(如 -l size=128m);可按条带化场景对齐 I/O。
- I/O 调度器
- 机械盘:deadline 或 cfq;SSD/NVMe:noop 或 none(减少调度开销)。
- 缓存与缓存刷新
- 结合负载调优 vm.dirty_ratio / vm.dirty_background_ratio,避免抖动与长时间回写。
- SSD 优化
- 启用 TRIM:在 /etc/fstab 对应分区挂载选项加入 discard(或使用 fstrim 定期执行)。
- 分层与缓存
- 使用 LVM Cache / Bcache 以 SSD 加速 HDD 读写。
三 应用与容器运行时优化
- Java 应用
- 合理堆与元空间:如 -Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m。
- 选择并发友好的 GC:如 -XX:+UseG1GC;结合容器内存限制设置 -XX:MaxRAMPercentage 等避免 OOM。
- 容器与资源隔离
- 使用 cgroups 限制 CPU/内存/I/O;在 systemd 服务中设置 MemoryLimit=512M 等,防止单服务耗尽资源。
- NUMA 架构下用 numactl 绑定 CPU/内存,减少跨 NUMA 访问延迟。
- 前端与状态管理(若“context”指前端状态上下文)
- 使用 React.memo、useMemo、useCallback 减少不必要的重渲染;将全局状态拆分为多个 Context 降低更新波及范围。
四 监控 验证与回滚
- 资源与 I/O 监控
- 系统资源:top/htop、vmstat、free -h。
- 磁盘 I/O:iostat -x 1、iotop;必要时用 fio 做基准测试。
- 网络与连接:ss -s、netstat -s、必要时 tcpdump/wireshark 抓包分析。
- 变更流程
- 先备份关键配置(如 /etc/sysctl.conf、/etc/fstab、服务单元文件)。
- 先在测试环境验证;生产变更分批进行,记录 基线指标 与 变更前后对比。
- 建议通过 systemd 或 sysctl -p 应用变更,保留回滚方案;异常时优先恢复配置并重启相关服务。