Ceph性能优化

一、硬件选型

(1)服务器

1GHz CPU per  OSD (the  more the better)

1GB  RAM  per OSD

1GHz  CPU*4  per  MON

4GB  RAM  per  MON

(2)硬盘

SSD、HDD配比1:3~5 (推荐使用Intel DC 3700或同等级以上SSD) 

每个物理节点OSD数量最好控制在单机最大网络带宽以内(每块SATA磁盘平均吞吐量100MB/s)

(3)网卡

每个物理节点最多1个10G或最少4个1000M(采用多网卡bonding方式,mode4)

(4)RAID

write through(no cache)

Raid1(OSD)

(5)IDRAC/ILO

(6)10G switch

10GB网口数量 = 服务器数量*2,跨多个机柜需要用到40GB级联口

      InfinBand架构是一种支持多并发链接的“转换线缆”技术。InfinBandr的核心就是把I/O子系统从服务器主机中剥离出去,通过光纤介质,采用基于交换的端到端的传输模式连接他们。

RDMA

RDMA(Remote Direct Memory Access)技术全称远程直接数据存储,就是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快递移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和文本交换操作,因而能解放内存带宽和CPU周期用于改进应用系统性能。

二、Accelio + ceph

(1)Accelio:https://github.com/accelio/accelio/

Accelio  is an Open Soure high-performance, asynchronous, reliable messaging and RemoteProcedure Call(RPC) library. Accelio optimizes hardware acceleration for Remote Direct MemoryAccess (RADMA),TCP/IP and shared-memory.

(2)Configure ceph

./configure -enable-xio

三、Ceph + Infiniband(RDMA)

SATA  SSD

PCIe  SSD

四、系统优化

(1)开启HT,充分发挥处理器的性能

(2)关闭NUMA,减少跨NUMA节点访问的性能损耗

  1. 添加内核参数numa=off
  2. 在BIOS里关闭NUMA

(3)关闭节能模式,选择Performance模式

  1. for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor;do [ -f $CPUFREQ] || continue;echo -n performance > $CPUFREQ;done
  2. 在BISO里设置

(4)CPU bound

(5)Memory Limit

增大kernel pid max

$:echo 4194303 > /proc/sys/kernel/pid_max

增大数据预读值,提高读性能

$:echo "8192" > /sys/block/sda/queue/read_ahead_kb

SWAP的使用倾向概略率,在centos7中,最后保留1-10之间

$:sysctl -w vm.swappiness=0

IO调度策略,对于SATA/SAS 选择deadline.SSD用noop

$:echo "deadline" > /sys/block/sd[x]/queue/scheduler
$:echo "noop" > /sys/block/sd[x]/queue/scheduler

调整脏数据回写比例

$:echo 5 > /proc/sys/vm/diry_background_ratio
$:echo 10 > /proc/sys/vm/dirty_ratio

(6)文件系统

推荐选择XFS文件系统,并保证4k对齐。添加以下挂载参数

rw,noatime,nodiratime,nobarrier,inode64,logbufs=8,logbsize=256k,delaylog

(7)上层应用

  1. 在fio测试中可以发现,iodepth值对测试结果有着显著的影响,所以client端能够选用Linux aio库,理论上是可以在一定程度上优化性能
  2. 云环境中的VM,可以使用virtio scsi实现多队列支持

(8)网卡MTU

网卡增大MTU值,可以增强传输性能,但在交换机上需要同等的设置

临时设置

$:ifconfig eth0 mtu 9000

永久设置

$:echo "MTU=9000" >> /etc/sysconfig/network-script/ifcfg-eth0
$:service network restart

 

参数名描述默认值建议值
public network客户端访问网络 192.168.100.0/24
cluster network集群网络 192.168.1.0/24
max open files如果设置了该选项,Ceph会设置系统的max open fds0131072
filestore xattr use omap0为XATTRS使用object map,EXT4文件系统时使用,XFS或者btrfs也可以使用falsetrue
filestore max syncinterval从日志到数据盘最大同步间隔(seconds)515
filestore min sync interval从日志到数据最小同步间隔(seconds)0.110
filestore queue max sync interval数据盘最大接受的操作数5002500
filestore queue min sync interval数据盘一次操作最大字节数(bytes)100<<2010485760
filestore queue commiting max ops数据盘能够commit的操作数5005000
filestore queue commiting min ops数据盘能够commit的最大字节数(bytes)100<<201048760000
filestore op threads并发文件系统操作数232
osd journal sizeOSD日志大小(MB)512020000
journal max write bytesjournal一次性写入的最大字节数(bytes)10<<201073714824
journal max write entriesjournal一次性写入的最大记录数10010000
journal  queue max opsjournal一次性最大在对列中的操作数50050000
journal queue max bytesjournal一次性最大在队列中的字节数(bytes)10<<2010485760000
osd max write sizeosd一次可写入的最大值(MB)90512
osd client write size客户端允许在内存中的最大数据(bytes)5242880002147483648
osd client message size cap在Deep scrub时候允许读取的字节数(bytes)524288131072
osd deep scrub stride

OSD进程操作的线程数

28
osd op threadsOSD密集型操作例如恢复和scrubbing时的线程14
osd map cache size保留OSD Map的缓存(MB)5001024
osd map cache blsizeOSD进程在内存中的OSD Map缓存(MB)50128
osd recovery op priority恢复操作优先级。取值1-63,值越高占用资源越高104
osd recovery max active同一时间内活跃的恢复请求数1510
osd max backflls一个OSD允许的最大backfills数104
rbd cacheRBD缓存truetrue
rbd cache sizeRBD缓存大小(bytes)33554432268435456
rbd cache max dirty缓存为write-back时允许的最大dirty字节数(bytes),如果为0,使用write-through25165824134217728
rbd cache max dirty age在被刷新到存储盘前dirty数据存在缓存的时间(seconds)15

(9)条带设置

(10)tcmalloc

  1. 调整max thread cache :TCMALLOC_MAX_TOTAL_CACHE_BYTES=128M
  2. @@-3026+3027@@  /etc/init.d/cepe

    3. cmd="$SYSTEMD_RUN -r bash -c '$files $cmd --cluster $cluster -f' "

五、性能测试

1、rados测试

$:rados -p rbd bench -b 4194304 60 write -t 32 --no-cleanup
$:rados -p rbd bench -b 4194304 60 seq -t 32 --no-cleanup
$:rados -p rbd cleanup --prfix benchmark_data_ubuntu-ceph-06_30928

2、FIo工具

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值