目录

Linux Tuned 性能调优总结

1. 引言

2. Tuned 基本原理

2.1 平均负载

2.2 动态调优与静态调优

2.3 配置文件结构

3. 预设配置文件

4. 自定义配置文件

5:tuned进程指令


Linux Tuned 性能调优总结

1. 引言

在 Linux 系统中,性能调优是一个重要的任务,尤其是在服务器和高性能计算环境中。Tuned 是一个开源的性能调优工具,旨在帮助系统管理员根据不同的应用场景和需求,动态或静态地调整系统参数,以达到最佳性能或功耗平衡。

2. Tuned 基本原理

Tuned 是一个基于 Python 的性能调优工具,通过分析系统负载和资源使用情况,动态调整内核参数、服务配置和硬件设置。它支持多种预设的调优配置文件(profiles),用户也可以根据需求自定义配置文件。

2.1 平均负载

在 Linux 系统中,平均负载(Load Average)是通过计算系统中正在运行或等待运行的任务数量的平均值来得到的。平均负载的计算基于系统运行队列中的任务数量,以及这些任务在特定时间间隔内的变化情况。

1. 平均负载的计算公式

Linux 系统中的平均负载是通过以下公式计算得到的:

Load Average= Number of CPUs/Number of running tasks+Number of tasks in the run queue

2. 时间间隔

Linux 系统通常会提供三个不同时间间隔的平均负载值:

1分钟平均负载:过去一分钟内的平均负载。

5分钟平均负载:过去五分钟内的平均负载。

15分钟平均负载:过去十五分钟内的平均负载。

3. 计算方法

平均负载的计算是通过指数加权移动平均(Exponentially Weighted Moving Average, EWMA)方法进行的。这种方法可以平滑地反映系统负载的变化趋势,避免因短时间内的负载波动而产生较大的影响。

3.1 指数加权移动平均公式

New Load Average=α×Current Load+(1−α)×Previous Load Average

其中:

α:权重因子,根据时间间隔的不同而不同。

Current Load:当前的系统负载。

Previous Load Average:上一次计算的平均负载。

4. 权重因子 α 的计算

权重因子 α 是根据时间间隔 t 和系统的时间常数 c 计算得到的:

α=e **-t/c

其中:

t:时间间隔,对于 1 分钟、5 分钟和 15 分钟的平均负载,t 分别为 60、300 和 900 秒。

c:系统的时间常数,通常设置为 60 秒。

5. 示例计算

假设当前系统中有 10 个正在运行的任务,5 个在运行队列中等待的任务,系统有 4 个 CPU。那么,当前的系统负载为:

Current Load= (10+5)/4=3.75

如果上一次计算的 1 分钟平均负载为 3.5,那么新的 1 分钟平均负载为:

α=e**-t/c=e**-1≈0.3679

New 1-minute Load Average=0.3679×3.75+(1−0.3679)×3.5≈3.606

6. 查看平均负载

在 Linux 系统中,可以通过以下命令查看平均负载:

$ uptime

18:30:00 up 2 days, 3:45,  1 user,  load average: 0.75, 0.50, 0.30

在这个例子中:

0.75 是过去一分钟的平均负载。

0.50 是过去五分钟的平均负载。

0.30 是过去十五分钟的平均负载。

2.2 动态调优与静态调优

动态调优:Tuned 根据实时系统负载动态调整参数,适合负载变化频繁的场景。

静态调优:应用预设或自定义的配置文件,一次性调整系统参数,适合负载相对稳定的场景。

默认情况下使用的静态调优,如果想要开启动态调优,可以在全局配置文件中的dynamic-tuning设为1

2.3 配置文件结构

Tuned 的配置文件通常位于 /etc/tuned/ 和 /usr/lib/tuned/ 目录下。每个配置文件包含一个或多个部分,如 [main]、[sysctl]、[cpu] 等,用于定义不同的调优策略。

-全局配置文件:定义了tuned进程全局行为和调优策略

              /etc/tuned/tuned-main.conf

下面介绍一下全局配置文件/etc/tuned/tuned-main.conf

-调优策略配置文件:定义了对应调优策略下的参数配置

                  /usr/lib/tuned/调优策略/tuned.conf

下面详细介绍一下调优策略的配置文件

powersave 配置文件通常包含以下部分:

 [main] 部分

这是配置文件的主部分,通常包含以下内容:

[main]

summary=Optimize for low power consumption

include=balanced

summary:描述该配置文件的目标,即优化低功耗。

include=balanced:继承 balanced 配置文件的设置,进一步在此基础上优化功耗。

[sysctl] 部分

该部分用于调整内核参数以优化功耗,例如:

[sysctl]

vm.swappiness = 10(默认值是60)

vm.dirty_ratio = 10(默认值是20)

vm.dirty_background_ratio = 5(默认值是10)

vm.swappiness=10:减少系统对交换空间的使用,避免不必要的磁盘 I/O 操作。

vm.dirty_ratio 和 vm.dirty_background_ratio:降低脏页写入磁盘的阈值,减少磁盘 I/O 活动。

 [cpu] 部分

该部分用于调整 CPU 相关的参数,例如:

[cpu]

governor=powersave

energy_perf_bias=balance_power

governor=powersave:将 CPU 调频策略设置为节能模式。

energy_perf_bias=balance_power:调整 CPU 的能耗与性能偏好,偏向节能。

[script] 部分

powersave 配置文件通常会包含一个脚本(如 script.sh),用于执行一些额外的节能操作,例如:

#!/bin/sh

. /usr/lib/tuned/functions

start() {

    [ "$USB_AUTOSUSPEND" = 1 ] && enable_usb_autosuspend

    enable_wifi_powersave

    return 0

}

stop() {

    [ "$USB_AUTOSUSPEND" = 1 ] && disable_usb_autosuspend

    disable_wifi_powersave

    return 0

}

process $@

enable_usb_autosuspend:启用 USB 自动挂起,减少 USB 设备的功耗。

enable_wifi_powersave:启用 WiFi 节能模式。

3. 预设配置文件

Tuned 提供了多种预设配置文件,每种文件针对不同的应用场景进行了优化。以下是一些常见的预设配置文件及其特点:

3.1 default 配置文件

特点:默认配置,适合通用场景,不进行特殊优化。

适用场景:普通服务器或桌面环境。

3.2 balanced 配置文件

特点:平衡性能与功耗,适合大多数服务器环境。

适用场景:通用服务器、Web 服务器等。

3.3 powersave 配置文件

特点:优化低功耗,减少系统能耗。

适用场景:移动设备、笔记本电脑、对功耗敏感的服务器。

3.4 throughput-performance 配置文件

特点:优化吞吐量,适合高负载场景。

适用场景:高性能计算、数据库服务器等。

3.5 latency-performance 配置文件

特点:优化低延迟,适合对响应时间要求较高的场景。

适用场景:实时系统、金融交易系统等。

4. 自定义配置文件

用户可以根据实际需求创建自定义配置文件。自定义配置文件可以继承预设配置文件,并在此基础上进行调整。

在 /etc/tuned/ 目录下创建一个新的配置文件,例如 my_profile。

编写配置文件内容,例如:

[main]

summary=Custom profile for my server

include=balanced

[sysctl]

vm.swappiness = 10

net.ipv4.tcp_fin_timeout = 30

[cpu]

governor=performance

启用自定义配置文件:

tuned-adm profile my_profile

5:tuned进程指令

1. 安装 Tuned

在大多数 Linux 发行版中,tuned 已经预装。如果没有安装,可以通过包管理器进行安装:

sudo apt install tuned        # Debian/Ubuntu

sudo yum install tuned        # CentOS/RHEL

sudo dnf install tuned        # Fedora

2. 启动和管理 Tuned 服务

启动 Tuned 服务:

sudo systemctl start tuned

设置开机自启:

sudo systemctl enable tuned

停止 Tuned 服务:

sudo systemctl stop tuned

禁用 Tuned 服务:

sudo systemctl disable tuned

3. 使用 tuned-adm 命令

tuned-adm 是管理 tuned 的客户端工具,用于控制和查看调优配置文件。

3.1 查看当前激活的配置文件

tuned-adm active

3.2 列出所有可用的配置文件

tuned-adm list

3.3 切换到指定的配置文件

tuned-adm profile <profile-name>

例如,切换到 powersave 配置文件:

tuned-adm profile powersave

3.4 禁用所有调优配置

tuned-adm off

3.5 验证当前配置是否生效

tuned-adm verify

3.6 推荐适合当前系统的配置文件

tuned-adm recommend

 能看到这里,恭喜你已经跨入了linux基础境高阶中期,加油早日突破进入linux大圆满,你就可以下一步进行k8s的学习了(成为我的粉丝吧不要吝啬你的赞)少年

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐