本文共 16675 字,大约阅读时间需要 55 分钟。
本文原创作者杜霆,京东商城基础平台部MySQL DBA,经作者同意发表于本人博客,如需转载需经本人同意。
一、测试背景
服务器升级SSD后,速度和性能没有得到应有的提升,原因是没有正确使用SSD,主要是raid、linux、mysql数据库等相关参数没有正确的配置,本文对SSD的相关参数进行了对比性能测试,根据相关资料以及测试结果得出相关结论,了解实用场景以及对应优势。
主机:172.20.166.52
Cpu:32 * Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz
内存:129G
操作系统:CentOS release 6.6
Sysbench:Sysbench 0.5
SSD硬盘:800G*6 raid5
主机:172.20.166.23
Cpu:32 * Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz
内存:129G
操作系统:CentOS release 6.6
Sysbench:Sysbench 0.5
SSD硬盘:800G*6 raid10 /raid0
使用Sysbench对相同硬件、软件环境的raid、linux、mysql等相关参数进行io性能测试、mysql性能测试,对比io性能。
IO性能测试Sysbench参数:
参数名称 | 参数值 |
file-block-size | 16k |
混合读写比例 | 1.5(读写比例3:2) |
file-num | 20 |
file-total-size | 200G |
max-time(单位秒) | 3600 |
MySQL性能测试Sysbench参数:
参数名称 | 参数值 |
file-block-size | 16k |
混合读写比例 | 1.5(读写比例3:2) |
oltp-tables-count | 15 |
oltp-table-size | 50000000 |
max-time(单位秒) | 3600 |
Linux对比测试参数如下:
参数类型 | 对比参数值1 | 对比参数值2 |
NUMA | 开启 | 关闭 |
IO调度算法 | Deadline | Noop |
Rotational轮转模式 | 0 | 1(默认值) |
read_ahead_kb预读大小 | 0 | 128(默认值) |
rq_affinity | 2 | 1(默认值) |
对Linux操作系统测试了5组参数,分别如上图表所示,由测试数据可得出如下结论:
1、关闭NUMA,对SSD硬盘性能提高较大;
2、IO调度算法采用Deadline和Noop性能差距不大,Noop调度算法性能略高于Deadline;
3、rotational、read_ahead_kb、rq_affinity参数的调整对SSD硬盘性能几乎没有影响,建议使用默认配置。
Raid对比测试参数如下:
参数类型 | 对比参数值1 | 对比参数值2 |
Write Policy | WriteBack-WB | WriteThrough-WT |
Read Policy | Normal(关闭预读功能) | ReadAdaptive |
IO Policy | Direct | Cached |
BGI(Background initialization) | Disabled(0%) | 30% |
BGI(Background initialization):
开启BGI,创建好Raid阵列后不必等待初始化完成就可以开始使用,比如分区和格式化,但是系统仍然在后台检查磁盘。
对Raid配置测试了4组参数,分别如上图表所示,由测试数据可得出如下结论:
1、Raid的Write Policy设置为WriteBack,硬盘性能有很大提高,而且性能比较稳定;
2、Raid的Read Policy设置为ReadAdaptive,硬盘性能略高于Normal;
3、Raid的IO Policy设置为Direct,性能明显高于Cached;
4、BGI采用默认配置的30%或者关闭BGI,性能几乎没有变化,建议使用默认配置。
OP配置对比如下:
参数类型 | 对比参数值1 | 对比参数值2 |
OP(Over-provisioning:预留空间) | NO-OP(硬盘空间全部分区) | 15%-OP(留下15%空间不分区) |
对比测试了不设置OP和设置15%的OP,如上图表所示,由测试数据可得出如下结论:
1、io测试时线程数小于128时,15%的OP的性能明显高于不设置OP的性能,随着线程数的增加,15%的OP的性能优势逐渐减少,到1024线程时,两者性能很接近。
2、mysql测试时15%的OP的性能略高于不设置OP的性能,两者性能很接近。
MySQL对比测试参数如下:
参数类型 | 对比值1 | 对比值2 | 对比值3 | 对比值4 | 对比值5 | 对比值6 | 对比值7 |
innodb_write_io_threads | 4 | 8 | 16 | ||||
innodb_read_io_threads | 4 | 8 | 16 | ||||
innodb_log_file_size | 512M | 1024M | 1536M | 2048M | |||
innodb_io_capacity | 500 | 1000 | 2000 | 3000 | 4000 | 8000 | 12000 |
innodb_max_dirty_pages_pct | 25 | 40 | 75 | 95 |
对MySQL测试了5组参数,分别如上图表所示,由测试数据可得出如下结论:
1、innodb_write_io_threads/ innodb_read_io_threads设置为8性能比较理想;
2、innodb_log_file_size设置为1536M或者2048M,性能差别不大;
3、innodb_io_capacity测试了从500到12000的参数,性能差别不大,设置为3000时出现测试数据的最大值,从测试数据观察,该参数设置在2000-8000范围内性能相对理想;
4、innodb_max_dirty_pages_pct设置为75性能较为理想。
涉及到的linux对比测试参数如下:
参数类型 | 对比参数值1 | 对比参数值2 |
NUMA | 开启 | 关闭 |
IO调度算法 | Deadline | Noop |
Rotational轮转模式 | 0 | 1(默认值) |
read_ahead_kb预读大小 | 0 | 128(默认值) |
rq_affinity | 2 | 1(默认值) |
对Linux操作系统测试了5组参数,分别如上图表所示,由测试数据可得出如下结论:
1、关闭NUMA,对SSD硬盘性能提高较大;
2、IO调度算法采用Deadline和Noop性能差距不大,Noop调度算法性能略高于Deadline;
3、rotational、read_ahead_kb、rq_affinity参数的调整对SSD硬盘性能几乎没有影响。
threads | 关numa-吞吐量 | 开numa-吞吐量 | 关numa-iops | 开numa-iops | 关numa-load | 开numa-load | 关numa-iowait | 开numa-iowait |
8 | 378.54 | 266.41 | 24226.79 | 17050.5 | 16 | 18 | 6.5 | 6 |
16 | 458.75 | 360.75 | 29359.85 | 23087.8 | 31 | 33 | 11 | 10 |
32 | 553.27 | 450.82 | 35409.14 | 28852.3 | 53 | 51 | 21 | 20 |
64 | 595.53 | 523.49 | 38113.78 | 33503.5 | 85 | 85 | 42 | 38 |
128 | 613.85 | 539.76 | 39286.61 | 34544.5 | 138 | 140 | 63 | 65 |
256 | 605.66 | 534.08 | 38762.29 | 34181.1 | 260 | 260 | 65 | 72 |
512 | 603.14 | 527.04 | 38600.85 | 33730.6 | 520 | 520 | 67 | 73 |
threads | 关numa-tps | 开numa-tps | 关numa-qps | 开numa-qps | 关numa-load | 开numa-load | 关numa-iowait | 开numa-iowait |
8 | 2382.1 | 1363.04 | 24995.58 | 24534.7 | 6 | 7 | 4 | 5 |
16 | 2727.46 | 2608.05 | 49094.31 | 46945 | 7 | 7 | 3 | 6 |
32 | 4324.6 | 4053.62 | 77842.73 | 72965.1 | 5 | 6.5 | 3 | 4.5 |
64 | 5317.55 | 4963.41 | 95715.96 | 89341.4 | 7 | 7.5 | 1.7 | 2.5 |
128 | 4758.36 | 4553.22 | 85650.52 | 81958 | 10 | 10 | 1.8 | 2 |
256 | 4494.63 | 4364.49 | 80903.31 | 78560.9 | 20 | 27 | 1.6 | 1.8 |
512 | 4467.94 | 4411.62 | 80422.83 | 79409.1 | 35 | 35 | 1.7 | 1.8 |
threads | deadline-吞吐量 | noop-吞吐量 | deadline-iops | noop-iops | deadline-load | noop-load | deadline -iowait | noop-iowait |
8 | 255.89 | 352.8 | 16377.04 | 22581.8 | 18 | 19.51 | 6.1 | 6.71 |
16 | 352.47 | 465.14 | 22557.94 | 29768.7 | 33 | 34.21 | 8.7 | 11.51 |
32 | 447.36 | 558.68 | 28631.13 | 35755.7 | 55 | 56.09 | 18 | 22.56 |
64 | 536.64 | 599.48 | 34345.19 | 38366.5 | 86 | 83.54 | 36 | 43.86 |
128 | 581.75 | 609.07 | 37231.87 | 38980.8 | 145 | 138.37 | 60 | 59.07 |
256 | 575.5 | 626.5 | 36831.87 | 40095.8 | 265 | 266.36 | 76 | 62.77 |
512 | 550.95 | 620.77 | 35260.53 | 39729.4 | 520 | 520.75 | 78 | 64.54 |
threads | deadline-tps | noop-tps | deadline-qps | noop-qps | deadline-load | noop-load | deadline-iowait | noop-iowait |
8 | 1555.47 | 1173.77 | 27998.43 | 21127.9 | 5 | 10.89 | 2 | 1.57 |
16 | 2723.71 | 2527.73 | 49026.76 | 45499.2 | 6 | 11.75 | 2.5 | 2.35 |
32 | 3989.45 | 3998.67 | 71810.16 | 71976.1 | 5 | 12.78 | 2.5 | 2.96 |
64 | 4743.53 | 4888.79 | 85363.88 | 87998.3 | 7.39 | 10.57 | 2.68 | 2.39 |
128 | 4587.23 | 4821.08 | 82570.19 | 86779.5 | 8.37 | 13.53 | 1.87 | 2.15 |
256 | 4446.68 | 4544.65 | 80040.23 | 81803.7 | 12.39 | 17.13 | 1.67 | 1.61 |
512 | 4340.15 | 4789.82 | 78122.7 | 86216.8 | 35.72 | 24.92 | 1.42 | 2.17 |
threads | 0-吞吐量 | 1-吞吐量 | 0-iops | 1-iops |
8 | 406.1 | 406.13 | 25990.49 | 25992.03 |
16 | 462.09 | 461.72 | 29573.52 | 29550.28 |
32 | 477.09 | 477.66 | 30533.51 | 30569.96 |
64 | 484.68 | 484.88 | 31019.8 | 31032.59 |
128 | 487.97 | 488.2 | 31229.86 | 31244.88 |
256 | 488.26 | 488.25 | 31248.86 | 31248.14 |
512 | 488.09 | 488.21 | 31237.47 | 31245.54 |
1024 | 487.96 | 487.96 | 31229.39 | 31229.69 |
threads | 128-吞吐量 | 0-吞吐量 | 128-iops | 0-iops |
8 | 406 | 406.61 | 25988.81 | 26023.23 |
16 | 462.25 | 462.5 | 29583.82 | 29600.2 |
32 | 477.61 | 477.89 | 30566.8 | 30584.83 |
64 | 484.92 | 485.05 | 31035.1 | 31043.36 |
128 | 488.22 | 488.3 | 31245.99 | 31251.39 |
256 | 488.27 | 488.31 | 31249.47 | 31251.88 |
512 | 488.25 | 488.19 | 31247.81 | 31244.06 |
1024 | 488.18 | 487.98 | 31243.82 | 31230.88 |
threads | 1-吞吐量 | 2-吞吐量 | 1-iops | 2-iops |
8 | 406.36 | 406.35 | 26006.89 | 26006.12 |
16 | 462.14 | 462.14 | 29577 | 29577.02 |
32 | 477.62 | 477.51 | 30567.6 | 30560.65 |
64 | 484.92 | 485.03 | 31034.82 | 31041.8 |
128 | 488.21 | 488.18 | 31245.61 | 31243.84 |
256 | 488.36 | 488.37 | 31254.91 | 31255.43 |
512 | 488.2 | 488.29 | 31244.94 | 31250.27 |
1024 | 488 | 488.09 | 31232.01 | 31237.56 |
涉及到的raid对比测试参数如下:
参数类型 | 对比参数值1 | 对比参数值2 |
Write Policy | WriteBack-WB | WriteThrough-WT |
Read Policy | Normal | ReadAdaptive |
IO Policy | Direct | Cached |
BGI(Background initialization) | Disabled(0%) | 30% |
BGI(Background initialization):
开启BGI,创建好Raid阵列后不必等待初始化完成就可以开始使用,比如分区和格式化,但是系统仍然在后台检查磁盘。
对Raid配置测试了4组参数,分别如上图表所示,由测试数据可得出如下结论:
1、Raid的Write Policy使用Writeback,硬盘性能有很大提高,而且性能比较稳定;
2、Raid的Read Policy使用ReadAdaptive,硬盘性能略高于Normal;
3、Raid的IO Policy使用Direct,性能明显高于Cached;
4、BGI采用默认配置30%或者关闭BGI,性能几乎没有变化。
threads | WB-吞吐量 | WT-吞吐量 | WB-iops | WT-iops |
8 | 352.8 | 298.89 | 22581.78 | 19128.82 |
16 | 465.14 | 397.59 | 29768.72 | 25445.96 |
32 | 558.68 | 441.74 | 35755.67 | 28271.6 |
64 | 599.48 | 460.09 | 38366.47 | 29446.06 |
128 | 609.07 | 459.93 | 38980.8 | 29435.51 |
256 | 626.5 | 465.37 | 40095.83 | 29783.48 |
512 | 620.77 | 112.92 | 39729.38 | 7227.12 |
threads | WB-tps | WT-tps | WB-qps | WT-qps | WB-load | WTB-load | WB-iowait | WT-iowait |
8 | 1173.77 | 1078.65 | 21127.87 | 19415.7 | 10.89 | 7.15 | 1.57 | 3.18 |
16 | 2527.73 | 1778.8 | 45499.17 | 32018.3 | 11.75 | 9.17 | 2.35 | 4.95 |
32 | 3998.67 | 2632.47 | 71976.13 | 47384.4 | 12.78 | 10.27 | 2.96 | 6.32 |
64 | 4888.79 | 3974.11 | 87998.27 | 71534 | 10.57 | 11.23 | 2.39 | 4.98 |
128 | 4821.08 | 3498.19 | 86779.46 | 62967.3 | 13.53 | 11.69 | 2.15 | 3.57 |
256 | 4544.65 | 3495.27 | 81803.69 | 62914.8 | 17.13 | 22.25 | 1.61 | 2.86 |
512 | 4789.82 | 3358.78 | 86216.75 | 60458 | 24.92 | 20.85 | 2.17 | 1.76 |
threads | Normal-吞吐量 | ReadAdaptive-吞吐量 | Normal-iops | ReadAdaptive-iops |
8 | 312.87 | 380.72 | 20023.46 | 24366.25 |
16 | 440.28 | 479.39 | 28177.66 | 30680.9 |
32 | 539.43 | 566.26 | 34523.69 | 36240.67 |
64 | 591.11 | 611.28 | 37831.34 | 39122.05 |
128 | 604.66 | 619.29 | 38698.5 | 39634.77 |
256 | 602.61 | 621.31 | 38566.82 | 39763.55 |
512 | 606.65 | 621.09 | 38825.55 | 39749.61 |
1024 | 604.67 | 619.26 | 38698.98 | 39632.65 |
threads | Normal-吞吐量 | ReadAdaptive-吞吐量 | Normal-iops | ReadAdaptive-iops |
8 | 312.87 | 380.72 | 20023.46 | 24366.25 |
16 | 440.28 | 479.39 | 28177.66 | 30680.9 |
32 | 539.43 | 566.26 | 34523.69 | 36240.67 |
64 | 591.11 | 611.28 | 37831.34 | 39122.05 |
128 | 604.66 | 619.29 | 38698.5 | 39634.77 |
256 | 602.61 | 621.31 | 38566.82 | 39763.55 |
512 | 606.65 | 621.09 | 38825.55 | 39749.61 |
1024 | 604.67 | 619.26 | 38698.98 | 39632.65 |
threads | Direct-吞吐量 | Cached-吞吐量 | Direct-iops | Cached-iops |
8 | 408.54 | 375.5 | 26146.57 | 24032.03 |
16 | 462.81 | 411.97 | 29619.75 | 26366.34 |
32 | 487.86 | 428.27 | 31222.75 | 27409.33 |
64 | 491.41 | 432.06 | 31450.35 | 27651.82 |
128 | 494.34 | 435.31 | 31637.56 | 27859.79 |
256 | 494.42 | 435.96 | 31642.94 | 27901.3 |
512 | 494.18 | 436 | 31627.73 | 27903.83 |
1024 | 493.97 | 436.11 | 31614.19 | 27911.18 |
threads | 30%-吞吐量 | disabled-吞吐量 | 30%-iops | disabled-iops |
8 | 413.43 | 411.95 | 26459.45 | 26364.5 |
16 | 469.9 | 469.59 | 30073.86 | 30054.01 |
32 | 494.27 | 493.5 | 31633.52 | 31584.15 |
64 | 496.97 | 496.4 | 31806.23 | 31769.53 |
128 | 499.9 | 499.41 | 31993.47 | 31962.09 |
256 | 499.97 | 499.59 | 31997.9 | 31973.49 |
512 | 499.69 | 499.13 | 31980.14 | 31944.6 |
1024 | 499.31 | 498.8 | 31955.78 | 31923.29 |
OP是Over-provisioning(预留空间)的简称,是指用户不可操作的容量,就是留出一部分容量不使用不分区,OP预留的空间一般被用于优化操作。
参数类型 | 对比参数值1 | 对比参数值2 |
OP(Over-provisioning:预留空间) | NO-OP(硬盘空间全部分区) | 15%-OP(留下15%空间不分区) |
对比测试了不设置OP和设置15%的OP,分别如上图表所示,由测试数据可得出如下结论:
1、io测试时线程数小于128时,15%的OP的性能明显高于不设置OP的性能,随着线程数的增加,15%的OP的性能优势逐渐减少,到1024线程时,两者性能很接近。
2、mysql测试时15%的OP的性能略高于不设置OP的性能,两者性能很接近。
threads | NO_OP-吞吐量 | 15%OP-吞吐量 | NO_OP-iops | 15%OP-iops |
8 | 355.44 | 400.85 | 22748.07 | 25654.71 |
16 | 496.2 | 521.74 | 31756.54 | 33391.2 |
32 | 601.71 | 612.09 | 38509.32 | 39173.7 |
64 | 635.39 | 639.79 | 40665.1 | 40946.7 |
128 | 641.7 | 646.56 | 41069.11 | 41379.56 |
256 | 640.71 | 644.65 | 41005.19 | 41257.91 |
512 | 640.51 | 642.44 | 40992.81 | 41116.14 |
1024 | 640.96 | 641.78 | 41021.33 | 41074.22 |
threads | NO_OP-tps | 15%OP-tps | NO_OP-qps | 15%OP-qps |
8 | 1721.79 | 1745.69 | 30992.22 | 31422.41 |
16 | 3070.81 | 2999.36 | 55274.51 | 53988.55 |
32 | 5024.17 | 5087.03 | 90435.04 | 91706.48 |
64 | 5769.8 | 5800.62 | 103856.32 | 104811.25 |
128 | 6029.35 | 6047.59 | 108528.26 | 108856.71 |
256 | 6163.54 | 6172.09 | 110943.75 | 111097.59 |
512 | 5825.3 | 5870.96 | 104855.43 | 105377.31 |
1024 | 5263.82 | 5302.43 | 94748.79 | 95443.74 |
涉及到的MySQL对比测试参数如下:
参数类型 | 对比值1 | 对比值2 | 对比值3 | 对比值4 | 对比值5 | 对比值6 | 对比值7 |
innodb_write_io_threads | 4 | 8 | 16 | ||||
innodb_read_io_threads | 4 | 8 | 16 | ||||
innodb_log_file_size | 512M | 1024M | 1536M | 2048M | |||
innodb_io_capacity | 500 | 1000 | 2000 | 3000 | 4000 | 8000 | 12000 |
innodb_max_dirty_pages_pct | 25 | 40 | 75 | 95 |
对MySQL测试了5组参数,分别如上图表所示,由测试数据可得出如下结论:
1、innodb_write_io_threads/ innodb_read_io_threads设置为8性能比较理想;
2、innodb_log_file_size设置为1536M或者2048M性能较理想,两者性能差别不大;
3、innodb_io_capacity测试了从500到12000的参数,性能差别不大,设置为3000时出现测试数据的最大值,从测试数据观察,该参数设置在2000-8000范围内性能相对理解;
4、innodb_max_dirty_pages_pct设置为75性能较为理想。
threads | 4threads-tps | 8threads-tps | 16threads-tps | 4threads-qps | 8threads-qps | 16threads-qps |
8 | 1173.77 | 1492.43 | 1419.11 | 21127.9 | 26863.76 | 25543.96 |
16 | 2527.73 | 2786.58 | 2503.45 | 45499.2 | 50158.43 | 45062.06 |
32 | 3998.67 | 4089.44 | 4047.88 | 71976.1 | 73609.92 | 72861.79 |
64 | 4888.79 | 5007.99 | 4906.46 | 87998.3 | 90143.74 | 88316.28 |
128 | 4821.08 | 4910.92 | 4968.95 | 86779.5 | 88796.58 | 89441.11 |
256 | 4544.65 | 4569.68 | 4576.27 | 81803.7 | 82254.23 | 82372.85 |
512 | 4457.77 | 4471.44 | 4430.32 | 80239.9 | 80485.88 | 79745.69 |
threads | 512M-tps | 1024M-tps | 1536M-tps | 2048M-tps | 512M-qps | 1024M-qps | 1536M-qps | 2048M-qps |
8 | 1492.43 | 1673.89 | 1624.9 | 1610.53 | 26863.76 | 30130.05 | 29248.2 | 28989.6 |
16 | 2786.58 | 2842.86 | 2883.26 | 2954.41 | 50158.43 | 51171.45 | 51898.65 | 53179.3 |
32 | 4089.44 | 4400.77 | 4498.56 | 4537.56 | 73609.92 | 79213.84 | 80974.15 | 81676 |
64 | 5007.99 | 5017.13 | 5095.41 | 5189.49 | 90143.74 | 90308.36 | 91717.42 | 93410.9 |
128 | 4710.92 | 5286.19 | 5309.15 | 5350.92 | 84796.58 | 95151.4 | 95564.78 | 96316.6 |
256 | 4569.68 | 5223.62 | 5460.57 | 5465.27 | 82254.23 | 94025.11 | 98290.23 | 98374.9 |
512 | 4471.44 | 5101.56 | 5403.77 | 5408.45 | 80485.88 | 91828.04 | 97267.94 | 97352 |
threads | 500-tps | 1000-tps | 2000-tps | 3000-tps | 4000-tps | 6000-tps | 8000-tps | 12000-tps |
8 | 1658.26 | 1630.92 | 1567.11 | 1616.33 | 1587.68 | 1605.74 | 1616.98 | 1618.39 |
16 | 2889.11 | 2887.32 | 2925.1 | 2946.26 | 2927.38 | 2946.93 | 2933.97 | 3038.03 |
32 | 4485.99 | 4491.16 | 4560.83 | 4564.73 | 4536.17 | 4563.98 | 4563.86 | 4687.67 |
64 | 5115.52 | 5083.29 | 5158.46 | 5158.74 | 5183.22 | 5209.63 | 5136.77 | 5341.22 |
128 | 5323.14 | 5307.32 | 5324.14 | 5356.27 | 5350.89 | 5470.49 | 5439 | 5461.05 |
256 | 5477.86 | 5492.01 | 5505.18 | 5513.2 | 5473.41 | 5492.54 | 5494.19 | 5465.69 |
512 | 5426.18 | 5414.67 | 5400.05 | 5404.58 | 5277.26 | 5363.1 | 5374.89 | 5364.93 |
1024 | 4911.33 | 4884.97 | 4901.06 | 4924.87 | 4931.67 | 4924.81 | 4760.45 | 4936.01 |
threads | 500-qps | 1000-qps | 2000-qps | 3000-qps | 4000-qps | 6000-qps | 8000-qps | 12000-qps |
8 | 29848.7 | 29356.6 | 28208.03 | 29093.9 | 28578.33 | 28903.25 | 29105.55 | 29131 |
16 | 52003.9 | 51971.8 | 52651.85 | 53032.6 | 52692.87 | 53044.72 | 52811.43 | 54684.6 |
32 | 80747.8 | 80840.9 | 82094.89 | 82165.1 | 81651.13 | 82151.58 | 82149.53 | 84378.1 |
64 | 92079.4 | 91499.3 | 92852.3 | 92857.4 | 93298.04 | 93773.42 | 92461.83 | 96142 |
128 | 95816.5 | 95531.7 | 95834.49 | 96412.9 | 96316.11 | 98468.76 | 97902.01 | 98298.8 |
256 | 98601.6 | 98856.2 | 95505.18 | 99237.7 | 98521.44 | 98865.67 | 98895.35 | 98382.4 |
512 | 97671.2 | 97464.1 | 97200.94 | 97282.5 | 94990.66 | 96535.85 | 96747.99 | 96568.8 |
1024 | 88403.9 | 87929.4 | 88219.13 | 88647.6 | 88770.07 | 88646.51 | 85688.05 | 88848.1 |
threads | 25-tps | 40-tps | 75-tps | 95-tps |
8 | 1592.35 | 1635.88 | 1616.33 | 1604.2 |
16 | 2926.66 | 2914.71 | 2946.26 | 2963.03 |
32 | 4621.18 | 4669.54 | 4564.73 | 4640 |
64 | 5183.43 | 5216.98 | 5158.74 | 5221.39 |
128 | 5374.46 | 5418.1 | 5356.27 | 5346.03 |
256 | 5467.12 | 5465.59 | 5513.2 | 5436.56 |
512 | 5325.57 | 5394.82 | 5404.58 | 5347.19 |
1024 | 4746.07 | 4899.43 | 4924.87 | 4769.11 |
使用6块ssd硬盘,分别配置了raid5、raid10、raid0、raid0-15%OP,进行了io混合随机读写性能测试。
Sysbench测试参数:
参数名称 | 参数值 |
file-block-size | 16k |
混合读写比例 | 1.5(读写比例3:2) |
oltp-tables-count | 15 |
oltp-table-size | 50000000 |
1、硬盘利用率
Raid0的硬盘空间使用率是100%,如果预留15%做OP,空间使用率只有全部硬盘大小的75%;Raid5的空间使用率是(n-1)/n(n是磁盘数量,磁盘数量越多,空间使用率越高);Raid10的硬盘使用率只有50%;硬盘使用率顺序是
Raid0 > raid0-15%OP > Raid5 > Raid10
2、读写性能
raid0、raid0-15%OP的读写性能明显高于raid5、raid10,raid0-15%OP的性能略高于raid0。
raid0-15%OP > raid0 > raid10 > raid5
3、稳定安全性
Raid10是最安全稳定的,Raid5提供了一块盘的奇偶检验保证安全,Raid0没有安全保护措施。另外当Raid5一块盘出现故障时候,其性能明显下降。
1、io混合随机读写性能数据
threads | raid5-吞吐量 | raid10-吞吐量 | raid0-NO_OP-吞吐量 | raid0-15%OP-吞吐量 | raid5-iops | raid10-iops | raid0-NO_OP-iops | raid0-15%OP-iops |
8 | 486.81 | 378.54 | 355.44 | 400.85 | 31155.9 | 24226.79 | 22748.07 | 25654.71 |
16 | 531.31 | 458.75 | 496.2 | 521.74 | 34003.5 | 29359.85 | 31756.54 | 33391.2 |
32 | 567.32 | 553.27 | 601.71 | 612.09 | 36308.5 | 35409.14 | 38509.32 | 39173.7 |
64 | 588.14 | 595.53 | 635.39 | 639.79 | 37640.9 | 38113.78 | 40665.1 | 40946.7 |
128 | 584.11 | 613.85 | 641.7 | 646.56 | 37383.2 | 39286.61 | 41069.11 | 41379.56 |
256 | 586.53 | 605.66 | 640.71 | 644.65 | 37537.8 | 38762.29 | 41005.19 | 41257.91 |
512 | 584.89 | 603.14 | 640.51 | 642.44 | 37432.7 | 38600.85 | 40992.81 | 41116.14 |
2、一块硬盘故障,raid10和raid5性能变化
raid5 | MB_read/s | MB_wrtn/s | 吞吐量 | raid10 | MB_read/s | MB_wrtn/s | 吞吐量 |
306.98 | 244.34 | 551.32 | 342.13 | 239.01 | 581.14 | ||
307.48 | 240.34 | 547.82 | 420.18 | 174.85 | 595.03 | ||
311.98 | 243.11 | 555.09 | 210.94 | 319.88 | 530.82 | ||
306.69 | 242.92 | 549.61 | 396.29 | 198.82 | 595.11 | ||
309.18 | 241.09 | 550.27 | 455.8 | 144.79 | 600.59 | ||
317.05 | 243.94 | 560.99 | 321.38 | 248.11 | 569.49 | ||
328.3 | 247.53 | 575.83 | 269.85 | 288.21 | 558.06 | ||
319.46 | 257.87 | 577.33 | 478.38 | 136.64 | 615.02 | ||
311.09 | 253.59 | 564.68 | 460.5 | 134.47 | 594.97 | ||
315.82 | 256.95 | 572.77 | 377.16 | 210.37 | 587.53 | ||
158.27 | 156.9 | 315.17 | 368.72 | 215.12 | 583.84 | ||
160.46 | 166.41 | 326.87 | 291.59 | 267.16 | 558.75 | ||
159.12 | 163.47 | 322.59 | 414.14 | 192.47 | 606.61 | ||
156.2 | 162.23 | 318.43 | 459.39 | 151.82 | 611.21 | ||
160.99 | 163.99 | 324.98 | 215.77 | 325.02 | 540.79 | ||
157.78 | 161.77 | 319.55 | 391.12 | 198.15 | 589.27 | ||
160.99 | 163.99 | 324.98 | 365.72 | 221.12 | 586.84 | ||
158.06 | 160.86 | 318.92 | 250.39 | 297.45 | 547.84 | ||
161.4 | 162.81 | 324.21 | 457.67 | 153.27 | 610.94 | ||
159.08 | 161.38 | 320.46 | 360.43 | 226.9 | 587.33 |
SSD对应linux、raid、mysql推荐参数以及推荐参数设置方法。
2、io调度算法设置为noop
3、Rotational保持默认值1
4、read_ahead_kb保持默认值128
5、rq_affinity保持默认值1
1、关闭numa
进入System BIOS设置,选择Memory设置,选择Node Interteaving为Enable进行关闭numa,如下图所示。
执行命令“numactl --hardware”进行检查,输出结果available: 1 nodes (0)时表示关闭成功,如下图。
2、修改io调度算法noop
执行命令:echo noop > /sys/block/sda/queue/scheduler
检查命令:cat /sys/block/sda/queue/scheduler
3、Rotational值的调整
执行命令:echo 0 > /sys/block/sda/queue/rotational
查看命令:cat /sys/block/sda/queue/rotational
4、read_ahead_kb值的调整
执行命令:echo 0 > /sys/block/sda/queue/read_ahead_kb
查看命令:cat /sys/block/sda/queue/read_ahead_kb
5、rq_affinity值的调整
执行命令:echo 0 > /sys/block/sda/queue/rq_affinity
查看命令:cat /sys/block/sda/queue/rq_affinity
2、Read Policy设置为ReadAdaptive
3、IO Policy设置为Direct
4、BGI(Background initialization)保持默认设置30%
使用MegaCli命令可以修改Raid参数配置,该命名是官方提供的针对MegaRAID卡的设置命令,如果使用不同品牌Raid卡,可以参照官方提供的命令进行设置。
MegaCli查看Raid参数命令:
查看所有Raid:MegaCli -LDGetProp -Cache -LALL –aALL
查看其中一个Raid:MegaCli -LDGetProp -Cache -L1 -a0
MegaCli修改Raid参数命令:
MegaCli -LDSetProp WT|WB|NORA|RA|ADRA -L1 -a0
or
MegaCli -LDSetProp -Cached|-Direct -L1 -a0
1、Write Policy设置为WriteBack命令
MegaCli -LDSetProp WB -L1 -a0
2、Read Policy设置为ReadAdaptive命令
MegaCli -LDSetProp ADRA -L1 -a0
3、IO Policy设置为Direct命令
MegaCli -LDSetProp -Direct -L1 -a0
4、BGI调整方法
进入Device Settings,选择Interated RAID Controller,选择Controller Managent,选择Change Controller Properties,可以修改BGI参数,如下图。
推荐保留15%的硬盘空间不进行分区,这部分空间即是OP的保留空间。
设置方法:分区时候保留15%的硬盘空间不进行分区。
1、innodb_write_io_threads/ innodb_read_io_threads推荐设置为8
2、innodb_log_file_size推荐设置为2048M
3、innodb_io_capacity推荐设置为3000
4、innodb_max_dirty_pages_pct设置为75
本文转自 lover00751CTO博客,原文链接:http://blog.51cto.com/wangwei007/1902387,如需转载请自行联系原作者