This repository has been archived on 2026-08-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
pve_toss_notes/PVE系统调整.md
T

203 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 0.必要条件
在 PVE 系统调整之前,请确保必要的软件包已经安装完成。
```bash
## 同步镜像仓库
apt update
## 安装系统软件
apt install htop lm-sensors neofetch fail2ban vim tmux unattended-upgrades apt-listchanges powermgmt-base
## 安装网络工具
apt install iperf iperf3 iftop net-tools ethtool
## 安装CPU调度调整工具
apt install cpufrequtils
```
本篇教程后续命令,均在 SSH 终端下完成。
## 1.Fail2ban 配置
安装好 `fail2ban` 后,检查其服务状态:
```bash
## 检查 Fail2ban 系统服务状态
systemctl status fail2ban.service
```
`Loaded` 行,检查是否存在 `enable`
```bash
## 参考输出
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-07-16 05:03:53 CST; 4 days ago
Docs: man:fail2ban(1)
Process: 777 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS)
Main PID: 792 (fail2ban-server)
Tasks: 5 (limit: 18904)
Memory: 13.3M
CPU: 4min 53.764s
CGroup: /system.slice/fail2ban.service
└─792 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Jul 16 05:03:53 hyper systemd[1]: Starting Fail2Ban Service...
Jul 16 05:03:53 hyper systemd[1]: Started Fail2Ban Service.
Jul 16 05:03:53 hyper fail2ban-server[792]: Server ready
```
其中第1个 `enable` 表示当前服务开机自动启动,第2个 `enable` 表示该软件的默认启用状态。
如果并非为双 `enable` 状态,需要用一下命名进行调整:
```bash
## 开机自启 fail2ban 服务
systemctl enable fail2ban.service
## 参考输出
Synchronizing state of fail2ban.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable fail2ban
Created symlink /etc/systemd/system/multi-user.target.wants/fail2ban.service → /lib/systemd/system/fail2ban.service.
```
执行完成后,再次通过前面的命令检查服务自启状态。
后续如果想查看 `Fail2ban` 有关 `sshd` 的执行状态,可使用如下命令:
```bash
## 检查 sshd 的执行情况
fail2ban-client status sshd
## 参考输出
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:
```
如果均为0,表示 PVE 系统没有 SSH 错误密码的尝试记录。
## 2.系统时区配置
如果在安装 PVE 系统时选错了时区,导致系统时间和北京时间不一致,可以使用以下命令修正:
```bash
## 修改系统时区
timedatectl set-timezone Asia/Shanghai
## 检查系统时间
date -R
## 参考输出
Wed, 20 Jul 2022 16:21:28 +0800
```
输出结果如果和北京时间一致,则代表修改正确。
## 3.CPU调度器配置
安装好 `cpufrequtils` 后,先检查当前 CPU 的调度器:
```bash
## 检查 CPU 当前调度器
cpufreq-info
## 参考输出
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
driver: intel_cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 20.0 us.
hardware limits: 800 MHz - 2.90 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
current policy: frequency should be within 800 MHz and 2.90 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 952 MHz.
```
这里面主要关注两个点:
- driver: intel_cpufreq
- current policy: governor "ondemand"
当然还有另外一个命令可以用来显示 CPU 调度器:
```bash
## 检查 CPU 当前调度器
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
## 参考输出
ondemand
```
驱动一般不建议手动调整,而 `governor "ondemand"` 则显示了当前 CPU 的调度器是什么。
接下来,我们需要了解当前系统的 CPU 支持的调度器有哪些:
```bash
## 检查 CPU 调度器支持情况
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
## 参考输出
conservative ondemand userspace powersave performance schedutil
```
这里有很多种调度器可供选择,至于每种调度器有什么优劣,欢迎大家深度挖掘。
本教程以使用 `schedutil` 调度器为演示。
使用 `vim` 编辑器来编辑 `cpufrequtils` 的配置文件:
```bash
## 修改 cpufrequtils 配置文件
vim /etc/init.d/cpufrequtils
## 找到 GOVERNOR="ondemand" 修改为以下内容
GOVERNOR="schedutil"
```
`i` 键进入编辑模式,`esc` 键退出编辑模式,`:wq` 命令保存退出。
因为该配置文件很长,教程中留下一份配置好文件 [Fox_PVE_Cpufrequtils.conf](https://gitee.com/callmer/pve_toss_notes/blob/master/src/Fox_PVE_Cpufrequtils.conf%20) ,以便对比。
修改完成后,需要重新启动 PVE 服务器来使参数生效。
PVE 服务器重启完成后记得重新检查当前 CPU 的调度器,看配置文件是否生效。
这里提供两个命令,分别来实时查看当前 CPU 的频率和内部温度传感器的数值:
```bash
## 查看 CPU 当前频率
watch cat /sys/devices/system/cpu/cpu[0-9]*/cpufreq/scaling_cur_freq
## 查看内部温度
watch sensors
```
## 4.PVE 定时重启配置
有时候我们需要让 PVE 服务器周期性的定时重启,则可使用以下命令:
```bash
## 编辑系统 crontab
crontab -l
## 选择 nano 编辑器,粘贴以下内容
0 5 1,16 * * /usr/sbin/reboot
```
这表示每月1、16号的5点0分执行系统重启命令。