前言
最近工作關係開始玩 CentOS 了,本次實作環境中採用的是 CentOS 7.4 (1709) Kernel 3.10.0-693.el7.x86_64) 映像檔,也就是新版 CentOS 7.4 最小化安裝版本 (Minimal Install),那麼開始來玩玩吧。💪實作環境
調整 I/O Scheduler 為 Noop 加速 Disk I/O
由於本文的運作環境為 Windows Server 2016 Hyper-V 虛擬化平台。因此,根據官方最佳作法 Best Practices for running Linux on Hyper-V | Microsoft Docs 以及 What is the suggested I/O scheduler to improve disk performance when using Red Hat Enterprise Linux with virtualization? 文件內容可知,建議將 CentOS I/O Scheduler 調整為 Noop 以便加速 Disk I/O。# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
# echo "noop" > /sys/block/sda/queue/scheduler
# cat /sys/block/sda/queue/scheduler
[noop] deadline cfq
但是,上述方式只是調整 CentOS 運作中的 I/O Scheduler,倘若 CentOS 主機重新啟動時又會恢復預設值。因此,請修改「/etc/default/grub」設定檔在 GRUB_CMDLINE_LINUX 結尾加上「elevator=noop」,並且重新產生 grub.cfg 檔案後,便能避免 CentOS 主機重新啟動時恢復為 cfq 預設值,調整完成後請重新啟動 CentOS 主機。
# grep noop /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet elevator=noop"
接著,執行重建 grub.cfg 檔案的動作,值得注意的是採用 BIOS 或 UEFI 在檔案的重建路徑上會有所不同。
- BIOS-Based: grub2-mkconfig -o /boot/grub2/grub.cfg
- UEFI-Based: grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
# grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-005705789ca240cabc6c4c6e307e549e
Found initrd image: /boot/initramfs-0-rescue-005705789ca240cabc6c4c6e307e549e.img
done
超過 7 vCPU 或 30 GB vRAM 時應關閉 NUMA
由於本文的運作環境為 Windows Server 2016 Hyper-V 虛擬化平台,根據官方最佳作法 Best Practices for running Linux on Hyper-V | Microsoft Docs 以及 How to disable NUMA in Red Hat Enterprise Linux system? - Red Hat Customer Portal 文件內容可知。當 Hyper-V 虛擬化平台中的 CentOS 虛擬主機,配置的虛擬硬體超過 7 vCPU 或 30GB vRAM 時,建議加上 numa=off 關閉 NUMA 機制以便最佳化系統運作。因此,請修改「/etc/default/grub」設定檔在 GRUB_CMDLINE_LINUX 結尾加上「numa=off」,並且重新產生 grub.cfg 檔案後重新啟動 CentOS 主機。
# grep numa /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet elevator=noop numa=off"
接著,執行重建 grub.cfg 檔案的動作,值得注意的是採用 BIOS 或 UEFI 在檔案的重建路徑上會有所不同。
- BIOS-Based: grub2-mkconfig -o /boot/grub2/grub.cfg
- UEFI-Based: grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
# grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-005705789ca240cabc6c4c6e307e549e
Found initrd image: /boot/initramfs-0-rescue-005705789ca240cabc6c4c6e307e549e.img
done
CentOS 7.4 基礎設定系列文章:
- CentOS 7.4 基礎設定 (1) - 安裝整合服務並建立一般使用者帳號
- CentOS 7.4 基礎設定 (2) - 組態設定網路功能
- CentOS 7.4 基礎設定 (3) - 簡述 SELinux 安全性增強機制
- CentOS 7.4 基礎設定 (4) - 組態設定 VIM 及 Bash Shell 操作環境
- CentOS 7.4 基礎設定 (5) - 設定 sudo 管理員帳號管理機制
- CentOS 7.4 基礎設定 (6) - 禁止 Root 帳號本機及 SSH 遠端登入
- CentOS 7.4 基礎設定 (7) - 簡述 YUM 套件管理工具
- CentOS 7.4 基礎設定 (8) - 擴充 YUM 套件數量
- CentOS 7.4 基礎設定 (9) - 簡述 Systemd 啟動模式等級
- CentOS 7.4 基礎設定 (10) - 調整 Firewalld 防火牆規則
- CentOS 7.4 基礎設定 (11) - 定期寄送 CentOS 主機系統資訊 Log
- CentOS 7.4 基礎設定 (12) - 關閉不必要的系統服務
- (本文) CentOS 7.4 基礎設定 (13) - 採用 I/O Scheduler Noop 加速 Disk I/O
- CentOS 7.4 基礎設定 (14) - 完成 CentOS Base VM 的製作
- CentOS 7.4 基礎設定 (15) - 範本 CentOS 重新產生 Product_UUID