tuned/tuned-adm是RHEL/CentOS 在 6.3 版本以后引入的一套新的系统调优工具,其使用python语言开发,其中 tuned 是服务端程序,用来监控和收集系统各个组件的数据,并依据数据提供的信息动态调整系统设置,达到动态优化系统的目的;tuned-adm 是客户端程序,用来和 tuned 打交道,用命令行的方式管理和配置 tuned,tuned-adm 提供了一些预先配置的优化方案可供直接使用,比如:桌面电脑、虚拟机、存储服务器等。

一、安装tuned和查看

1、安装启用tuned

1[root@server0 ~]# yum -y install tuned
2[root@server0 ~]# systemctl enable tuned
3[root@server0 ~]# systemctl start tuned
4[root@server0 ~]# systemctl status tuned

2、查看可用的tuned规则

 1#当前使用的策略
 2[root@server0 ~]# tuned-adm active
 3Current active profile: virtual-guest
 4#支持的策略列表
 5[root@server0 ~]# tuned-adm list
 6Available profiles:
 7- balanced
 8- desktop
 9- latency-performance
10- network-latency
11- network-throughput
12- powersave
13- throughput-performance
14- virtual-guest
15- virtual-host
16Current active profile: virtual-guest

二、新增自定义策略

自定义策略有两种方法:一种是在/usr/lib对应的目录下新增策略目录及相关配置文件;另一种做法是在/etc/tuned目录下创建对应的目录和文件。官方上的做法是后者。这点和 rhel6 版本有一些区别,在6版本下,配置文件位于/etc/tune-profiles目录下。

1、在/usr 目录下创建配置

 1[root@server0 tuned]# pwd
 2/usr/lib/tuned
 3[root@server0 tuned]# cp -rp balanced my-balanced
 4[root@server0 tuned]# tuned-adm list
 5Available profiles:
 6- balanced
 7- desktop
 8- latency-performance
 9- my-balanced   <----新增的策略
10- network-latency
11- network-throughput
12- powersave
13- throughput-performance
14- virtual-guest
15- virtual-host
16Current active profile: virtual-guest

2、在/etc目录下创建配置文件

 1#创建对应的目录
 2[root@server0 ~]# mkdir /etc/tuned/myprofile
 3#创建主配置文件,可以引入已存在的策略,并在其基础上修改(类似于OOP,复用的概念)
 4[root@server0 myprofile]# cat tuned.conf
 5[main]
 6include=virtual-guest
 7[sysctl]
 8vm.swappiness=10
 9[disk]
10devices=!vda
11readahead=4096

除上面的配置之外,还可以增加脚本配置到tuned.conf中。其使用的函数可以覆盖或修改 /usr/lib/tuned/functions引入的函数功能。可以通过如下命令查看里面的所有函数:

1[root@server0 myprofile]# grep '^[^_].*()' /usr/lib/tuned/functions
2save_value() {
3save_sys() {
4set_sys() {
5………………
6start() {
7stop() {
8process() {

比如上面的start和stop函数,在启用或关闭当前属性策略时,会首先调用该函数。我们可以增加如下脚本:

 1[root@server0 ~]# cat /etc/tuned/myprofile/script.sh
 2#!/bin/bash
 3./usr/lib/tuned/functions
 4start(){
 5}
 6stop(){
 7}
 8process $@
 9[root@server0 ~]# cat /etc/tuned/myprofile/tuned.conf
10[main]
11include=virtual-guest
12[sysctl]
13vm.swappiness=10
14[disk]
15devices=!vda
16readahead=4096
17[script]
18script=script.sh

上面的脚本,实际并没有做任何操作,这里只提供一个模块,可以把我操作的内容写到这个脚本模板里 。通过在tuned.conf中增加script参数进行引用。操作完成后,可以通过如下命令进行引用:

 1[root@server0 myprofile]# tuned-adm list
 2Available profiles:
 3- balanced
 4- desktop
 5- latency-performance
 6- my-balanced
 7- myprofile
 8- network-latency
 9- network-throughput
10- powersave
11- throughput-performance
12- virtual-guest
13- virtual-host
14Current active profile: network-latency
15[root@server0 myprofile]# tuned-adm profile myprofile

三、tuned策略切换和效果

tuned
tuned

四、tuna工具

tuned策略的编写比较难,只需涉及很多参数。不过对于常用的一些参数,官方提供了一个工具tuna,也是基于python语言编写的,通过该工具,可以通过图形化的方式配置一些参数,安装命令如下:

1[root@server0 ~]# yum -y install tuna

安装完成后,需要有图形化环境才可以调用tuna程序,其调用后的界机如下:

tuna-monitor
tuna-monitor

其引入的配置文件就是/etc/tuna/example.conf 。