目标
- 优化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
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是否支持Trim1
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相应速度