tuned简介

对普通用户而言,Linux应用环境优化是比较困难的。领域多,范围广:CPU、存储、缓存策略、内存管理等涉及的参数。Linux内部虽然有默认设置值,可以应对大多数的情况场景,但是针对一些特殊场景,例如高性能、高并发和高可用的系统,就需要我们进行调整。本文介绍的tuned特性就是目前Linux系统上常用的一种调优特性。

tuned特性由tuned和tuned-adm两个程序组成。其中 tuned是服务端程序,用来监控和收集系统各个组件的数据;tuned-adm是客户端程序,用命令行的方式管理和配置 tuned。

tuned提供了一些预先配置的优化策略(profile)可供直接使用,比如:虚拟机-主机、虚拟机-客户机、节能等优化场景。当然不同的系统和应用场景有不同的优化方案,tuned预先配置的优化策略不是总能满足要求,因此tuned还允许用户自己创建和定制新的调优方案。

中移软件的BC-Linux操作系统目前就支持tuned特性并使用其进行调优。

tuned的子系统

tuned子系统是相互独立运行的,合作组成tuned的调优方案。每个子系统可以支持多个设备(每台设备可能有多个cpu、网卡等设备),并且每个设备可以使用单独的实例控制。

CPU

CPU子系统主要实现两个功能:

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

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

# cpupower --cpu all frequency-info --governors

查看目前支持的governor

# cpupower --cpu all frequency-info --policy

查看正在使用的governor

2. 根据CPU的负载动态的调节PM QoS CPU DMA延迟。当CPU负载低于 “load_threshold” 参数时,延迟被设为 “latency_high” 参数的数值,否则的话设为 “latency_low”。如果不希望动态调节延迟,可以通过设置 “force_latency” 参数,将延迟固定。

VM

内存子系统主要调节系统的内存参数。

根据 “transparent_hugepages” 参数的值设置huge page(巨页)功能;

# cat /sys/kernel/mm/transparent_hugepage/enabled

查看系统的巨页配置

此外内存子系统还可以设置系统参数,也就是“/proc/sys/vm”路径下的内存参数,比较常用的有以下几种,其余的也可根据需要配置:

vm.dirty_background_ratio: 设置 dirty pages 开始后台回写时的百分比

vm.dirty_ratio: 设置 dirty pages 开始回写时的百分比

vm.swappiness: 控制从物理内存换出到交换空间的相对权重,取值为0到100,更低的值导致避免交换,而更高的值导致尝试使用交换空间

DISK

# cat /sys/block/sda/queue/scheduler

查看系统的IO调度算法

磁盘子系统也可以调节内核的磁盘参数,也就是“/proc/sys/kernel”路径下的参数,比较常用的是以下几种:

kernel.sched_min_granularity_ns: 针对CPU 计算密集型任务设置调度器的最小抢占粒度

kernel.sched_wakeup_granularity_ns: 设置调度器的唤醒粒度,这将延迟抢占效应,并减少过度调度

kernel.sched_migration_cost_ns: 调度器认为迁移的进程“cache hot”因而更少可能被重新迁移的总时间

此外磁盘子系统还可以配置磁盘电源策略,通过ALPM磁盘电源管理工具实现,对应 “alpm” 参数,用于降低磁盘功耗;也可以动态调整先进电源管理和磁盘spindown的超时时间。

NET

网络子系统主要调节网络性能和功耗:

1. 可以调节网络参数,常用的有以下几种:

2. 根据网口的使用情况动态调整网口的速度,默认网口会一直保持在高速运行,可以降低功耗;

3. 根据 “wake-on-lan” 参数,配置wake-on-lan功能。Wake-On-LAN简称WOL,是一种电源管理功能,允许通过网络将设备从待机或休眠模式中唤醒。

其他子系统

sysctl

子系统主要使用sysctl工具来进行系统配置,相当于修改sysctl.conf配置文件。语法格式是 “name=value” ,name就是sysctl工具的条目,value则是配置参数。

eeepc_she

根据CPU负载动态调节FSB的频率(FSB--前端总线,是连接CPU和北桥芯片的总线),可以降低功耗。

usb

根据 “autosuspend” 参数设置USB设备自动挂起的超时时间,0表示关闭USB设备自动挂起。

audio

根据 “timeout” 参数设置音频解码设备的自动挂起超时时间,0表示关闭自动挂起。

mounts

根据“disable_barriers”参数开/关mounts的barrier特性,打开barrier特性次文件系统日志记录会更加可靠,但是会降低一些性能。

sysfs

通过设置sysfs路径下的相关参数进行系统性能调节,语法格式是 “name=value” ,name就是sysfs路径的条目,value则是配置参数。

tuned提供的profiles

tuned会预先配置的一些优化策略,下面依次介绍下:(基于BCLinux7.3系统自带的tuned 2.7.1版本,不同的版本可能会有差别,具体可以查看 /usr/lib/tuned 目录下各策略的 tuned.conf文件确定)

tuned使用说明

Redhat7和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             - Optmize for the desktop use-case

- latency-performance   - Optimize for deterministic performance…………

- network-latency            - Optimize for deterministic performance …………

- network-throughput     - Optimize for streaming network throughput. …………

- powersave        - Optimize for low power consumption

- throughput-performance   - Broadly applicable tuning that provides…………

- virtual-guest      - Optimize for running inside a virtual guest.

- virtual-host        - Optimize for running KVM guests

Current active profile: virtual-guest

只查看当前使用的profile:

# tuned-adm active

Current active profile: virtual-guest

切换profile:

tuned-adm profile

# tuned-adm profile balanced

# tuned-adm active

Current active profile: balanced

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

# tuned-adm off

查看系统推荐的profile,这个优化策略也就是安装并启动tuned服务之后,tuned自动设置使用的profile:

# tuned-adm recommend

virtual-guest

自定义profile

不同的系统和应用场景有不同的优化方案,tuned-adm预先配置的优化策略不是总能满足要求,因此tuned允许用户自己创建和定制新的调优方案。

tuned预定义的profile的配置文件在/usr/lib/tuned目录,用户自定义的profile目录是/etc/tuned。

自定义调优方案步骤很简单:

首先,在/etc/tuned目录下创建一个目录,名称就是自定义profile的名称;

# mkdir myProfile

# ls

active_profile  bootcmdline  myProfile  tuned-main.conf

然后,在自定义profile目录下编写配置文件” tuned.conf”,可以从/usr/lib/tuned复制一个预定义的配置文件过来,然后进行修改,也可以直接创建一个;

# cd myProfile/

# ls

tuned.conf    -- 自定义策略myProfile的优化配置文件

一个简单的配置文件格式如下:

# more desktop/tuned.conf

#

# tuned configuration

#

[main]      -- main段

summary=Optmize for the desktop use-case   -- profile的介绍

include=balanced        -- 包含的profile,也就是基于此profile做些调整

[sysctl]    -- sysctl子系统

kernel.sched_autogroup_enabled=1   -- 需要修改的参数

最后,使用” tuned-adm list”查看,自定义的策略可以使用了。

# tuned-adm list

Available profiles:

………………

- myProfile                   - My profile for test

………………

Current active profile: virtual-guest

总结

tuned特性主要还是使用linux系统现有的一些调节手段和工具,包括电源管理工具,CPU、内存、磁盘等内核参数调整的方式,并将其整合到一个具体的策略(profile)中进行系统的性能调节。

BC-Linux操作系统的用户用户可以根据不同的使用场景和需求,使用现有的策略或者自定义一些策略很方便的对系统的性能进行设置,极大的简化对操作系统的性能调节。

END

往期精选

linux性能调优干货,【干货分享】详解Linux性能调优之tuned特性相关推荐

  1. linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)

    linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...

  2. linux系统电脑的权限设置,Linux下的文件权限设置修改详解linux操作系统 -电脑资料...

    在linux中更改所属用户组是使用chgrp,更改文件拥有者, chown,更改9个属性, chmod这三种常用的问题,在linxu中这三个命令就是对文件目录权限的控制命令了,下面我来介绍它们的用法与 ...

  3. linux 文件系统cache,终于找到一篇详解Linux文件系统Cache的文章

    级别: 初级 2006 年 5 月 11 日 文件 Cache 管理是 Linux 内核中一个很重要并且较难理解的组成部分.本文详细介绍了 Linux 内核中文件 Cache 管理的各个方面,希望能够 ...

  4. Linux网站访问的电脑占CPU,详解Linux如何查看当前占用CPU或内存最多的几个进程...

    命令ps -aux | sort -k4nr | head -N 命令详解: 1.head:-N可以指定显示的行数,默认显示10行. 2.ps:参数a指代all--所有的进程,u指代userid--执 ...

  5. Linux进程描述符task_struct结构体详解--Linux进程的管理与调度(一)

    转自:http://blog.csdn.net/gatieme/article/details/51383272 日期 内核版本 架构 作者 GitHub CSDN 2016-05-12 Linux- ...

  6. linux下watch常见用法,watch命令详解(linux)

    fzu 1015 土地划分(判断线段相交+求出交点+找规律) 链接:http://acm.fzu.edu.cn/problem.php?pid=1015  Problem 1015 土地划分 Acce ...

  7. linux系统类AE软件,一文详解 Linux系统常用监控工具

     点上面蓝字 "CodeSheep"关注作者 本文共 1329字,阅读大约需要 3分钟,文末有计时器可自行对时! 概   述 本文主要记录一下 Linux系统上一些常用的系统监控工 ...

  8. Linux:dmesg命令参数及用法详解(linux显示开机信息命令)

    命令介绍 功能说明:显示开机信息. 语 法:dmesg [-cn][-s <缓冲区大小>] 补充说明:kernel会将开机信息存储在ring buffer中.您若是开机时来不及查看信息,可 ...

  9. linux命令关闭电脑,SELinux关闭命令详解linux操作系统 -电脑资料

    下面来给大家介绍在linux中SELinux关闭方法吧,如果你正在了解这个可以来参考此文章,文章重点介绍了SELinux的使用方法哦, 关闭SELinux的方法: 修改/etc/selinux/con ...

  10. linux下的tar压缩解压缩命令详解,Linux下的tar压缩解压缩命令详解

    linux下tar gz bz2 tgz z等众多压缩文件的压缩与解压方法,需要的朋友可以参考下 Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命 ...

最新文章

  1. 根据sql生成相应字段
  2. Web前端学习-第三课JavaScript篇
  3. struts2:在Action中使用Servlet的API,设置、读取各种内置对象的属性
  4. python怎么调用文件_python 中如何引用头文件
  5. C++:44---关键字virtual、override、final
  6. notepad++ 使用去掉自动检查红线
  7. 【java】测试dubbo业务
  8. 容器技术Docker K8s 12 容器服务Kubernetes版ACK详解-使用镜像快速创建无状态应用
  9. Linux从入门到放弃(1)教学视频推荐以及一些经验分享
  10. eclipse设置背景色为豆沙绿
  11. php生成pdf中文断码_php在线生成pdf中文乱码完美解决“ | 学步园
  12. ORACLE账户提示EXPIRED(GRACE)问题解决
  13. jQuery 案例-图片抽奖
  14. 更改PPT的模板名称
  15. 在演讲中如何吸引你的听众技巧
  16. 惠州东江威立雅的全方位文件安全管理
  17. 网站装饰html代码,html常用装饰代码分享
  18. 在win10上通过usb连接树莓派
  19. java ---- 登陆加密
  20. 3056: 升降梯口

热门文章

  1. php case语句吗,【PHP公开课|关于PHP switch case语句,你知道怎么用吗,这个例子你一定要来看看】- 环球网校...
  2. 作者:郭琨(1985-),女,博士,中国科学院虚拟经济与数据科学研究中心助理研究员...
  3. 作者:林嘉洺(1992-),男,华南师范大学计算机学院硕士生。
  4. 每天打卡心情好(洛谷P1664题题解,Java语言描述)
  5. 为什么要做短视频秒播优化
  6. Solidity 简易教程0x001
  7. [转]Tomcat启动报错:AnnotationConfigBeanDefinitionParser are only available on JDK 1.5 and higher...
  8. NVRH.265:鱼与熊掌不兼得?不见得!
  9. MyEclipse的Debug模式启动缓慢
  10. iOS开发基础知识--碎片27