centos dopra如何节省资源占用
小樊
35
2025-12-15 19:30:06
CentOS 系统节省资源占用的实用做法
先澄清概念与总体思路
- DOPRA并非一个特定的 Linux 发行版或软件名称,通常是某些厂商/组织的自定义术语。若你的环境是“基于 CentOS 的 DOPRA 定制系统”,可按下列通用的 CentOS 瘦身与性能优化思路执行,先测量再优化,避免一刀切改动。
快速定位瓶颈
- 先用“60 秒分析法”抓大不抓小:uptime、dmesg|tail、vmstat 1、mpstat -P ALL 1、pidstat 1、iostat -xz 1、free -m、sar -n DEV 1、sar -n TCP,ETCP 1、top。
- 针对热点继续深挖:用 perf 做 CPU 热点与调用栈分析;在 CentOS 7.6+ 可用 BCC/bpftrace 做低开销跟踪,定位短时函数与 I/O 放大点。
系统瘦身与常驻服务优化
- 遵循最小化原则:仅安装必需软件包,删除无用包与依赖,减少内核与用户态常驻内存。
- 精简开机自启:只保留关键服务(如 sshd、rsyslog、crond 等),关闭不需要的守护进程,降低 CPU 与内存的常驻占用。
- SSH 登录加速:关闭反向 DNS 解析,编辑 /etc/ssh/sshd_config 将 UseDNS no,执行 systemctl restart sshd 生效。
- 资源限制基线:在 /etc/security/limits.conf 设置合理的 nofile/nproc,避免“Too many open files/processes”与资源被单进程打满(示例值见下文“关键参数示例”)。
- 时间同步:启用 NTP/chrony 保证时钟准确,减少因时间漂移导致的重试与异常占用。
内核与内存关键参数
- 透明大页 THP:数据库/高并发服务建议关闭,降低合并/分裂大页带来的 CPU 抖动与延迟。
- echo never > /sys/kernel/mm/transparent_hugepage/enabled
- echo never > /sys/kernel/mm/transparent_hugepage/defrag
- CPU 调频:将 cpufreq 设为 performance,避免频繁升降频带来的抖动与额外功耗(需安装 cpupowerutils)。
- cpupower -c all frequency-set -g performance
- 虚拟内存与刷脏:在确保稳定性的前提下,针对 SSD/NVMe 可适当降低 dirty_ratio / dirty_background_ratio,加速回收、缩短 I/O 尾延迟(默认 20%/10%,调小需压测验证)。
- NUMA 与绑核:若应用对延迟敏感且存在跨 NUMA 访问,优先考虑在 BIOS 或内核启动参数层面关闭 NUMA,或用 numactl --interleave=all/–cpunodebind,–membind 做进程绑定,减少跨节点访问成本。
- swappiness:仅当物理内存充足且希望尽量使用内存缓存时,才考虑将 vm.swappiness 调低(如 10),避免不必要的换页;若应用本身会主动管理缓存,保持默认或略高更稳妥。
磁盘与网络 I/O 优化
- I/O 调度器:对 SSD/NVMe 优先使用 noop(或 mq-deadline),减少调度开销;机械盘可用 cfq 或 deadline 视负载而定。
- echo noop > /sys/block/${SSD_DEV_NAME}/queue/scheduler
- 文件系统挂载:对读多写少场景增加 noatime(隐含 nodiratime),减少元数据更新带来的写放大与 I/O 次数。
- 网卡与中断:用 ethtool -S 观察 drops/rx_fifo_errors 等丢包指标;若接收缓存偏小,用 ethtool -G 适度增大 RX/TX 环形缓冲;确认 RSS 多队列是否均衡,必要时结合中断亲和性与 irqbalance 做调优。
关键参数示例与生效方式
- 资源限制(/etc/security/limits.conf)
- 内核网络与文件句柄(/etc/sysctl.conf,执行 sysctl -p 生效)
- fs.file-max = 65535
- net.core.somaxconn = 32768
- net.ipv4.tcp_tw_reuse = 1
- net.ipv4.tcp_fin_timeout = 30
- net.ipv4.tcp_max_syn_backlog = 65535
- vm.swappiness = 10
- 生效与回滚建议
- 变更前备份配置文件;变更后分批重启服务或灰度重启主机;保留回滚方案;在测试环境充分压测验证稳定性与收益。