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-> graphical.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