Linux通过Tuned实现动态调优系统性能

2023-10-17 22:40

本文主要是介绍Linux通过Tuned实现动态调优系统性能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux通过Tuned实现动态调优系统性能

Tuned简介

对于普通用户来说,优化Linux应用环境可能是相当具有挑战性的。它涵盖了各种领域,并且有许多参数需要考虑,比如CPU、存储、缓存策略和内存管理。尽管Linux有默认设置可以处理大多数情况和场景,但是对于高性能、高并发和高可用性系统等特殊场景,需要进行调整。本文讨论的特性是tuned,它是Linux系统中常用的一种调优服务。

tuned由两个程序组成:tuned和tuned-adm。tuned是服务端程序,用于监控和收集系统各个组件的数据;而tuned-adm是客户端程序,通过命令行管理和配置tuned。

tuned提供了几种预先配置的优化策略(配置文件),可以直接使用,例如balanced、desktop、throughput-performance、latency-performance、powersave及其他优化场景。然而,不同的系统和应用场景可能需要不同的优化方法,tuned预先配置的配置文件可能并不总能满足要求。因此,tuned还允许用户创建和自定义自己的调优配置文件。

Tuned的子系统

tuned子系统是独立运行的,它们共同组成了tuned的调优方案。每个子系统可以支持多个设备(每个设备可能包含多个CPU、网卡等设备),并且每个设备可以使用独立的实例进行控制。

Tuned调优性能

在实际环境中,系统资源可能不足以支持正在运行的进程。管理员可以根据不同的用例和工作负载来调整系统资源的分配,以实现系统优化。

Tuned服务

tuned是一个服务端程序,包含并启用于RHEL8/RHEL7/CentOS7的最小安装中。其守护进程tuned可以根据调优配置文件以静态和动态两种模式应用调优调整。

tuned is a server-side program that is included and enabled in the minimal installation of RHEL8. Its daemon process, tuned, can apply tuning adjustments based on tuning configuration files in both static and dynamic modes.

调优方式:
  • 静态调整:内核参数针对整体性能预期而设置的,不会随实际负载变化而调整,但配 置简单
  • 动态调整:tuned 守护进程会监控和收集系统各个组件的数据,并依据数据提供的信 息动态调整系统设置,达到动态优化系统的目的


安装并启用 TUNED

yum install -y tuned   # 安装软件包
systemctl start tuned  # 启动tuned服务
systemctl stop tuned   # 停止tuned服务
systemctl enable --now tuned   # 设置开机自启动
systemctl enable tuned  # 自启动/禁止自启动tuned-adm profile throughput-performance # 开启高性能
tuned-adm active # 显示当前性能模式
tuned-adm off # 关闭tuned服务的相关配置目录:
/usr/lib/tuned/         # 原生的性能模式/etc/tuned              # DIY的性能模式
├── active_profile      # 当前的性能模式
├── bootcmdline         
└── tuned-main.conf

TUNED 提供的profiles配置文件

tuned提供的profiles,tuned会预先配置的一些优化策略,下面依次介绍下

 配置类型说明

  • balanced    适合需要在节能和性能之间进行折衷的系统
  • desktop    从 balanced 配置文件衍生而来,加快交互式应用相应速度
  • throughput-performance    调优系统以获得最大的吞吐量
  • latency-performance    适合需要牺牲能耗来获取低延迟的服务器系统
  • network-latency    从 latency-performance 配置文件衍生而来,获得最低网络延迟
  • network-throughput    从 throughput-performance 配置文件衍生而来,获得最低网络延迟
  • powersave    调优系统以最大程度实现节能
  • oracle    基于 throughput-performance 配置文件,针对 Oracle 负载优化
  • virtual-guest    当系统在虚拟机上运行时,调优系统以获得最高性能
  • virtual-host    当系统充当虚拟机的主机时,调优系统以获得最高性能


从命令行管理配置文件

  • tuned-adm active 查看启用的调优配置
  • tuned-adm list 查看所有可用的调优配置文件
  • tuned-adm profile 启用某个调优配置文件
  • tuned-adm recommend 查看系统推荐的调优文件
  • tuned-adm off 关闭 tuned 系统调优

tuned使用说明

CentOS7默认安装并启动了tuned服务,如果没有的话可以手动安装和启动:

# yum install tuned     -- 安装tuned
# service tuned start    -- 启动tuned服务
# service tuned status   -- 查看tuned状态

对tuned的操作主要通过tuned-adm命令实现。

查看所有可用的profiles和当前使用的profile:

# tuned-adm list
Available profiles:
- balanced                    - General non-specialized tuned profile
- desktop                     - Optimize for the desktop use-case
- hpc-compute                 - Optimize for HPC compute workloads
- latency-performance         - Optimize for deterministic performance at the cost of increased power consumption
- network-latency             - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
- network-throughput          - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
- powersave                   - Optimize for low power consumption
- throughput-performance      - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
- virtual-guest               - Optimize for running inside a virtual guest
- virtual-host                - Optimize for running KVM guests
Current active profile: throughput-performance

只查看当前使用的profile:

[root@~]#  tuned-adm active
Current active profile: throughput-performance

切换profile:

[root@~]#  tuned-adm profile balanced
[root@~]#  tuned-adm active
Current active profile: balanced

关闭tuned的优化策略:                                                                                                                        

[root@~]#  tuned-adm off
[root@~]# 

关闭tuned之后可以使用“tuned-adm profile”命令重新打开优化策略: 

[root@~]# tuned-adm off
[root@~]# tuned-adm recommend
balanced
[root@~]# tuned-adm profile throughput-performance 
[root@~]# tuned-adm active 
Current active profile: throughput-performance
[root@~]# 

查看系统推荐的profile:

[root@~]#  tuned-adm recommend
balanced

在cockpit控制台系统页面设置性能配置集

通过cpupowerutils开启CPU高性能

# 安装cpupowerutils
yum -y install cpupowerutils
# 开启高性能
cpupower frequency-set -g performance
# 查看
cpupower frequency-info
cat /proc/cpuinfo | grep MHz
# 模式说明:
performance 运行于最大频率
powersave 运行于最小频率
userspace 运行于用户指定的频率
ondemand 按需快速动态调整CPU频率, 一有cpu计算量的任务,就会立即达到最大频率运行,空闲时间增加就降低频率
conservative 按需快速动态调整CPU频率, 比 ondemand 的调整更保守
schedutil 基于调度程序调整 CPU 频率

通过cpupower查看当前CPU频率策略:

设置CPU governor的值为配置文件中 “governor” 参数的值;CPU governor是内核的CPU频率管理器,通过参数来对CPU的频率进行调节,主要是以下几种参数:

 CPU 的governor可以使用如下命令查看:

查看目前支持的governor

[root@~]# cpupower --cpu all frequency-info --governors
analyzing CPU 0:available cpufreq governors: performance powersave

查看正在使用的governor

[root@~]# cpupower --cpu all frequency-info --policy
analyzing CPU 0:current policy: frequency should be within 800 MHz and 4.10 GHz.The governor "performance" may decide which speed to usewithin this range.

Tuned调优总结

tuned特性主要利用Linux系统中已有的调优方法和工具,包括对电源管理、CPU、内存和磁盘等内核参数的调整。这些方法和工具被整合到具体的profile配置文件中,以便于对系统进行性能调优。

对于Linux操作系统的用户来说,根据不同的使用场景和需求调整系统性能非常方便。他们可以轻松地使用现有的配置文件或自定义自己的配置文件,极大地简化了操作系统性能调优的过程。

The tuned feature primarily utilizes existing tuning methods and tools available in the Linux system, including power management utilities and adjustments to kernel parameters such as CPU, memory, and disk. These are integrated into specific profiles to facilitate performance tuning of the system.

For users of the Linux operating system, it is convenient to adjust the system's performance based on different usage scenarios and requirements. They can easily utilize existing profiles or customize their own profiles, greatly simplifying the process of performance tuning for the operating system.


原文链接:调优系统性能

原文链接:详解Linux性能调优之tuned特性 | Lenix Blog

这篇关于Linux通过Tuned实现动态调优系统性能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/228404

相关文章

Qt把文件夹从A移动到B的实现示例

《Qt把文件夹从A移动到B的实现示例》本文主要介绍了Qt把文件夹从A移动到B的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录如何移动一个文件? 如何移动文件夹(包含里面的全部内容):如何删除文件夹:QT 文件复制,移动(

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

VSCode配置Anaconda Python环境的实现

《VSCode配置AnacondaPython环境的实现》VisualStudioCode中可以使用Anaconda环境进行Python开发,本文主要介绍了VSCode配置AnacondaPytho... 目录前言一、安装 Visual Studio Code 和 Anaconda二、创建或激活 conda

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固 通俗易懂版)

《MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固通俗易懂版)》本文主要讲解了MySQL中的多表查询,包括子查询、笛卡尔积、自连接、多表查询的实现方法以及多列子查询等,通过实际例子和操... 目录复合查询1. 回顾查询基本操作group by 分组having1. 显示部门号为10的部门名,员

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

java导出pdf文件的详细实现方法

《java导出pdf文件的详细实现方法》:本文主要介绍java导出pdf文件的详细实现方法,包括制作模板、获取中文字体文件、实现后端服务以及前端发起请求并生成下载链接,需要的朋友可以参考下... 目录使用注意点包含内容1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接使

Java的volatile和sychronized底层实现原理解析

《Java的volatile和sychronized底层实现原理解析》文章详细介绍了Java中的synchronized和volatile关键字的底层实现原理,包括字节码层面、JVM层面的实现细节,以... 目录1. 概览2. Synchronized2.1 字节码层面2.2 JVM层面2.2.1 ente

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字