目标
优化项 CPU Status 将cpu status 设置为 performance,可通过BIOS设置,或在系统中进行如下配置,修改后需要重启生效
1 for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done
Hyper-Threading(HT) 开启VT和HT,在BIOS中配置
NUMA 关闭NUMA,可通过BIOS关闭,也可在加载Kernel是设置 打开/etc/grub2-efi.cfg
,修改kernel加载部分,修改后需要重启生效
1 linuxefi /vmlinuz-3.10.0-327.el7.x86_64 root=/dev/mapper/rhel-root ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet LANG=en_US.UTF-8 numa=off
关闭前
1 2 3 4 $ lscpu | grep -i numa NUMA node(s): 2 NUMA node0 CPU(s): 0-5,12-17 NUMA node1 CPU(s): 6-11,18-23
关闭后
1 2 3 $ lscpu | grep -i numa NUMA node(s): 1 NUMA node0 CPU(s): 0-23
Jumbo Frames 将cluster network 的网卡MTU设置为9000,修改后需要重启生效
1 echo "MTU=9000" | tee -a /etc/sysconfig/network-script/ifcfg-{网卡}
通过ifconfig查看mtu修改情况
1 2 3 4 5 6 7 8 9 $ ifconfig ens5f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9000 inet 192.168.43.5 netmask 255.255.255.0 broadcast 192.168.43.255 inet6 fe80::92e2:baff:febf:3800 prefixlen 64 scopeid 0x20<link> ether 90:e2:ba:bf:38:00 txqueuelen 1000 (Ethernet) RX packets 5218040 bytes 661253942 (630.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 5170015 bytes 605082933 (577.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
SSD Trim 为减少SSD写放大,需要开启Trim。 判断SSD是否支持Trim
1 2 $ hdparm -I /dev/{SSD硬盘} | grep -i trim * Data Set Management TRIM supported (limit 8 blocks)
出现 “TRIM supported” 表示支持Trim,否则表示不支持Trim指令.
在xfs文件系统中开启trim指令,需要挂载xfs文件系统时,option中增加discard
Scheduler 硬盘I/O调度机制配置,SSD 推荐采用“noop”,机械硬盘推荐采用“deadline” 修改/etc/udev/rules.d/60-schedulers.rules
,增加如下:
1 2 3 # system default: set cfq scheduler for rotating disks ACTION=="add|change",KERNEL=="sd[a-z]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="deadline" ACTION=="add|change",KERNEL=="sd[a-z]",ATTR{queue/rotational}=="0",ATTR{queue/scheduler}="noop"
rotational 为 “1” 表示机械硬盘,为“0”表示SSD
查看修改是否生效
1 cat /sys/block/{硬盘}/queue/scheduler
read_ahead_kb 设置硬盘预读大小为8k 修改/etc/udev/rules.d/60-schedulers.rules
,增加如下:
1 ACTION=="add|change",KERNEL=="sd[b-z]",ATTR{queue/read_ahead_kb}="8192"
查看是否生效
1 cat /sys/block/{硬盘}/queue/read_ahead_kb
xfs option xfs 挂载增加如下option:
rw
允许读写操作
noexec
不允许运行操作
nodev
不支持设备文件
noatime
不更新inode访问时间
nobarrier
关闭cache 回写机制
FD,core & PID FD & core 修改 max open files 最大值,系统默认是1024,将其修改为131072 修改 core 值,当程序崩溃时,会输出core文件,便于分析错误原因 修改/etc/security/limits.conf
文件,增加:
1 2 3 * soft core 10240 * soft nofile 131072 * hard nofile 131072
修改后,可通过ulimit -a
查看。
PID 修改pid max值,打破系统运行进程数量瓶颈,将其设置为4194303(系统默认是 32768) 修改/etc/sysctl.conf
文件,增加kernel.pid_max=4194303
cgroup 若集群搭建采用超融合方案(计算节点与存储节点混搭),使用cgroup将cpu与OSD进程绑定,减少cpu时间片切换次数,提高OSD相应速度
参考&鸣谢