当前位置: 首页 > news >正文

系统的性能优化

核心原则

监控先行:先分析瓶颈,再针对性优化

逐步调整:避免一次性修改过多参数。

稳定性优先:优化后需充分测试。

性能监控工具

top/htop: 实时查看cpu占用、MEM占用、LOAD AVERAGE系统负载

vmstat:r:等待CPU的进程数 >CPU表示过载

                si/so:Swap交换频率,频繁交换说明内存不足

iostat        查看磁盘I/O性能

netstat/ss        查看tcp连接数

sar -u 1 3 查看CPU使用率,每秒一次共三次

sar -r  查看内存使用历史

dstat  -cmsn 综合监控CPU、内存、网络、磁盘

CPU优化

调整进程优先级

nice -n 19 ./script.sh   # 启动低优先级进程
renice 19 -p PID         # 修改运行中进程的优先级

绑定CPU核心(减少上下文切换)

taskset -c 0,1 ./program  # 绑定到CPU0和CPU1

内核参数调整

kernel.sched_child_runs_first = 1  # 子进程优先调度

内存优化

调整Swap使用策略

# 修改/etc/sysctl.conf
vm.swappiness = 10        # 降低Swap使用倾向(0-100,默认60)
vm.vfs_cache_pressure = 50 # 减少inode缓存回收频率

禁用透明大页

echo never > /sys/kernel/mm/transparent_hugepage/enabled

磁盘I/O优化

# 查看当前调度器
cat /sys/block/sda/queue/scheduler
# 临时修改为deadline调度器(适用于SSD)
echo deadline > /sys/block/sda/queue/scheduler优化文件系统
# 挂载参数:noatime(不记录访问时间), data=writeback
UUID=xxx / ext4 defaults,noatime,data=writeback 0 1

网络优化

TCP参数调优

net.core.somaxconn = 4096       # 提高连接队列长度
net.ipv4.tcp_fin_timeout = 30   # 缩短TIME_WAIT超时
net.ipv4.tcp_tw_reuse = 1       # 允许重用TIME_WAIT连接

限制连接数

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 50 -j DROP

资源限制优化

ulimit

修改用户级限制

# 编辑/etc/security/limits.conf
* soft nofile 65535    # 文件描述符软限制
* hard nofile 65535    # 硬限制

cgroups(控制组)

限制进程资源

# 创建cgroup(需安装cgroup-tools)
cgcreate -g cpu,memory:/my_group
# 限制CPU使用为50%
cgset -r cpu.cfs_period_us=100000 -r cpu.cfs_quota_us=50000 my_group
# 限制内存为1GB
cgset -r memory.limit_in_bytes=1G my_group
# 将进程加入cgroup
cgexec -g cpu,memory:my_group ./program

安全与注意事项

备份配置文件:修改前备份 /etc/sysctl.conf/etc/security/limits.conf

灰度测试:先在测试环境验证参数调整效果。

避免过度优化:如无明确瓶颈,优先使用默认配置。

优化配置原则

精准定位瓶颈

使用 perf top 分析CPU热点。

通过 dmesg 检查内核OOM或I/O错误日志。

层级化调整

层级工具/方法
应用层代码优化、连接池配置
运行时JVM参数、Golang GC策略
操作系统sysctl、cgroups、ulimit
硬件/驱动升级SSD、调整RAID级别

自动化监控

# 使用Prometheus + Grafana监控模板
- node_exporter 采集系统指标  
- alertmanager 配置CPU/内存阈值告警  

常用命令速查表

命令作用
sar -u 1 3查看CPU使用率
vmstat 1监控内存和进程队列
iostat -xz 1分析磁盘I/O瓶颈
ss -s统计TCP连接状态
http://www.lryc.cn/news/571924.html

相关文章:

  • kettle好用吗?相较于国产ETL工具有哪些优劣之处?
  • git的使用——初步认识git和基础操作
  • 【Datawhale组队学习202506】零基础学爬虫 01 初始爬虫
  • Goursat问题解的公式推导
  • TikTok 矩阵如何快速涨粉
  • html中的table标签以及相关标签
  • 微信二次开发,对接智能客服逻辑
  • 百度下拉框出词技术解密:72小时出下拉词软件原理分享
  • 5G光网络新突破:<Light: Science Applications>报道可适应环境扰动的DRC实时校准技术
  • OpenStack 入门与实践
  • 激光雷达与视频融合(DeepFusion)的多模态高精度目标定位
  • PostgreSQL的扩展bloom
  • 数学建模会议笔记
  • STM32 HAL 库串口收发完全指南:从基础配置到实战应用
  • 标杆确立!永洪科技位于IDC报告Data Analytics领域象限排头位!
  • 操作系统期末复习--操作系统初识以及进程与线程
  • 实时中值滤波 + 低通滤波 示例程序(STM32环境)
  • CTF解题:[NSSCTF 2022 Spring Recruit]弱类型比较绕过
  • YOLOv11改进 | BiFormer注意力与C2PSA机制融合指南
  • Jupyter 是什么?基于浏览器的交互式计算环境
  • StartUML入门级使用教程——画Class类图
  • 系统思考与核心竞争力
  • vb逆向常用函数
  • Github的仓库使用方法的小白教程
  • 分布式顺序数据发生器
  • 国产服务器【银河麒麟v10】【CPU鲲鹏920】部署Nacos
  • 嵌入式自学第四十二天
  • 介绍下分布式ID的技术实现及应用场景
  • 轻量化分布式AGI架构:基于区块链构建终端神经元节点的互联网智脑
  • 【AI Study】第三天,NumPy(3)- 基础知识