本文原创作者杜霆,京东商城基础平台部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


四、测试结果

1、Linux系统参数测试结果

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硬盘性能几乎没有影响,建议使用默认配置。

2、Raid参数测试结果

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,性能几乎没有变化,建议使用默认配置。

3、Raid0的OP测试结果

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的性能,两者性能很接近。

4、MySQL参数测试结果

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参数测试数据对比

涉及到的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硬盘性能几乎没有影响。

1、NUMA测试数据对比
1、IO性能测试

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

2、MySQL性能测试

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

2、IO调度测试数据对比
1、IO性能测试

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

2、MySQL性能测试

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

3、rotational测试数据对比

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

4、read_ahead_kb测试数据对比

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

5、rq_affinity测试数据对比

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参数测试数据对比

涉及到的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,性能几乎没有变化。

1、Write Policy测试数据对比
1、IO性能测试

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

2、MySQL性能测试

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

2、Read Policy测试数据对比
1、IO性能测试

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

2、MySQL性能测试

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

3、IO Policy测试数据对比

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

4、BGI测试数据对比

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

七、Raid0的SSD OP测试数据对比

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的性能,两者性能很接近。

1、IO性能测试

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

2、MySQL性能测试

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参数测试数据对比

涉及到的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性能较为理想。

1、innodb_write/read_io_threads测试数据

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

2、innodb_log_file_size测试数据

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

3、innodb_io_capacity测试数据

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

4、innodb_max_dirty_pages_pct测试数据

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

九、相同硬盘数不同raid测试数据对比

使用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、不同Raid对比分析结果

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一块盘出现故障时候,其性能明显下降。

2、不同Raid测试数据

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推荐参数配置

SSD对应linux、raid、mysql推荐参数以及推荐参数设置方法。

1、Linux推荐参数设置
1、关闭numa

2、io调度算法设置为noop

3、Rotational保持默认值1

4、read_ahead_kb保持默认值128

5、rq_affinity保持默认值1

2、Linux推荐参数设置方法

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

3、Raid推荐参数设置
1、Write Policy设置为WriteBack(WB)

2、Read Policy设置为ReadAdaptive

3、IO Policy设置为Direct

4、BGI(Background initialization)保持默认设置30%

4、Raid推荐参数设置方法

使用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参数,如下图。

5、SSD的OP推荐设置

推荐保留15%的硬盘空间不进行分区,这部分空间即是OP的保留空间。

设置方法:分区时候保留15%的硬盘空间不进行分区。

4、MySQL推荐参数设置

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


欢迎关注京东商城基础平台部公众号

image