目标
- 优化OSD节点性能
- 关闭OSD节点瓶颈项
优化项
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 | lscpu | grep -i numa |
关闭后
1 | lscpu | grep -i numa |
Jumbo Frames
将cluster network 的网卡MTU设置为9000,修改后需要重启生效
1 | echo "MTU=9000" | tee -a /etc/sysconfig/network-script/ifcfg-{网卡} |
通过ifconfig查看mtu修改情况
1 | ifconfig |
SSD Trim
为减少SSD写放大,需要开启Trim。
判断SSD是否支持Trim
1 | hdparm -I /dev/{SSD硬盘} | grep -i trim |
出现 “TRIM supported” 表示支持Trim,否则表示不支持Trim指令.
在xfs文件系统中开启trim指令,需要挂载xfs文件系统时,option中增加discard
Scheduler
硬盘I/O调度机制配置,SSD 推荐采用“noop”,机械硬盘推荐采用“deadline”
修改/etc/udev/rules.d/60-schedulers.rules
,增加如下:
1 | system default: set cfq scheduler for rotating disks |
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 | * soft core 10240 |
修改后,可通过ulimit -a
查看。
PID
修改pid max值,打破系统运行进程数量瓶颈,将其设置为4194303(系统默认是 32768)
修改/etc/sysctl.conf
文件,增加kernel.pid_max=4194303
cgroup
若集群搭建采用超融合方案(计算节点与存储节点混搭),使用cgroup将cpu与OSD进程绑定,减少cpu时间片切换次数,提高OSD相应速度