本文原創做者杜霆,京東商城基礎平臺部MySQL DBA,經做者贊成發表於本人博客,如需轉載需經本人贊成。node
1、測試背景mysql
服務器升級SSD後,速度和性能沒有獲得應有的提高,緣由是沒有正確使用SSD,主要是raid、linux、mysql數據庫等相關參數沒有正確的配置,本文對SSD的相關參數進行了對比性能測試,根據相關資料以及測試結果得出相關結論,瞭解實用場景以及對應優點。linux
主機:172.20.166.52算法
Cpu:32 * Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHzsql
內存:129G數據庫
操做系統:CentOS release 6.6安全
Sysbench:Sysbench 0.5服務器
SSD硬盤:800G*6 raid5ide
主機: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組參數,分別如上圖表所示,由測試數據可得出以下結論:
一、關閉NUMA,對SSD硬盤性能提升較大;
二、IO調度算法採用Deadline和Noop性能差距不大,Noop調度算法性能略高於Deadline;
三、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組參數,分別如上圖表所示,由測試數據可得出以下結論:
一、Raid的Write Policy設置爲WriteBack,硬盤性能有很大提升,並且性能比較穩定;
二、Raid的Read Policy設置爲ReadAdaptive,硬盤性能略高於Normal;
三、Raid的IO Policy設置爲Direct,性能明顯高於Cached;
四、BGI採用默認配置的30%或者關閉BGI,性能幾乎沒有變化,建議使用默認配置。
OP配置對好比下:
參數類型 |
對比參數值1 |
對比參數值2 |
OP(Over-provisioning:預留空間) |
NO-OP(硬盤空間所有分區) |
15%-OP(留下15%空間不分區) |
對比測試了不設置OP和設置15%的OP,如上圖表所示,由測試數據可得出以下結論:
一、io測試時線程數小於128時,15%的OP的性能明顯高於不設置OP的性能,隨着線程數的增長,15%的OP的性能優點逐漸減小,到1024線程時,二者性能很接近。
二、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組參數,分別如上圖表所示,由測試數據可得出以下結論:
一、innodb_write_io_threads/ innodb_read_io_threads設置爲8性能比較理想;
二、innodb_log_file_size設置爲1536M或者2048M,性能差異不大;
三、innodb_io_capacity測試了從500到12000的參數,性能差異不大,設置爲3000時出現測試數據的最大值,從測試數據觀察,該參數設置在2000-8000範圍內性能相對理想;
四、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組參數,分別如上圖表所示,由測試數據可得出以下結論:
一、關閉NUMA,對SSD硬盤性能提升較大;
二、IO調度算法採用Deadline和Noop性能差距不大,Noop調度算法性能略高於Deadline;
三、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組參數,分別如上圖表所示,由測試數據可得出以下結論:
一、Raid的Write Policy使用Writeback,硬盤性能有很大提升,並且性能比較穩定;
二、Raid的Read Policy使用ReadAdaptive,硬盤性能略高於Normal;
三、Raid的IO Policy使用Direct,性能明顯高於Cached;
四、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,分別如上圖表所示,由測試數據可得出以下結論:
一、io測試時線程數小於128時,15%的OP的性能明顯高於不設置OP的性能,隨着線程數的增長,15%的OP的性能優點逐漸減小,到1024線程時,二者性能很接近。
二、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組參數,分別如上圖表所示,由測試數據可得出以下結論:
一、innodb_write_io_threads/ innodb_read_io_threads設置爲8性能比較理想;
二、innodb_log_file_size設置爲1536M或者2048M性能較理想,二者性能差異不大;
三、innodb_io_capacity測試了從500到12000的參數,性能差異不大,設置爲3000時出現測試數據的最大值,從測試數據觀察,該參數設置在2000-8000範圍內性能相對理解;
四、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硬盤,分別配置了raid五、raid十、raid0、raid0-15%OP,進行了io混合隨機讀寫性能測試。
Sysbench測試參數:
參數名稱 |
參數值 |
file-block-size |
16k |
混合讀寫比例 |
1.5(讀寫比例3:2) |
oltp-tables-count |
15 |
oltp-table-size |
50000000 |
一、硬盤利用率
Raid0的硬盤空間使用率是100%,若是預留15%作OP,空間使用率只有所有硬盤大小的75%;Raid5的空間使用率是(n-1)/n(n是磁盤數量,磁盤數量越多,空間使用率越高);Raid10的硬盤使用率只有50%;硬盤使用率順序是
Raid0 > raid0-15%OP > Raid5 > Raid10
二、讀寫性能
raid0、raid0-15%OP的讀寫性能明顯高於raid五、raid10,raid0-15%OP的性能略高於raid0。
raid0-15%OP > raid0 > raid10 > raid5
三、穩定安全性
Raid10是最安全穩定的,Raid5提供了一塊盤的奇偶檢驗保證安全,Raid0沒有安全保護措施。另外當Raid5一塊盤出現故障時候,其性能明顯降低。
一、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 |
二、一塊硬盤故障,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推薦參數以及推薦參數設置方法。
二、io調度算法設置爲noop
三、Rotational保持默認值1
四、read_ahead_kb保持默認值128
五、rq_affinity保持默認值1
一、關閉numa
進入System BIOS設置,選擇Memory設置,選擇Node Interteaving爲Enable進行關閉numa,以下圖所示。
執行命令「numactl --hardware」進行檢查,輸出結果available: 1 nodes (0)時表示關閉成功,以下圖。
二、修改io調度算法noop
執行命令:echo noop > /sys/block/sda/queue/scheduler
檢查命令:cat /sys/block/sda/queue/scheduler
三、Rotational值的調整
執行命令:echo 0 > /sys/block/sda/queue/rotational
查看命令:cat /sys/block/sda/queue/rotational
四、read_ahead_kb值的調整
執行命令:echo 0 > /sys/block/sda/queue/read_ahead_kb
查看命令:cat /sys/block/sda/queue/read_ahead_kb
五、rq_affinity值的調整
執行命令:echo 0 > /sys/block/sda/queue/rq_affinity
查看命令:cat /sys/block/sda/queue/rq_affinity
二、Read Policy設置爲ReadAdaptive
三、IO Policy設置爲Direct
四、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
一、Write Policy設置爲WriteBack命令
MegaCli -LDSetProp WB -L1 -a0
二、Read Policy設置爲ReadAdaptive命令
MegaCli -LDSetProp ADRA -L1 -a0
三、IO Policy設置爲Direct命令
MegaCli -LDSetProp -Direct -L1 -a0
四、BGI調整方法
進入Device Settings,選擇Interated RAID Controller,選擇Controller Managent,選擇Change Controller Properties,能夠修改BGI參數,以下圖。
推薦保留15%的硬盤空間不進行分區,這部分空間便是OP的保留空間。
設置方法:分區時候保留15%的硬盤空間不進行分區。
一、innodb_write_io_threads/ innodb_read_io_threads推薦設置爲8
二、innodb_log_file_size推薦設置爲2048M
三、innodb_io_capacity推薦設置爲3000
四、innodb_max_dirty_pages_pct設置爲75
歡迎關注京東商城基礎平臺部公衆號