Skip to content
Skillv1.0.0

tuning

系统调优

by chaterm(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from chaterm/terminal-skills (performance/tuning/SKILL.md). Install upstream with npx skills add chaterm/terminal-skills --skill tuning. Copyright stays with the author.

系统调优

概述

内核参数、文件系统、网络优化技能。

内核参数调优

内存管理

# /etc/sysctl.d/99-memory.conf

# 减少交换倾向
vm.swappiness = 10

# 脏页刷新
vm.dirty_ratio = 20
vm.dirty_background_ratio = 5

# 内存过量提交
vm.overcommit_memory = 1
vm.overcommit_ratio = 80

# 最大内存映射数
vm.max_map_count = 262144

# 应用
sysctl -p /etc/sysctl.d/99-memory.conf

网络调优

# /etc/sysctl.d/99-network.conf

# TCP 缓冲区
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# 连接队列
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535

# TIME_WAIT
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_tw_buckets = 65535

# 端口范围
net.ipv4.ip_local_port_range = 1024 65535

# Keep-Alive
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3

文件系统

# /etc/sysctl.d/99-fs.conf

# 文件句柄
fs.file-max = 2097152
fs.nr_open = 2097152

# inotify
fs.inotify.max_user_watches = 524288
fs.inotify.max_user_instances = 512

文件描述符限制

ulimit 配置

# /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

root soft nofile 65535
root hard nofile 65535

systemd 服务

# /etc/systemd/system/myapp.service.d/limits.conf
[Service]
LimitNOFILE=65535
LimitNPROC=65535

磁盘 IO 调优

IO 调度器

# 查看当前调度器
cat /sys/block/sda/queue/scheduler

# 设置调度器
echo deadline > /sys/block/sda/queue/scheduler
echo noop > /sys/block/sda/queue/scheduler      # SSD
echo mq-deadline > /sys/block/nvme0n1/queue/scheduler

# 永久设置 (GRUB)
GRUB_CMDLINE_LINUX="elevator=deadline"

预读设置

# 查看预读
blockdev --getra /dev/sda

# 设置预读 (KB)
blockdev --setra 4096 /dev/sda

挂载选项

# /etc/fstab
# SSD 优化
/dev/sda1 /data ext4 defaults,noatime,nodiratime,discard 0 2

# 数据库优化
/dev/sdb1 /mysql ext4 defaults,noatime,barrier=0 0 2

CPU 调优

CPU 频率

# 查看调速器
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

# 设置性能模式
cpupower frequency-set -g performance

# 或直接设置
echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

NUMA 优化

# 查看 NUMA 信息
numactl --hardware
numastat

# 绑定 NUMA 节点
numactl --cpunodebind=0 --membind=0 ./program

# 查看进程 NUMA 分布
numastat -p PID

CPU 亲和性

# 查看亲和性
taskset -p PID

# 设置亲和性
taskset -c 0-3 ./program
taskset -pc 0-3 PID

常见场景

场景 1:Web 服务器优化

# /etc/sysctl.d/99-web.conf
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.core.netdev_max_backlog = 65535

# 文件描述符
fs.file-max = 2097152

场景 2:数据库服务器优化

# /etc/sysctl.d/99-database.conf
vm.swappiness = 1
vm.dirty_ratio = 40
vm.dirty_background_ratio = 10
vm.overcommit_memory = 1

# 大页内存
vm.nr_hugepages = 1024

场景 3:高并发优化

#!/bin/bash
# 一键优化脚本

# 网络
sysctl -w net.core.somaxconn=65535
sysctl -w net.ipv4.tcp_max_syn_backlog=65535
sysctl -w net.ipv4.ip_local_port_range="1024 65535"

# 文件
sysctl -w fs.file-max=2097152

# 内存
sysctl -w vm.swappiness=10

调优检查

项目 检查命令
文件限制 ulimit -n
网络参数 sysctl -a | grep net
内存参数 sysctl -a | grep vm
IO 调度 cat /sys/block/*/queue/scheduler

故障排查

# 检查当前限制
cat /proc/PID/limits

# 检查打开文件数
ls /proc/PID/fd | wc -l
lsof -p PID | wc -l

# 检查网络连接
ss -s
netstat -an | awk '/tcp/ {print $6}' | sort | uniq -c

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/chaterm-terminal-skills-tuning/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

chaterm-terminal-skills-tuning.ocm.jsonjson
{
  "ocm": "1",
  "id": "chaterm-terminal-skills-tuning",
  "kind": "skill",
  "name": "tuning",
  "description": "系统调优",
  "publisher": "chaterm",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "performance",
      "tuning",
      "sysctl",
      "kernel",
      "optimization",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "系统调优"
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/chaterm/terminal-skills",
      "path": "performance/tuning/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/chaterm/terminal-skills/blob/HEAD/performance/tuning/SKILL.md",
      "key": "chaterm/terminal-skills/performance/tuning/SKILL.md"
    }
  },
  "instructions": "# 系统调优\n\n## 概述\n内核参数、文件系统、网络优化技能。\n\n## 内核参数调优\n\n### 内存管理\n```bash\n# /etc/sysctl.d/99-memory.conf\n\n# 减少交换倾向\nvm.swappiness = 10\n\n# 脏页刷新\nvm.dirty_ratio = 20\nvm.dirty_background_ratio = 5\n\n# 内存过量提交\nvm.overcommit_memory = 1\nvm.overcommit_ratio = 80\n\n# 最大内存映射数\nvm.max_map_count = 262144\n\n# 应用\nsysctl -p /etc/sysctl.d/99-memory.conf\n```\n\n### 网络调优\n```bash\n# /etc/sysctl.d/99-network.conf\n\n# TCP 缓冲区\nnet.core.rmem_max = 16777216\nnet.core.wmem_max = 16777216\nnet.ipv4.tcp_rmem = 4096 87380 16777216\nnet.ipv4.tcp_wmem = 4096 65536 16777216\n\n# 连接队列\nnet.core.somaxconn = 65535\nnet.core.netdev_max_backlog = 65535\nnet.i",
  "cost": {
    "context_tokens": 879
  }
}

Fetch it by URL: GET /api/v1/registry/chaterm-terminal-skills-tuning/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.