Show Table of Contents
使用
章 9. Kernel
SHMMAX 與 SHMALL kernel 參數已復原為預設值
先前,設置於
/usr/lib/sysctl.d/00-system.conf 檔案中的 kernel.shmmax 與 kernel.shmall 參數的值過低。基於如此,部分應用程式(例如 SAP)無法正常運作。這項不適用的值已被移除,現在所使用的是足夠高的 kernel 預設值。
THP 已不再會造成記憶體損毀
THP(通透型巨型分頁,Transparent huge page)先前在進行讀取和寫入作業時無法正確同步化。在某些情況下當 THP 啟用時,會造成記憶體損毀。記憶體屏障已加入 THP 處理中,因此這項記憶體損毀的問題將不會再發生。
SCSI LIO 重訂基底
CSI kernel 目標 LIO 已從 Linux-4.0.stable 重設基底。這包含了許多錯誤修正,最主要乃針對於 iSER,不過同時也新增了 XCOPY、WRITE SAME 以及 ATS 指令上的支援;以及 DIF 資料整合性支援。
makedumpfile 現在支援了新的 sadump 格式,以表示達 16 TB 的實體記憶體
makedumpfile 指令現在已支援新的 sadump 格式,並且已能表示超過 16 TB 的實體記憶體空間。這能讓 makedumpfile 的使用者讀取特定新伺服器型號上的 sadump 所產生、超過 16 TB 的傾印檔案。
現在在移除或升級 kernel 時,已不再會顯示一則警告
kmod 所使用來管理 kABI 相容的模組符號連結的 weak-modules script 先前在移除與 kernel 相聯的檔案時,會將 /lib/modules/<version>/weak-updates 目錄移除。這目錄是由 kernel 套件所擁有,將它移除會造成檔案系統與 rpm 所預期的狀態之間產生不一致的情況。這會使得 kernel 每次升級或移除時,皆會出現一則警告。
這個 script 已更新並會移除
weak-updates 目錄的內容,但會保留目錄本身,而警告已不會再出現。
新套件:libevdev
libevdev 是個 Linux Kernel 輸入事件裝置介面的低層函式庫。它提供了安全的介面以查詢裝置能力,和處理來自於裝置的事件。目前版本的 xorg-x11-drv-evdev 和 xorg-x11-drv-synaptics 需要依賴此函式庫。
Tuned 現在能在 no-daemon 模式下執行
先前,Tuned 僅能作為一項 daemon 執行,但因為 Tuned daemon 的記憶體佔位空間(footprint)的關係,這可能會影響小型系統的效能。透過這項更新,Tuned 加入了一個不需要任何駐存記憶體的 no-daemon(one shot)模式。no-daemon 模式就預設值會被停用,因為 Tuned 大部份的功能在此模式中皆無法使用。
新套件:tuned-profiles-realtime
tuned-profiles-realtime 套件已新增至 Red Hat Enterprise Linux Server 和 Red Hat Enterprise Linux for Real Time 中。它包含了一個即時的設定檔以供
tuned 工具程式使用來執行 CPU 隔離與 IRQ 調整。當設定檔啟用後,它便會讀取一個含有變數的部分(這部分指定了欲隔離的 CPU)並移動所有可能會從這些 CPU 核心上移除的執行緒。
使用 blk-mq 進行多佇列 I/O 排程
RHEL 7.2 為區塊裝置新增了一項多重佇列 I/O 排程機制,其名稱為 blk-mq。它可藉由允許特定裝置驅動程式將 I/O 請求對映至多重硬體或軟體佇列,以改善效能。這項效能改善來自於減少多重執行緒對單一裝置執行 I/O 時所產生的鎖定爭用(lock contention)。較新的裝置(例如非揮發性記憶體,NVMe)最能夠有效善用這項功能,這是基於其對於多重硬體提交和完成佇列的原生支援,以及其低延遲的效能特性。取得的效能提升將一如往常視確切硬體和負載而定。
現在以下驅動程式已納入
blk-mq 功能,預設上為啟用:virtio-blk、mtip32xx、nvme 以及 rbd。
scsi-mq 這項相關的功能能讓小型電腦系統介面(Small Computer System Interface,SCSI)裝置驅動程式使用 blk-mq 基礎結構。scsi-mq 功能乃 RHEL 7.2 中的技術預覽。若要啟用 scsi-mq,請在 kernel 指令列上指定
scsi_mod.use_blk_mq=y。預設值為 n(停用)。
DM multipath 目標使用了以要求為主的 DM,也可以配置給
blk-mq 基礎架構使用,前提是要指定 dm_mod.use_blk_mq=y kernel 選項。預設值為 n(停用)。
如果底層的 SCSI 裝置也使用
blk-mq 的話,設定 dm_mod.use_blk_mq=y 會有好處,因為這可以降低 DM 層的鎖定負荷。
若要判斷 DM multipath 在一部系統上是否有使用 blk-mq,請 cat
/sys/block/dm-X/dm/use_blk_mq 這個檔案,dm-X 代表您所指定的 DM multipath 裝置。這個檔案乃唯讀並且將反映 /sys/module/dm_mod/parameters/use_blk_mq 中,基於請求的 DM multipath 裝置被建立當時的全域值。
SCSI 錯誤訊息現在已能正常解譯
之前,kernel 改用了
printk() 函式,導致 SCSI 錯誤訊息會寫入多行。因此,如果多個裝置發生了多項錯誤,就難以正確解讀錯誤訊息。此次更新改變了 SCSI 的錯誤紀錄碼,使用 dev_printk() 選項,能把錯誤訊息與產生錯誤的裝置建立關連。
libATA 子系統和驅動程式已更新
這項功能增強更新提供了數項錯誤修正及 libATA 子系統和驅動程式的功能增強。
FCoE 和 DCB 已升級
FCoE 與 DCB(資料中心橋接,Data Center Bridging)kernel 元件已經升級至最新的上游版本,與之前的版本比起來,修正了幾個 bug、提供了幾項加強功能。
perf 已重訂基底為版本 4.1
perf 套件已經升級至上游版本 4.1,與之前的版本比起來,修正了數個效能與穩定性的問題,並提供了幾個加強功能。值得注意的是,這次升級新增了 Intel Cache QoS 監控功能與 AMD IBS Ops 功能,對 Intel Xeon v4、壓縮的 kernel 模組、參數化事件、以及指定臨界點長度提供了支援。除此之外,
perf 業已加入多種選項,如 --system-wide、top -z、top -w、trace --filter-pids 以及 trace --event 選項。
TPM 2.0 支援
這項更新為與版本 2.0 相容的 Trusted Platform Module(TPM)裝置新增了驅動程式等級的支援。
Turbostat 現在已會提供正確的輸出
先前,turbostat 工具會藉由讀取
cpu0(而不是 cpu)的 /dev/cpu/0/msr 檔案來偵測系統是否支援 MSR 裝置。也因為如此,停用 CPU 會讓 CPU 能藉由 turbostat 的輸出被偵測到。這項錯誤已修正,並且執行 turbostat ls 指令現在已會回傳正確的輸出。
Intel Xeon v5 處理器支援
這項功能增強為 turbostat 工具新增了 Intel Xeon v5 處理器上的支援。
zswap 工具利用了 zpool API
先前,zswap 工具直接使用了 zbud,這是一項會將壓縮分頁以 2:1(當完整時)比例儲存的儲存集區。這項更新包含了 zpool API,它提供了 zbud 或 zsmalloc 集區的存取能力:zsmalloc 會利用較高的密度來儲存壓縮分頁,以從高度壓縮的分頁取得更多的記憶體。在這項更新中,zsmalloc 已被升階為 /mm 驅動程式,如此一來 zpool 便能依照預期地運作。
/proc/pid/cmdline 的檔案長度現在已無限制
之前
/proc/pid/cmdline 給 ps 的檔案長度限制為 4,096 個字元,這已經寫死在 kernel 裡。此次更新確定了 /proc/pid/cmdline 的長度沒有限制,這在使用包含多個引數的長指令時,非常有用。
現在已提供了 dma_rmb 和 dma_wmb 的支援
此次更新引介了兩個新的先佔式之快取 / 記憶體讀寫工具:
dma_wmb() 與 dma_rmb()。這功能能用在驅動程式中。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.