# 性能监控与优化

URL: https://caijiao.org/rockylinux/performance-tuning
Source: docs/rockylinux/performance-tuning.md
Description: 在 Rocky Linux 中进行系统性能监控与优化的实用指南，包括 CPU、内存、磁盘、网络分析工具以及常用调优方法。

在服务器或开发环境中，性能监控与优化是保持系统稳定运行的关键。

本文介绍在 **Rocky Linux** 上使用常见工具监控 CPU、内存、磁盘与网络性能，并提供实用的优化建议。

## 一、CPU 使用情况监控

### 1. 查看实时 CPU 使用率

```bash
top
```

常用快捷键：

| 快捷键 | 作用                      |
| ------ | ------------------------- |
| `1`    | 显示每个 CPU 核心使用情况 |
| `P`    | 按 CPU 使用率排序         |
| `q`    | 退出 top                  |

### 2. 使用 `htop` 提供更友好的界面

```bash
sudo dnf install -y htop
htop
```

`htop` 支持彩色显示、交互式终止进程和 CPU 核心可视化。

## 二、内存与交换空间监控

### 1. 查看内存使用情况

```bash
free -h
```

输出示例：

```
              total        used        free      shared  buff/cache   available
Mem:           7.6G        2.3G        3.8G        112M        1.5G        4.9G
Swap:          2.0G          0B        2.0G
```

### 2. 使用 `vmstat` 观察内存与进程状态

```bash
vmstat 2
```

每 2 秒刷新一次，可持续监控内存与 CPU。

## 三、磁盘性能与空间分析

### 1. 查看磁盘使用情况

```bash
df -h
```

### 2. 查看目录空间占用

```bash
du -sh /*
```

### 3. 分析磁盘 I/O 性能

安装 `iotop`：

```bash
sudo dnf install -y iotop
sudo iotop
```

显示每个进程的读写速度，有助于发现磁盘瓶颈。

### 4. 测试磁盘读写性能

```bash
sudo dnf install -y hdparm
sudo hdparm -Tt /dev/sda
```

## 四、网络性能与连接状态

### 1. 查看实时网络流量

```bash
sudo dnf install -y iftop
sudo iftop -i eth0
```

### 2. 检查端口监听与连接状态

```bash
sudo ss -tulnp
```

### 3. Ping 延迟与丢包检测

```bash
ping -c 5 8.8.8.8
```

### 4. 使用 `nload` 可视化网络流量

```bash
sudo dnf install -y nload
sudo nload
```

## 五、系统总体资源概览

### 使用 `dstat` 工具

```bash
sudo dnf install -y dstat
dstat -tcmnd
```

输出包括时间、CPU、内存、磁盘与网络的综合统计信息。

## 六、性能日志与分析工具

| 工具              | 作用                                      | 命令                    |
| ----------------- | ----------------------------------------- | ----------------------- |
| `sar`             | 系统活动报告，可生成 CPU/内存/IO 历史数据 | `sar -u 1 5`            |
| `pidstat`         | 按进程统计 CPU 使用率                     | `pidstat 1`             |
| `perf`            | 内核性能分析工具                          | `perf top`              |
| `systemd-analyze` | 分析系统启动时间                          | `systemd-analyze blame` |

安装命令：

```bash
sudo dnf install -y sysstat perf
```

## 七、系统优化建议

### 1. 调整 Swappiness（内存换页倾向）

默认值为 60，可改为 10 以减少磁盘交换：

```bash
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=10
```

永久修改：

```bash
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
```

### 2. 优化文件描述符限制

编辑 `/etc/security/limits.conf`：

```
* soft nofile 65535
* hard nofile 65535
```

### 3. 优化网络连接参数

编辑 `/etc/sysctl.conf`：

```bash
net.core.somaxconn = 1024
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_tw_reuse = 1
```

应用配置：

```bash
sudo sysctl -p
```

## 八、CPU 与 IO 调度优化

### 1. 查看当前调度策略

```bash
cat /sys/block/sda/queue/scheduler
```

### 2. 修改为性能优先模式（例如 `mq-deadline`）

```bash
echo mq-deadline | sudo tee /sys/block/sda/queue/scheduler
```

## 九、服务与守护进程优化

### 1. 禁用不必要的服务

列出所有开机启动项：

```bash
sudo systemctl list-unit-files --type=service
```

禁用不需要的服务：

```bash
sudo systemctl disable bluetooth.service
```

### 2. 使用 `tuned` 进行系统自动优化

```bash
sudo dnf install -y tuned
sudo systemctl enable --now tuned
sudo tuned-adm list
sudo tuned-adm profile throughput-performance
```

> 💡 tuned 会根据服务器类型（虚拟机、数据库、网络负载）自动优化 CPU、磁盘与内存参数。

## 十、总结

- 使用 `htop`、`iotop`、`iftop`、`nload` 实时监控系统性能
- 合理调整内核参数与服务数量可显著提升性能
- `tuned` 提供一键自动优化方案
- 对于关键业务系统，建议部署 **Prometheus + Grafana** 做长期性能可视化监控

> ✅ 提示：性能优化应遵循“**监控 → 分析 → 调整 → 验证**”的闭环原则，避免盲目调参造成系统不稳定。
