Red Hat Enterprise Linux 7.x新特性
RHEL7新特性简介
1. RHEL7目前支持架构
64-bit AMD、64-bit Intel、IBM POWER、IBM System z,不再支持x86 32bit
2. RHEL7安装界面
启动程序改为grub2、systemd;全新的安装界面;一站式的安装配置;全新的kickstart结构;全新的分区工具;支持2TB以上硬盘作为系统引导盘安装配置步骤较大变化。
3. UID
rhel7的普通用户UID从1000开始;rhel6的普通用户UID从500开始 。
4. RHEL7启动引导工具
² 全新的Grub2引导工具
² 支持包括PowerPC在内的CPU架构
² 支持BIOS、EFI和OpenFireware的基础输入/输出系统架构
² 支持MBR方式的2TB以内容量硬盘和GPT方式2TB以上容量硬盘
² 支持从非Linux文件系统引导,例如HFS+和NTFS。
5. 桌面
² 使用最新的Gnome 3为默认桌面环境
² 使用最新的KDE 4.10为备选桌面环境
6. RHEL7存储子系统
² 内核支持iscsi、FCoE和iSER
² 使用内核LIO target subsystem替换了rhel6中的tgtd第三方服务
² LVM升级支持RAID方式,替换了rhel6中的mdadm工具,软RAID功能由卷管理方式实现
² 更新更多的HBA卡支持
7. RHEL7文件系统
² 系统主目录“/”文件系统默认为XFS(xfs的扩展性、容量、安全性都比ext4更强)
² 支持Btrfs文件系统作为前瞻技术预览,但不推荐不做商业支持
² 更好的支持SSD,普通硬盘默认调度算法为CFQ,SSD硬盘默认设置为Deadline
8. RHEL7内核(查看内核的命令:uname -a)
² 内核版本为3.10
² 支持动态补丁机制kpatch作为技术预览
² 内核出错后导出core文件支持最大3TB
² 支持内核模块黑名单机制(modprode.blacklist=module)
² 支持嵌套虚拟化技术、虚拟CPU更顺畅
² 支持内核级资源的调优和分配
9. RHEL7虚拟化支持
² 更高性能的KVM内核虚拟化支持
² 虚拟机USB3.0接口支持
² 更方便更稳定的动态迁移支持
² QCOW2格式文件型快照支持
² 嵌套虚拟化支持,可以在KVM中安装配置OpenStack
² 继续支持作为虚拟机的Xen技术,但不再支持作为寄主机的Xen技术
² 加强了对VMWARE的技术支持,自带open-vm-tools替换vm-tools
10. RHEL7容器型虚拟化
² 支持LXC容器型虚拟化
² 支持最热的技术Docker
² 提供最新rhel7的Docker image
² 支持自建Docker Register
11. RHEL 7 系统及服务启动控制
² 全新的系统及服务启动管理器-Systemd
² 全新的系统及服务启动管理命令-systemctl
12. RHEL 7编译器及工具
² 使用GCC4.8 作为默认编译工具(yum list gcc查看)
² 使用Glibc 2.17 作为标准库(yum list glibc查看)
² 使用GDB 7.6.1 作为编译调试工具(yum list gdb查看)
² 支持Ruby 2.0(yum list ruby查看)
² 支持Python 2.7.5(yum list python查看)
² 支持Java 7(yum list *java*查看)
13. RHEL 7 网络配置
² 迁移原有的网络配置工具到全新的NetworkManager(ifconfig-->systemctl status NetworkManager-->nmcli connection show -->nmtui-->nm-connection-editor)
² 支持全新的网络聚合模式Team(Team和Bond是一样的功能,Team采用新的技术,Bond是旧技术)
² 使用Chrony服务替换原有的NTPd服务(rhel7的chronyd支持微妙级systemctl status chronyd;rhel6的ntpd支持毫秒级chkconfig --list ntpd)
² 全新的Firewalld防火墙工具(rhel7:iptables -L -->systemctl status iptables --> systemctl status firewalld-->firewall-config防火墙配置的图形化界面)(rhel6:iptables -L -->service iptables status)
² 支持网络名字空间方便容器型虚拟机管理
14. RHEL 7用户认证及审计
² 支持Windows AD认证(authconfig-tui-->authconfig-gtk)
² 支持UNIX LDAP 认证
² 支持LDAP + Kerberos认证(rhel7默认没安装Kerberos)
² 支持动态第三方密码认证
15. RHEL 7服务版本更新
² 使用Apache 2.4替换之前的Apache2.2(yum list httpd查看)
² 使用MariaDB 5.5替换之前的MySQL5.1(yum list mysql*|mariadb*)
1. 系统限制
Red Hat Enterprise Linux 7已不提供32位版本,32位硬件已不能安装Red Hat Enterprise Linux 7.
Red Hat Enterprise Linux 7至少 1 GB 磁盘空间方可安装,安装所有功能至少需要5 GB 磁盘空间。
Red Hat Enterprise Linux 5 、6 和 7的限制
| Red Hat Enterprise Linux 5
| Red Hat Enterprise Linux 6
| Red Hat Enterprise Linux 7
|
最大逻辑 CPU |
|
|
|
x86_64 | 160/255 | 160/4096 | 160/5120 |
POWER | 128/128 | 128 | 待评估 |
System z | 101 (zEC12) | 101 (zEC12) | 待评估 |
最大内存 |
|
|
|
x86_64 | 1 TB | 支持 3 TB/64 TB | 支持 3 TB/64 TB |
POWER | 最小 512 GB/建议 1 TB | 2 TB | 2 TB |
System z | 3 TB (z196) | 3 TB (z196) | 3 TB (z196) |
最低要求 |
|
|
|
x86_64 | 最小 512 MB/建议每个逻辑 CPU 1 GB | 最小 1GB/建议每个逻辑 CPU 1 GB | 最小 1GB/建议每个逻辑 CPU 1 GB |
POWER | 1 GB/建议 2 GB | 2 GB/每个 Red Hat Enterprise Linux 安装 2 GB | 2 GB/每个 Red Hat Enterprise Linux 安装 2 GB |
System z | 512 MB | 512 MB | 1 GB [a] |
文件系统及存储限制 |
|
|
|
最大文件大小:XFS | 16 TB | 16 TB | 16 TB |
最小文件大小:ext4 | 16 TB | 16 TB | 50 TB |
最大文件大小:Btrfs | N/A | 待评估 | 待评估 |
最大文件系统大小:XFS | 100 TB[b] | 100 TB | 500 TB |
最大文件系统大小:ext4 | 16 TB | 16 TB | 50 TB |
最大文件系统大小:Btrfs | N/A | 待评估 | 50 TB |
最大引导 LUN 大小 | 2 TB | 16 TB[c] | 50 TB |
每个进程地址大小的最大值:x86_64 | 2 TB | 128 TB | 128 TB |
[a] 在 IBM System z 中安装建议 1 GB 以上。 | |||
[b] Red Hat Enterprise Linux 版本 5.5 或者之后的版本支持最大为 100 TB 的 XFS 文件系统大小。 | |||
[c] 注:大于 2 TB 的引导 LUN 支持需要 UEFI 和 GPT 支持。 |
2. 安装和引导
2.1 新引导装载程序
Red Hat Enterprise Linux 7采用了GRUB2引导装载程序,在Red Hat Enterprise Linux 7及以后的版本中替代了传统的GRUB。相比GRUB,GRUB2的特点如下:
1. GRUB2支持更多文件系统及虚拟块设备。
2. 可以自动扫描并配置可用操作系统。
3. 改进了用户界面,用户可以选择跳过引导追踪程序安装。
4. 同时取消了对MBR类型分区表的BIOS机器的格式化分区中安装引导追踪程序。这是因为有些文件系统有自动的优化功能,这些功能会移动核心引导装载程序映像的内容,从而破坏GRUB引导程序。GRUB2是将引导程序安装在分区表和使用MBR类型分区表的BIOS机器首个分区之间的可用空间中。
由于使用新的引导程序,建议的最小分区大小也会发生变化,新的建议值如下:
分区
| BIOS & MBR
| BIOS & GPT
| UEFI & GPT
| |
/boot | 500 MB | |||
/ | 10 GB | |||
swap | 至少是 RAM 的两倍。详情请查看
| |||
引导装载程序 | 无(在分区表和首个分区之间安装) | 1 MB(BIOS Boot 分区) | 200 MB(EFI 系统分区) | |
2.1 新的Init系统
RedHat7中使用systemd替换乐以前版本中使用的SysV init系统,systemd是一个系统和服务管理器。在引导过程中,是第一个启动的进程,在关闭过程中是最后一个停止的进程。Systemd兼容大部分SysV的功能,下面有兼容性限制的部分。
- 标准 /etc/init.d/servicename 命令(start, stop, status)仍可使用。但 Red Hat 推荐使用 /usr/sbin/service servicename 命令,因为可将其直接转到 systemd,而不是使用传统的init脚本。
- 运行级别支持将受到限制。所有 SysV 运行级别都与 systemd 目标映射,但不是所有 systemd 目标都与 SysV 运行级别映射。因此当前运行级别中的一些检查将返回 N(位置运行级别)。Red Hat 建议避免使用运行级别检查,同时使用更有效的 systemd 目标。
- 传统运行级别 2、3 和 4 都默认与 multi-user.target systemd 目标映射。用户可通过配置不同的 systemd 目标修改这一行为。
- 服务执行简洁,不会遗留调用服务用户的任何上下文。将无法使用依赖继承的上下文的 Init 脚本。
- systemd 不支持 init 脚本中的附加动作。如果您要求使用 start, stop 或者 status以外的动作,请将其移动到辅助脚本中。
- 目前 systemd 可在运行时完全解析并采用 Linux 标准规范标头信息。
- 目前所有 init 脚本都采用5分钟超时规定以防止系统因 init 脚本停滞而当机。
- systemd 只能停止运行中的服务;未启动的服务也不会在关机时停止。
- chkconfig 工具只显示 SysV 服务及运行级别信息,并可能给出一些误导信息。Red Hat 建议您使用 systemctll 命令。
- SysV 服务,即使有 root 特权,也不再允许获取实时调度。
- 服务不再能从 stdin 中读取信息。如果您需要互动脚本,请考虑 systemd 支持的需要最少密码的框架。有关此功能的详情请参考其 man page:
$ man systemd-ask-password
- Red Hat Enterprise Linux 以前的版本中包含 System z 的预安装脚本(linuxrc.s390),它可在引导时启动 System z 系统。新的 init 系统废弃了这个预安装脚本,同时 System z 目前使用与 AMD64、Intel® 64 以及 Power systems 相同的方法引导。
2.2 systemd管理工具systemctl
systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。systemctl融合了service和chkconfig两个工具的功能。
service与systemctl命令对比
daemon命令
| systemctl命令
| 说明
|
service [服务] start | systemctl start [unit type] | 启动服务 |
service [服务] stop | systemctl stop [unit type] | 停止服务 |
service [服务] restart | systemctl restart [unit type] | 重启服务 |
1. 默认运行级别
在rhel7中,不再使用文件/etc/inittab,打开inittab可以看到如下内容:
由以上文件内容可知,rhel7不再使用inittab调整系统运行级别。systemd对linux来说是个init程序,使用更为自由的target概念。常见的运行级别对应值:
第三运行级别:multi-user.target
第五运行级别:graphical.target
runlevel3.target-> multi-user.target
runlevel5.target->
修改开机默认的运行级别
方法1:
默认级别转换为3(文本模式)
ln -sf /lib/systemd/system/multi-user.target/etc/systemd/system/default.target
默认级别转换为5(图形模式)
ln -sf /lib/systemd/system/graphical.target/etc/systemd/system/default.target
方法2:
默认级别转换为3(文本模式)
systemctl set-default multi-user.target
默认级别转换为5(文本模式)
systemctl set-default graphical.target
以上命令执行后会看到类似下面的输出,由输出可以看到该方法本质上与方法一相同,都是通过创建target的链接实现。
查看默认启动级别:
systemctl get-default
切换运行级别
方法一
切换到运行级别3,以下两种方法都可以
systemctlisolate multi-user.target
systemctlisolate runlevel3.target
切换到运行级别5,以下两种方法都可以
systemctlisolate graphical.target
systemctlisolate runleve5.target
方法二,init [0123456]命令依然可用。
2. 修改字符终端分辨率
修改文件“/boot/grub2/grub.cfg”(注:rhel7使用的是grub2,之前版本使用的grub,“/boot/grub/grub.cfg”)添加“vga=ask”,添加后如下:
保存,重启系统,会看到以下分辨率与vga值的对应表,根据屏幕分辨率选择对应的vga值输入即可。
引导时的挂载行为
Red Hat Enterprise Linux 之前的版本无论是否能挂载,/etc/fstab 中指定的所有分区均会启动。这可能会造成系统“启动”并正常工作,同时在没有所需分区的情况下引导。
为防止出现这种情况,在 Red Hat Enterprise Linux 7 中,如果在引导式无法挂载 /etc/fstab 中定义的分区,则引导会失败。如果某个分区不应再无法挂载的情况下造成引导失败,请在 /etc/fstab 中使用新的nofail 参数。
/dev/critical /critical xfs defaults 1 2
/dev/optional /optional xfs defaults,nofail 1 2
在上面示例中,挂载到/optional下的设备即使无法成功挂载,也不会造成引导失败。
3. 文件系统的变化
3.1 文件系统格式改为XFS
RHEL7在安装的时候就默认使用了XFS, RHEL7仍然是支持ext。XFS文件系统完全为大数据而生,单个文件系统最大可以支持到8EB大小,单个文件的大小最大可达到16T,并且提供了丰富的日志系统,是应对大数据存储的强大的文件系统。XFS可通过工具xfsdump和xfsrestore来备份和恢复xfs文件系统。RHEL7可以用xfs_growfs来扩大XFS文件系统,也可以直接用resize2fs 来处理设备。需要注意的是 XFS系统只能增长,不能减少!因此如果需要减少LVM的话,分区只能使用ext4。
3.2 挂载选项的变化
与 ext3 和 ext4 不同,XFS 文件系统默认启用了 user_xattr 和 acl 挂载选项。如果在命令行或者/etc/fstab 包含这些选项就会报以下错误。
$ mount -o acl /dev/loop0 test
mount: wrong fs type, bad option, bad superblock on /dev/loop0,missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
Ext3和Ext4文件系统不会默认启用这些属性,但当您使用这个 mount 命令或者使用/etc/fstab挂载它们时也会接受这些选项。
3.3 更改引导时的挂载行为
如果将存储设备配置为在引导时挂载,且未能找到该设备,或无法正确挂载,则 Red Hat Enterprise Linux 7引导会失败。这是一个有意的行为更改,以防止在没有重要存储设备的情况下引导。之前的 Red Hat Enterprise Linux 7 版本无论是否找到或正确挂载了全部配置为引导时挂载的存储设备都会启动。
如果某个设备不应该影响引导,则可使用nofail为其添加标记,如下所示:
/dev/essential-disk /essential xfs auto,defaults 0 0
/dev/non-essential-disk /non-essential xfs auto,defaults,nofail 0 0
3.4 常用文件目录位置的变化
Red Hat Enterprise Linux 7 将 /bin, /sbin, /lib 和 /lib64 目录移到 /usr 中。因为 /usr 文件系统现在可以使用 initramfs,而不是一定要使用 root 层目录中的程序挂载,因此不再需要将软件包内容分散到两个不同目录层中。这样就可以使用一个小得多的 root 文件系统,让系统可以更有效地共享磁盘空间,同时系统也更容易管理、更灵活且更安全。
为减轻这种变化的影响,会创建符号链接,例如:/bin→/usr/bin,/sbin→/usr/bin,其他目录依次类推。
3.5 /tmp目录
RHEL7可以将/tmp作为临时文件存储系统(tmpfs)一个挂载点。启用该功能后,这个临时存储会以挂载的文件系统出现,但这时/tmp中的内容保存在内存或swap空间内,此时/tmp中的内容会在系统重启后丢失。
查看该功能是否开启使用以下命令:
systemctl status tmp.mount
结果如下:
开启该功能:
systemctl enable tmp.mount
禁用该功能
systemctl disable tmp.mount
Red Hat官方推荐在RHEL7中使用不同类型的存储空间,详情如下:
Ø 特权进程,比如守护进程,应使用 /run/processname 保存临时数据。
Ø 保存大量数据的进程,或者需要重启后仍保留的数据,应使用 /var/tmp。
Ø 其他进程应使用 /tmp 保存临时数据。
4. 系统管理工具和进程的变化
4.1 默认进程的最大值
在 Red Hat Enterprise Linux 6 中,非 root 用户每个 PAM 会话中的总进程数是限制在 1024 个。在 Red Hat Enterprise Linux 7 中将这个限制提高到默认每个 PAM 会话 4096 个进程。
默认值是在 /etc/security/limits.d/*-nproc.conf 文件(Red Hat Enterprise Linux 7 中通常为/etc/security/limits.d/20-nproc.conf)中指定。
使用unlimit -u命令查看会话当前可用进程数。
4.2 新日志框架
RHEL7采用新的日志守护进程journald,获取的信息类型为:syslog信息、内核信息、初始化RAM及早期引导信息、发送到标准输出及标准错误输出的信息。这些信息会保存到journald自身的日志文件中,这是各一个二进制文件。默认情况下,日志记录的数量由剩余内存量和/run/log/journal目录空间决定,内存耗尽或空间不足时,会删除最早的日志。
在RHEL7中,rsyslog与journald 并存。会将journald收集的数据转发到rsyslog,后者可进一步进行处理并保存文本日志文件。默认情况下,rsyslog 只保存典型的syslog信息的日志字段,但可将其配置为保存可用于journald的所有字段。因此Red Hat Enterprise Linux 7仍兼容依赖rsyslog的应用程序和系统配置。
4.3 本地化配置(默认语言及键盘设置)
由RHEL6中的“/etc/sysconfig/i18n”转移到“/etc/locale.conf”和 “/etc/vconsole.conf”中。
4.4 定义主机名
由RHEL6中的“/etc/sysconfig/network”转移到“/etc/hostname”中。
4.5 /etc/ifconfig新格式
RHEL7对ifconfig工具的输出格式进行了修改,Red Hat推荐使用ip程序及其子命令(ip addr,ip link)替代ifconfig工具。
ip命令用法简介:
格式:
ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]
选项:
-V,-Version 打印ip的版本并退出。
-s,-stats,-statistics 输出更为详尽的信息。如果这个选项出现两次或多次,则输出的信息将更为详尽。
-f,-family 这个选项后面接协议种类,包括inet、inet6或link,强调使用的协议种类。如果没有足够的信息告诉ip使用的协议种类,ip就会使用默认值inet或any。link比较特殊,它表示不涉及任何网络协议。
-4 是-family inet的简写。
-6 是-family inet6的简写。
-0 是-family link的简写。
-o,-oneline 对每行记录都使用单行输出,回行用字符代替。如果需要使用wc、grep等工具处理ip的输出,则会用到这个选项。
-r,-resolve 查询域名解析系统,用获得的主机名代替主机IP地址
操作对象
网络对象:指定要管理的网络对象;
具体操作:对指定的网络对象完成具体操作;
help:显示网络对象支持的操作命令的帮助信息。
OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm | netns | l2tp | tcp_metrics | token }
示例:
##用ip命令查网络设备的运行状态
# ip link list
##显示不同网卡的统计数据
# ip -s link list
##查看网卡信息
# ip addr show enp0s3(网卡名称)
##获取特定网络接口的信息,使用多个-s选项会获取这个接口更详细的信息
#ip -s -s link ls enp0s3(网卡名称)
##停止网卡
# ip link set enp0s8 down
##激活网卡
4.6 内核崩溃收集(kdump)的变化
内核崩溃收集工具kdump之前为kdump生成一个初始化ramdisk(initrd)以便使用自定义mkdumprd脚本捕获内核。在Red Hat Enterprise Linux 7中是使用dracut生成初始化ramdisk,这样更容易维护生成的初始化ramdisk。
这个变化的结果是对kdump及其配置文件进行了如下更改:
Ø 不再支持 net 指令。用户现在必须明确定义 ssh 或者 nfs。
Ø 不再支持 blacklist 选项,反之,用户可以指定 rd.driver.blacklist 作为其捕获内核的/etc/sysconfig/kdump 文件中的一个参数。
Ø 如果转储到预期的目标失败,dump_to_rootfs 动作替换了默认的 mount_root_run_init 动作。这个动作不会在 kdump 服务启动时挂载实际的 root 文件系统、运行 init 脚本并尝试保存 vmcore,而是挂载root 文件系统并立即在其中保存 vmcore。
Ø 新的 dracut_args 指令可让您在配置 kdump 时指定附加 dracut 参数。
Ø Kdump 中不再包含 debug_mem_level 选项。这个功能已经移动到 dracut 中。用户可以通过将rd.memdebug 指定为其捕获内核的 /etc/sysconfig/kump 文件中的一个参数得到类似的功能。
Ø 之前使用 options 指令包含初始化 ram 文件系统(initramfs)中具体内核模块参数。Red Hat Enterprise Linux 7 中不支持这个方法,反之,用户可以在其捕获内核的 /etc/sysconfig/kdump 文件中指定相关参数。
Ø 不再需要或者支持link_delay和disk_timeout参数,因为dracut包含udev,它可以处理之前需要这些参数的情况。
Ø 所有文件系统后端转储目标都必须在 kdump 服务启动前挂着到崩溃的内核中,并生成初始化 ramdisk 映像。您可以将这些目标添加到 /etc/fstab中以便在引导时自动挂着,这样就可以达到这个目的。
Ø 如果您指定路径,但不指定目标,同时您指定路径中的所有目录都是独立设备的挂载点,则会为该路径保存vmcore,而不是设备在该路径挂载的某一点。因此当系统重启是,挂载设备,但无法访问 vmcore,因为该设备是挂载到其位置的上级。Red Hat Enterprise Linux 7现在回在您指定路径但未指定目标时就这个问题给出警告信息。
4.7 链路聚合NIC teaming
RHEL7中引入teaming驱动,这不会影响现有的Bonding,只作为备选方法提供,不会替换bonding。
Teaming及bonding功能对比
4.8 如何找回root密码
1. 重启系统,按e。
2. 在linux16那行最尾部加上添加字符串“rd.break console=tty0”,例:
3. 按ctrl+x启动
4. 重新挂载文件系统,更改根目录
5. 修改root密码,退出,系统会重启。
5. 性能监控
5.1 PCP
RHEL7引入了对PCP(Performance Co-Pilot)的支持,PCP 是一套工具、服务及程序库,用于获取、存储及分析系统级的性能测量值,最初由Silicon Graphics International(硅谷图形)创建,除了监控和记录系统状态,PCP还为其他子系统提供获取数据的API和工具集。其轻量级分布式体系结构尤其适合复杂系统的集中化分析。可以使用Python,Perl,C++ 和 C 接口来添加性能指标。分析工具可以直接使用客户API(应用编程接口)(Python,C++,C),而且丰富的网页应用程序可以通过一个JSON 接口来搜索所有可用的性能数据。pcp 数据包提供命令行工具及底层功能,图形工具也需要 pcp-gui 数据包。默认情况下,pcp-doc软件包将详细文件安装至/usr/share/doc/pcp-doc目录。
5.2 tuned和tuned-adm
tuned 是一种后台调节程序,可通过设置调节配置文件使操作系统在特定工作负载下发挥更好的性能。tuned-adm 是一个命令行工具,允许用户在不同调节配置文件中进行切换。
常见用例包含一些预定义文件,但是 tuned-adm 允许用户自定义配置文件,既可以是预定义文件中的一个,也可以从头定义。在红帽企业版 Linux 7 中,默认文件是 throughput-performance。
tuned-adm 提供的文件分为两类:节能文件和性能提升文件。性能提升文件的内容如下,其侧重点分别为:
Ø 存储和网络的低延迟
Ø 存储和网络的高吞吐量
Ø 虚拟计算机性能
Ø 虚拟主机性能
Tuned 是一个调整的后台程序,在某种工作负载量下通过设置调整配置文件使操作系统有更好的性能表现。对其进行配置,使其对 CPU 和网络使用的变化做出响应,调整设置以提高激活设备的性能,并减少在未激活设备中的能耗。
在/etc/tuned/tuned-main.conf文件中编辑dynamic_tuning参数以配置动态调整行为。您也能在调整检查使用和更新调整细节之间,使用 update_interval参数以秒为单位配置时间。
更多信息,请参见手册:man tuned
tuned-adm 是一个命令行工具,提供一些不同配置文件以提高一些特定用例性能。它也提供一个评估系统和输出推荐的调整配置文件的子命令(tuned-adm recommend)。在您系统安装时它也能设置默认配置文件,以便能用于返回默认配置文件。
自红帽企业版 Linux 7 起,tuned-adm有能力运行所有命令,这些命令是启用和禁用调整配置文件的一部分。这允许您添加tuned-adm中不可用的环境特定检测。例如在选择应用何种调整配置文件之前,检测系统是否是主数据库节点。
红帽企业版 Linux 7 在配置定义文件中提供 include 参数,允许您将自己的 tuned-adm 配置文件建立在存在的配置文件基础上。
以下调整配置文件是随 tuned-adm 一起提供的,并由红帽企业版 Linux 7 支持。
吞吐量性能
服务器配置文件的重点在于提高吞吐量。这是默认配置文件,并是为大多数系统推荐的。
通过设置 intel_pstate 和 max_perf_pct=100,与节约能耗相比,该配置文件更注重性能表现。它能启用透明大页面,使用cpupower来设置performance CPU频率管理器,并将输入/输出调度器设置为deadline。它同样将 kernel.sched_min_granularity_ns设置为10μs,将 kernel.sched_wakeup_granularity_ns 设置为 15 μ s,以及将vm.dirty_ratio 设置40%。
延迟性能
服务器配置文件的重点在于降低延迟。该配置文件是为延迟敏感的工作负载所推荐的,其中工作负载会从c-状态调整和透明大页面增加的 TLB 高效性中获益。
通过设置intel_pstate和max_perf_pct=100,与节约能耗相比,该配置文件更注重性能表现。它能启用透明大页面,使用 cpupower 来设置 performance CPU 频率管理器,并请求值为1的 cpu_dma_latency。
网络延迟
服务器配置文件的重点在于降低网络延迟。
通过设置intel_pstate和max_perf_pct=100,与节约能耗相比,该配置文件更注重性能表现。它禁用透明大页面以及自动NUMA平衡 。它使用cpupower 来设置performance CPU频率管理器,并请求值为1的cpu_dma_latency。它同样将busy_read和busy_poll的时间设置为50 μs,并将tcp_fastopen设置为 3。
网络吞吐量
服务器配置文件的重点在于提高网络吞吐量。
通过设置intel_pstate和max_perf_pct=100,与节约能耗,该配置文件更注重性能表现。它能启用透明大页面,使用 cpupower 来设置 performance CPU 频率管理器,它同样将kernel.sched_min_granularity_ns 设置为10μs,kernel.sched_wakeup_granularity_ns设置为15μs,以及vm.dirty_ratio设置为40%。
虚拟来宾
虚拟来宾是一个重点在于优化红帽企业版Linux 7 虚拟机器性能的配置文件。
通过设置 intel_pstate 和 max_perf_pct=100,与节约能耗相比,该配置文件更注重性能表现。它降低了虚拟内存的交换。启用透明大页面,使用 cpupower 来设置performance CPU频率管理器。它也能将 kernel.sched_min_granularity_ns设置为10μs,kernel.sched_wakeup_granularity_ns 设置为15 μs,以及将vm.dirty_ratio设置为 40%。
虚拟-主机
虚拟主机是一个重点在于优化红帽企业版Linux 7虚拟主机的性能的配置文件。
通过设置 intel_pstate 和 max_perf_pct=100,相比节约能耗,该配置文件更注重性能表现。
它降低了虚拟内存的交换。它能启用透明大页面,更频繁地重写脏页到磁盘。使用cpupower来设置performance CPU频率管理器,它将 kernel.sched_min_granularity_ns设置为10 μ秒,kernel.sched_wakeup_granularity_ns 设置为 15 μ秒,kernel.sched_migration_cost设置为5 μ秒,以及vm.dirty_ratio 设置为40%。
配有 tuned-adm 的节能配置文件更多信息可在下列网站中查找http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/。
使用 tuned-adm 的更多信息,请参见手册页。
$ man tuned-adm
5.3 turbostat
turbostat 由 kernel-tools 数据包提供。是对 Intel® 64 位处理器中处理器的拓扑、频率、空闲的电源状态统计、温度和用电量的报告。
turbostat有助于识别服务器的用电量或空闲时间低效问题,也有助于识别系统的管理中断率(SMI),并能验证电源管理调节的效果。
turbostat需要root特权来运行,也需要处理器支持以下需求:
Ø 不变的时间戳计数器
Ø APERF 特定模型寄存器
Ø MPERF 模型特定寄存器
turbostat 工具提供系统处于不同状态所用时间的详细信息。 Turbostat 由 kernel-tools 软件包提供。
默认设置下,turbostat 为整个系统显示计数器结果的摘要,随后每隔五秒出现计数器结果,以下列标头:
pkg:处理器软件包编号。
core:处理器内核编号。
CPU:LinuxCPU(逻辑处理器)编号。
%c0:cpu 执行完毕的指令间隔百分比。
GHz:当 CPU处于c0状态时,平均时钟速度。
TSC:整个间隔进程中的平均时钟速度。
%c1、%c3、和%c6:处理器分别在 c1、c3 或者 c6 状态下间隔百分比。
%pc3或者%pc6:处理器分别在 pc3 或者 pc6 状态下的间隔百分比。
使用-i选项指定计数器结果间的不同周期,例如:运行turbostat -i 10 改为每10秒显示结果。
自红帽企业版Linux 7起,turbostat支持c7、c8、c9 和 c10状态。
5.4 numad
numad 是一个自动的 NUMA 关联管理后台程序。它监控系统的 NUMA 拓扑和资源使用率,目的是为了动态地提高 NUMA 的资源分配和管理(从而提高系统性能)。numad 可以根据系统的工作负载来为性能基准提供高达50%的改善。它还提供预先安置咨询服务,可以通过多种工作关联系统进行查询,以此为最初绑定的CPU和内存资源的进程提供协助。
numad 以一个节点为基础,通过定期访问 /proc 文件系统中的信息来监控可用的系统资源。它能尝试将资源使用率保持在一个特定的等级,并在必要时通过移动 NUMA 节点间的进程来调整资源分配。numad 可以试图通过本地化和隔离系统中 NUMA 节点子集的重要进程来获得 NUMA 的最佳性能。
numad 主要对长时间运行程序的系统有用,这些程序消耗大量的资源并包含在总系统资源中的一个子集里。它也对消耗多个 NUMA 节点资源值的应用程序有用,但当系统资源消耗比例增加时,numad 的优势会减小。
当程序只运行几分钟或不消耗太多资源时,numad 不大可能会提高性能。拥有连续且不可预测的内存访问模式的系统,如大内存数据库,也不大可能受益于 numad。
关于使用 numad 的更多信息,参见手册:man numad
5.5 SystemTap
SystemTap 是一个跟踪和探测工具,使用户可以详尽地监控和分析操作系统的活动,尤其是内核活动。它提供的信息类似于 top、ps、netstat 和 iostat 工具的输出,但包括筛选和分析所收集数据的额外选项。
SystemTap 提供对系统活动和应用程序性能更为深入且更为准确的分析,使用户能够精确地找到系统和应用程序的瓶颈。
关于SystemTap的更多信息,请见红帽企业版Linux 7《SystemTap Beginner's Guide》和红帽企业版 Linux7《SystemTap TapSet Reference》。两本书获取网址:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7