Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
About Me
Ben Mildren
Why Pythian?
Recognized Leader:
Global industry-leader in remote database administration services and
consulting for Oracle, Oracle Applications, MySQL and Microsoft SQL Server
Work with over 250 multinational companies such as Forbes.com, Fox Sports,
Nordion and Western Union to help manage their complex IT deployments
Expertise:
Pythians data experts are the elite in their field. We have the highest
concentration of Oracle ACEs on staff10 including 2 ACE Directorsand 2
Microsoft MVPs.
Pythian holds 7 Specializations under Oracle Platinum Partner program,
including Oracle Exadata, Oracle GoldenGate & Oracle RAC
L1cachereference0.5ns
Branchmispredict5ns
L2cachereference7ns14xL1cache
Mutexlock/unlock25ns
Mainmemoryreference100ns20xL2cache,200xL1cache
Compress1KbyteswithZippy3,000ns
Send1Kbytesover1Gbpsnetwork10,000ns0.01ms
Read4KrandomlyfromSSD*150,000ns0.15ms
Read1MBsequentiallyfrommemory250,000ns0.25ms
Roundtripwithinsamedatacenter500,000ns0.5ms
Read1MBsequentiallyfromSSD*1,000,000ns1ms4Xmemory
Diskseek10,000,000ns10ms20xdatacenterroundtrip
Read1MBsequentiallyfromdisk20,000,000ns20ms80xmemory,20XSSD
SendpacketCA>Netherlands>CA150,000,000ns150ms
*Assuming~1GB/secSSD
Credit
ByJeffDean:http://research.google.com/people/jeff/
OriginallybyPeterNorvig:http://norvig.com/21days.html#answers
(https://gist.github.com/jboner/2841832)
Monitoring IO on Linux
iostat
iostat
iostat
04/10/2013
_x86_64_
avgcpu:%user%nice%system%iowait%steal%idle
17.562.933.622.420.0073.47
Device:tpskB_read/skB_wrtn/skB_readkB_wrtn
sda8.51100.1744.62890987396917
dm04.8778.766.8070056560488
dm17.4020.7437.45184505333128
dm20.140.190.3716933300
(2CPU)
iostat
04/10/2013
_x86_64_
(2CPU)
_x86_64_
(2CPU)
avgcpu:%user%nice%system%iowait%steal%idle
17.012.663.692.350.0074.29
[ben@lab~]$iostatd
Linux3.8.4102.fc17.x86_64(lab.mysqlhome)
04/10/2013
Device:tpskB_read/skB_wrtn/skB_readkB_wrtn
sda8.2894.6045.60926915446773
dm04.6575.006.3473486162104
dm17.2819.0038.75186129379644
dm20.150.170.5117015024
iostat
04/10/2013
_x86_64_
(2CPU)
avgcpu:%user%nice%system%iowait%steal%idle
16.232.273.672.200.0075.63
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda1.342.673.334.3981.1545.4432.810.5166.4129.5994.307.776.00
dm00.000.003.240.8264.105.7234.380.3791.2935.84309.174.942.01
dm10.000.001.345.7716.5439.1415.660.3143.2032.9545.596.424.56
dm20.000.000.050.100.150.589.560.0168.8126.9689.1416.180.25
[ben@lab~]$iostatdx
Linux3.8.4102.fc17.x86_64(lab.mysqlhome)
04/10/2013
_x86_64_
(2CPU)
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda1.342.673.324.3981.0945.4232.800.5166.4029.5994.277.776.00
dm00.000.003.240.8264.055.7134.380.3791.2935.84309.174.942.00
dm10.000.001.345.7716.5339.1215.660.3143.2032.9545.586.424.56
dm20.000.000.050.100.150.589.560.0168.7526.9689.0016.210.25
10
iostat
Whilst reviewing the stats since since system start up can be useful,
more often you will want to review current activity.
Current activity can be displayed by specifying an interval measured
in seconds.
Output will continue until interrupted or a specified count has been
reached.
[ben@lab~]$iostatdx[interval][count]
[ben@lab~]$iostatdx3
The above command will display extended device statistics since system start up in the first
report, and the deltas for the last 3 seconds in subsequent reports until interrupted.
[ben@lab~]$iostatdx33
The above command will display extended device statistics since system start up in the first
report, and the deltas for the last 3 seconds in two further reports.
11
iostat
[ben@lab~]$iostatdx33
Linux3.8.4102.fc17.x86_64(lab.mysqlhome)
04/10/2013
_x86_64_
(2CPU)
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda1.162.662.894.2770.3744.6632.100.4664.3729.5587.967.945.69
dm00.000.002.800.7855.535.2333.940.3290.1235.83286.385.031.80
dm10.000.001.175.6814.3938.7315.500.2942.1232.8144.056.384.37
dm20.000.000.040.110.130.7010.680.0163.3026.9677.3415.470.24
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.004.670.001.000.0021.3342.670.0223.330.0023.3323.332.33
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.005.330.0021.338.000.035.250.005.254.382.33
dm20.000.000.000.000.000.000.000.000.000.000.000.000.00
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.001.670.009.000.0041.339.190.4550.440.0050.446.525.87
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.008.330.0033.338.000.4654.920.0054.922.522.10
dm20.000.000.002.000.008.008.000.0945.500.0045.5018.833.77
12
iostat
13
iostat
[ben@lab~]$iostatdxNhtz32
Linux3.8.4102.fc17.x86_64(lab.mysqlhome)
04/10/2013
_x86_64_
(2CPU)
04/10/201311:37:08AM
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda
1.072.632.674.1765.0443.6031.760.4363.1729.5484.728.065.52
vg_proddbalv_root
0.000.002.590.7451.364.9433.800.3089.5135.81276.285.091.70
vg_proddbalv_home
0.000.001.085.5813.2737.9315.360.2841.3232.8242.976.394.26
vg_proddbalv_tmp
0.000.000.040.110.120.7311.040.0160.8426.9672.7015.280.23
04/10/201311:37:11AM
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda
0.003.330.003.330.0034.6720.800.0928.100.0028.1016.705.57
vg_proddbalv_home
0.000.000.006.000.0034.6711.560.1016.000.0016.009.285.57
14
iostat
15
iostat
[ben@lab~]$iostatV
sysstatversion10.0.5
(C)SebastienGodard(sysstat<at>orange.fr)
[ben@lab~]$iostatdxgMyLVMdm0dm1dm2gOthersda
Linux3.8.4102.fc17.x86_64(lab.mysqlhome)
04/10/2013
_x86_64_
(2CPU)
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
dm00.000.002.280.7645.534.7333.150.2480.1232.12224.365.081.54
dm10.000.000.865.4010.5737.4515.360.2539.9632.6041.136.404.00
dm20.000.000.030.160.091.0211.630.0149.6426.9654.0014.570.28
MyLVM0.000.003.166.3156.1943.2020.970.5053.0132.2063.446.151.94
sda0.832.592.364.0756.4243.2030.960.3757.7326.6775.738.145.24
Other0.832.592.364.0756.4243.2030.960.3757.7326.6775.738.145.24
[ben@lab~]$iostatdxTgMyLVMdm0dm1dm2gOthersda
Linux3.8.4102.fc17.x86_64(lab.mysqlhome)
04/10/2013
_x86_64_
(2CPU)
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
MyLVM0.000.003.166.3156.1843.2020.970.5053.0132.2063.446.141.94
Other0.832.592.364.0856.4143.2030.960.3757.7326.6775.728.145.24
16
iostat
17
iostat
[ben@lab~]$iostatpdx
Linux3.8.4102.fc17.x86_64(lab.mysqlhome)
04/10/2013
_x86_64_
(2CPU)
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda5.404.9411.359.14398.2687.9947.462.33113.7556.49184.876.2312.76
sda10.030.000.230.000.930.008.080.0015.8815.7660.0015.870.36
sda20.020.000.170.000.780.008.930.0010.7810.780.0010.780.19
sda35.364.9410.848.19396.1287.9950.902.29120.1158.50201.695.219.92
dm00.000.009.892.11311.619.3753.512.86238.35119.45796.494.745.69
dm10.000.006.2111.3483.3178.0918.390.9051.5624.0466.645.199.10
dm20.000.000.250.130.940.537.680.0136.0727.5351.9911.560.44
[ben@lab~]$iostatpsdadx
Linux3.8.4102.fc17.x86_64(lab.mysqlhome)
04/10/2013
_x86_64_
(2CPU)
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda2.684.746.529.47235.6090.1140.731.4590.4850.74117.866.9211.07
sda10.010.000.110.000.450.008.080.0015.8815.7660.0015.870.18
sda20.010.000.080.000.370.008.930.0010.7810.780.0010.780.09
sda32.664.746.288.40234.5690.1144.231.4095.4552.19127.775.227.67
18
pt-diskstats
e.g. wgetpercona.com/get/ptdiskstats
19
pt-diskstats
20
pt-diskstats
1.0sda1.04.00.00%0.172.013.04.00.132%0.211.125%014.00.712.3
1.0sda31.04.00.00%0.172.07.07.40.146%0.01.49%08.00.06.4
1.0dm11.04.00.00%0.172.016.03.00.00%0.18.821%017.00.412.1
1.0dm20.00.00.00%0.00.00.00.00.00%0.10.04%00.00.00.0
1.0sda0.00.00.00%0.00.01.028.00.086%0.00.04%11.00.65.0
1.0sda30.00.00.00%0.00.01.028.00.086%0.00.00%01.00.00.0
1.0dm10.00.00.00%0.00.00.00.00.00%0.00.00%00.00.00.0
1.0dm20.00.00.00%0.00.00.00.00.00%0.00.00%00.00.00.0
21
pt-diskstats
[ben@lab~]$./ptdiskstatsinterval3iterations3
#tsdevicerd_srd_avkbrd_mb_srd_mrgrd_cncrd_rtwr_swr_avkbwr_mb_swr_mrgwr_cncwr_rtbusyin_prgio_sqtimestime
3.0sda0.00.00.00%0.00.01.33.00.00%0.037.24%01.39.428.2
3.0sda30.00.00.00%0.00.01.04.00.00%0.022.72%01.00.022.7
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.02%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.030.02%00.70.030.0
3.0sda0.00.00.00%0.00.01.36.00.050%0.010.14%21.30.714.6
3.0sda30.00.00.00%0.00.01.08.00.057%0.01.11%11.00.86.3
3.0dm00.00.00.00%0.00.00.74.00.00%0.00.01%20.70.018.0
3.0dm10.00.00.00%0.00.01.34.00.00%0.00.01%11.31.89.0
3.0dm20.00.00.00%0.00.01.04.00.00%0.027.03%01.00.027.0
3.0sda0.00.00.00%0.00.02.33.40.00%0.143.45%02.326.420.0
3.0sda30.00.00.00%0.00.01.74.80.00%0.133.43%01.712.120.6
3.0dm00.00.00.00%0.00.00.34.00.00%0.1191.03%00.3211.092.0
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.03%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.023.52%00.70.023.5
22
pt-diskstats
23
24
A primer in Linux IO
25
A primer in Linux IO
http://www.techish.net/hardware/iops-calculator-and-raid-calculators-estimators/
http://www.wmarow.com/strcalc/
26
27
From the 2.6 kernel, statistics are held for all block devices and
partitions in /proc/diskstats.
/proc/diskstats lists the block devices major number, minor number,
and name as well as a statistic set of 11 counters.
Prior to 2.6.25 the statistic set of partitions was only made up of 4
counters and the counters weren't consistent with the underlying
block device statistics.
Statistics are also held for individual devices and partitions in sysfs.
/sys/block/[dev]/stat holds the statistic set for the device.
/sys/block/[dev]/[partition]/stat holds the statistic set for the device
partition.
/proc/diskstats (2.6.25+)
[ben@lab~]$cat/proc/diskstats
70loop000000000000
71loop100000000000
72loop200000000000
73loop300000000000
74loop400000000000
75loop500000000000
76loop600000000000
77loop700000000000
80sda447831547022573021210711859995422418089246087675010877637298349
81sda1463163417664642041062156465
82sda226731213641460000040534146
83sda343885152762249646119736973520542241808920557562006545526772954
110sr000000000000
2530dm042736017962261391325154140187656319936603040014590697
2531dm116476044921853048211370701572032454903308382175079524
2532dm257403410154733747049232185560061399201034
28
/sys/block/[dev]/stat
[ben@lab~]$cat/sys/block/sda/stat
450001547022622941214926903535675019062766249938011331197464821
[ben@lab~]$cat/sys/block/sda/sda1/stat
463163417664642041062156465
[ben@lab~]$cat/sys/block/sda/sda2/stat
26731213641460000040534146
[ben@lab~]$cat/sys/block/sda/sda3/stat
44102152762254638120158477382567961907296571531406792746916857
29
30
04/10/2013
_x86_64_
(2CPU)
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda1.162.662.894.2770.3744.6632.100.4664.3729.5587.967.945.69
dm00.000.002.800.7855.535.2333.940.3290.1235.83286.385.031.80
dm10.000.001.175.6814.3938.7315.500.2942.1232.8144.056.384.37
dm20.000.000.040.110.130.7010.680.0163.3026.9677.3415.470.24
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.004.670.001.000.0021.3342.670.0223.330.0023.3323.332.33
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.005.330.0021.338.000.035.250.005.254.382.33
dm20.000.000.000.000.000.000.000.000.000.000.000.000.00
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.001.670.009.000.0041.339.190.4550.440.0050.446.525.87
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.008.330.0033.338.000.4654.920.0054.922.522.10
dm20.000.000.002.000.008.008.000.0945.500.0045.5018.833.77
31
04/10/2013
_x86_64_
(2CPU)
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda1.162.662.894.2770.3744.6632.100.4664.3729.5587.967.945.69
dm00.000.002.800.7855.535.2333.940.3290.1235.83286.385.031.80
dm10.000.001.175.6814.3938.7315.500.2942.1232.8144.056.384.37
dm20.000.000.040.110.130.7010.680.0163.3026.9677.3415.470.24
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.004.670.001.000.0021.3342.670.0223.330.0023.3323.332.33
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.005.330.0021.338.000.035.250.005.254.382.33
dm20.000.000.000.000.000.000.000.000.000.000.000.000.00
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.001.670.009.000.0041.339.190.4550.440.0050.446.525.87
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.008.330.0033.338.000.4654.920.0054.922.522.10
dm20.000.000.002.000.008.008.000.0945.500.0045.5018.833.77
32
rrqm/s(requests)
delta[read_merges(f2)]/interval
wrqm/s(requests)
delta[write_merges(f6)]/interval
r/s(requests)
delta[read_IOs(f1)]/interval
w/s(requests)
delta[write_IOs(f5)]/interval
33
04/10/2013
_x86_64_
(2CPU)
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda1.162.662.894.2770.3744.6632.100.4664.3729.5587.967.945.69
dm00.000.002.800.7855.535.2333.940.3290.1235.83286.385.031.80
dm10.000.001.175.6814.3938.7315.500.2942.1232.8144.056.384.37
dm20.000.000.040.110.130.7010.680.0163.3026.9677.3415.470.24
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.004.670.001.000.0021.3342.670.0223.330.0023.3323.332.33
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.005.330.0021.338.000.035.250.005.254.382.33
dm20.000.000.000.000.000.000.000.000.000.000.000.000.00
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.001.670.009.000.0041.339.190.4550.440.0050.446.525.87
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.008.330.0033.338.000.4654.920.0054.922.522.10
dm20.000.000.002.000.008.008.000.0945.500.0045.5018.833.77
34
rkB/s(sectors|kB|mB)
(delta[read_sectors(f3)]/interval)/conversionfactor
wkB/s(sectors|kB|mB)
(delta[write_sectors(f7)]/interval)/conversionfactor
avgrqsz(sectors)
delta[read_sectors(f3)+write_sectors(f7)]/
delta[read_IOs(f1)+write_IOs(f5)]
(or0.0ifnoIO)
35
04/10/2013
_x86_64_
(2CPU)
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda1.162.662.894.2770.3744.6632.100.4664.3729.5587.967.945.69
dm00.000.002.800.7855.535.2333.940.3290.1235.83286.385.031.80
dm10.000.001.175.6814.3938.7315.500.2942.1232.8144.056.384.37
dm20.000.000.040.110.130.7010.680.0163.3026.9677.3415.470.24
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.004.670.001.000.0021.3342.670.0223.330.0023.3323.332.33
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.005.330.0021.338.000.035.250.005.254.382.33
dm20.000.000.000.000.000.000.000.000.000.000.000.000.00
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.001.670.009.000.0041.339.190.4550.440.0050.446.525.87
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.008.330.0033.338.000.4654.920.0054.922.522.10
dm20.000.000.002.000.008.008.000.0945.500.0045.5018.833.77
36
avgqusz(requests)
(delta[time_in_queue(f11)]/interval)/1000.0
await(milliseconds)
delta[read_ticks(f4)+write_ticks(f8)]/
delta[read_IOs(f1)+write_IOs(f5)]
(or0.0ifnoIO)
37
04/10/2013
_x86_64_
(2CPU)
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda1.162.662.894.2770.3744.6632.100.4664.3729.5587.967.945.69
dm00.000.002.800.7855.535.2333.940.3290.1235.83286.385.031.80
dm10.000.001.175.6814.3938.7315.500.2942.1232.8144.056.384.37
dm20.000.000.040.110.130.7010.680.0163.3026.9677.3415.470.24
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.004.670.001.000.0021.3342.670.0223.330.0023.3323.332.33
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.005.330.0021.338.000.035.250.005.254.382.33
dm20.000.000.000.000.000.000.000.000.000.000.000.000.00
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.001.670.009.000.0041.339.190.4550.440.0050.446.525.87
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.008.330.0033.338.000.4654.920.0054.922.522.10
dm20.000.000.002.000.008.008.000.0945.500.0045.5018.833.77
38
r_await(milliseconds)
delta[read_ticks(f4)]/delta[read_IOs(f1)]
(or0.0ifnoreadIOs)
w_await(milliseconds)
delta[write_ticks(f8)]/delta[write_IOs(f5)]
(or0.0ifnowriteIOs)
39
04/10/2013
_x86_64_
(2CPU)
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda1.162.662.894.2770.3744.6632.100.4664.3729.5587.967.945.69
dm00.000.002.800.7855.535.2333.940.3290.1235.83286.385.031.80
dm10.000.001.175.6814.3938.7315.500.2942.1232.8144.056.384.37
dm20.000.000.040.110.130.7010.680.0163.3026.9677.3415.470.24
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.004.670.001.000.0021.3342.670.0223.330.0023.3323.332.33
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.005.330.0021.338.000.035.250.005.254.382.33
dm20.000.000.000.000.000.000.000.000.000.000.000.000.00
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.001.670.009.000.0041.339.190.4550.440.0050.446.525.87
dm00.000.000.000.000.000.000.000.000.000.000.000.000.00
dm10.000.000.008.330.0033.338.000.4654.920.0054.922.522.10
dm20.000.000.002.000.008.008.000.0945.500.0045.5018.833.77
40
svctm(milliseconds)
((delta[read_IOs(f1)+write_IOs(f5)]*HZ)/interval)/
(delta[IO_ticks(f10)]/interval)
(or0.0iftput=0)
*HZ=tickspersecond,(1000onmostsystems).
**Thisfieldwillberemovedinafuturesysstatversion.
%util(percent)
((delta[IO_ticks(f10)]/interval)/10)/devices
*devices=1orthenumberofdevicesinthegroup(g
option).
41
pt-diskstats
[ben@lab~]$./ptdiskstatsinterval3iterations3
#tsdevicerd_srd_avkbrd_mb_srd_mrgrd_cncrd_rtwr_swr_avkbwr_mb_swr_mrgwr_cncwr_rtbusyin_prgio_sqtimestime
3.0sda0.00.00.00%0.00.01.33.00.00%0.037.24%01.39.428.2
3.0sda30.00.00.00%0.00.01.04.00.00%0.022.72%01.00.022.7
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.02%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.030.02%00.70.030.0
3.0sda0.00.00.00%0.00.01.36.00.050%0.010.14%21.30.714.6
3.0sda30.00.00.00%0.00.01.08.00.057%0.01.11%11.00.86.3
3.0dm00.00.00.00%0.00.00.74.00.00%0.00.01%20.70.018.0
3.0dm10.00.00.00%0.00.01.34.00.00%0.00.01%11.31.89.0
3.0dm20.00.00.00%0.00.01.04.00.00%0.027.03%01.00.027.0
3.0sda0.00.00.00%0.00.02.33.40.00%0.143.45%02.326.420.0
3.0sda30.00.00.00%0.00.01.74.80.00%0.133.43%01.712.120.6
3.0dm00.00.00.00%0.00.00.34.00.00%0.1191.03%00.3211.092.0
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.03%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.023.52%00.70.023.5
42
pt-diskstats
[ben@lab~]$./ptdiskstatsinterval3iterations3
#tsdevicerd_srd_avkbrd_mb_srd_mrgrd_cncrd_rtwr_swr_avkbwr_mb_swr_mrgwr_cncwr_rtbusyin_prgio_sqtimestime
3.0sda0.00.00.00%0.00.01.33.00.00%0.037.24%01.39.428.2
3.0sda30.00.00.00%0.00.01.04.00.00%0.022.72%01.00.022.7
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.02%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.030.02%00.70.030.0
3.0sda0.00.00.00%0.00.01.36.00.050%0.010.14%21.30.714.6
3.0sda30.00.00.00%0.00.01.08.00.057%0.01.11%11.00.86.3
3.0dm00.00.00.00%0.00.00.74.00.00%0.00.01%20.70.018.0
3.0dm10.00.00.00%0.00.01.34.00.00%0.00.01%11.31.89.0
3.0dm20.00.00.00%0.00.01.04.00.00%0.027.03%01.00.027.0
3.0sda0.00.00.00%0.00.02.33.40.00%0.143.45%02.326.420.0
3.0sda30.00.00.00%0.00.01.74.80.00%0.133.43%01.712.120.6
3.0dm00.00.00.00%0.00.00.34.00.00%0.1191.03%00.3211.092.0
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.03%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.023.52%00.70.023.5
43
pt-diskstats
rd_s(requests)Comparabletoiostatr/s
delta[read_IOs(f1)]/interval
rd_avkb(kB)Similartoiostatavgrqszbutisolatesreads
conversionfactor*delta[read_sectors(f3)]/
delta[read_IOs(f1)]
(Conversionfactor=2=documentationbug)
rd_mb_s(mB)ComparabletoiostatrmB/s
conversionfactor*delta[read_sectors(f3)]/interval
(Conversionfactor=2=documentationbug)
rd_mrg(percent)Similartoiostatrrqm/sexpressedas%
100*delta[read_merges(f2)]/
(delta[read_merges(f2)]+delta[read_IOs(f1)])
44
pt-diskstats
[ben@lab~]$./ptdiskstatsinterval3iterations3
#tsdevicerd_srd_avkbrd_mb_srd_mrgrd_cncrd_rtwr_swr_avkbwr_mb_swr_mrgwr_cncwr_rtbusyin_prgio_sqtimestime
3.0sda0.00.00.00%0.00.01.33.00.00%0.037.24%01.39.428.2
3.0sda30.00.00.00%0.00.01.04.00.00%0.022.72%01.00.022.7
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.02%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.030.02%00.70.030.0
3.0sda0.00.00.00%0.00.01.36.00.050%0.010.14%21.30.714.6
3.0sda30.00.00.00%0.00.01.08.00.057%0.01.11%11.00.86.3
3.0dm00.00.00.00%0.00.00.74.00.00%0.00.01%20.70.018.0
3.0dm10.00.00.00%0.00.01.34.00.00%0.00.01%11.31.89.0
3.0dm20.00.00.00%0.00.01.04.00.00%0.027.03%01.00.027.0
3.0sda0.00.00.00%0.00.02.33.40.00%0.143.45%02.326.420.0
3.0sda30.00.00.00%0.00.01.74.80.00%0.133.43%01.712.120.6
3.0dm00.00.00.00%0.00.00.34.00.00%0.1191.03%00.3211.092.0
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.03%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.023.52%00.70.023.5
45
pt-diskstats
rd_cnc(Little'slaw)iostathasnoequivalent
delta[read_ticks(f4)]/interval/1000/devicesingroup
rd_rt(milliseconds)Differstoiostatr_await
delta[read_ticks(f4)]/
(delta[read_IOs(f1)]+delta[read_merges(f2)])
46
pt-diskstats
[ben@lab~]$./ptdiskstatsinterval3iterations3
#tsdevicerd_srd_avkbrd_mb_srd_mrgrd_cncrd_rtwr_swr_avkbwr_mb_swr_mrgwr_cncwr_rtbusyin_prgio_sqtimestime
3.0sda0.00.00.00%0.00.01.33.00.00%0.037.24%01.39.428.2
3.0sda30.00.00.00%0.00.01.04.00.00%0.022.72%01.00.022.7
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.02%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.030.02%00.70.030.0
3.0sda0.00.00.00%0.00.01.36.00.050%0.010.14%21.30.714.6
3.0sda30.00.00.00%0.00.01.08.00.057%0.01.11%11.00.86.3
3.0dm00.00.00.00%0.00.00.74.00.00%0.00.01%20.70.018.0
3.0dm10.00.00.00%0.00.01.34.00.00%0.00.01%11.31.89.0
3.0dm20.00.00.00%0.00.01.04.00.00%0.027.03%01.00.027.0
3.0sda0.00.00.00%0.00.02.33.40.00%0.143.45%02.326.420.0
3.0sda30.00.00.00%0.00.01.74.80.00%0.133.43%01.712.120.6
3.0dm00.00.00.00%0.00.00.34.00.00%0.1191.03%00.3211.092.0
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.03%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.023.52%00.70.023.5
47
pt-diskstats
wr_s(requests)Comparabletoiostatw/s
delta[write_IOs(f5)]/interval
wr_avkb(kB)Similartoiostatavgrqszbutisolateswrites
conversionfactor*delta[write_sectors(f7)]/
delta[write_IOs(f5)]
(Conversionfactor=2=documentationbug)
wr_mb_s(mB)ComparabletoiostatwmB/s
conversionfactor*delta[write_sectors(f7)]/interval
(Conversionfactor=2=documentationbug)
wr_mrg(percent)Similartoiostatwrqm/sexpressedas%
100*delta[write_merges(f6)]/
(delta[write_merges(f6)]+delta[write_IOs(f5)])
48
pt-diskstats
[ben@lab~]$./ptdiskstatsinterval3iterations3
#tsdevicerd_srd_avkbrd_mb_srd_mrgrd_cncrd_rtwr_swr_avkbwr_mb_swr_mrgwr_cncwr_rtbusyin_prgio_sqtimestime
3.0sda0.00.00.00%0.00.01.33.00.00%0.037.24%01.39.428.2
3.0sda30.00.00.00%0.00.01.04.00.00%0.022.72%01.00.022.7
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.02%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.030.02%00.70.030.0
3.0sda0.00.00.00%0.00.01.36.00.050%0.010.14%21.30.714.6
3.0sda30.00.00.00%0.00.01.08.00.057%0.01.11%11.00.86.3
3.0dm00.00.00.00%0.00.00.74.00.00%0.00.01%20.70.018.0
3.0dm10.00.00.00%0.00.01.34.00.00%0.00.01%11.31.89.0
3.0dm20.00.00.00%0.00.01.04.00.00%0.027.03%01.00.027.0
3.0sda0.00.00.00%0.00.02.33.40.00%0.143.45%02.326.420.0
3.0sda30.00.00.00%0.00.01.74.80.00%0.133.43%01.712.120.6
3.0dm00.00.00.00%0.00.00.34.00.00%0.1191.03%00.3211.092.0
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.03%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.023.52%00.70.023.5
49
pt-diskstats
wr_cnc(Little'slaw)iostathasnoequivalent
delta[write_ticks(f8)]/interval/1000/devicesingroup
wr_rt(milliseconds)Differstoiostatw_await
delta[write_ticks(f8)]/
(delta[write_IOs(f5)]+delta[write_merges(f6)])
50
pt-diskstats
[ben@lab~]$./ptdiskstatsinterval3iterations3
#tsdevicerd_srd_avkbrd_mb_srd_mrgrd_cncrd_rtwr_swr_avkbwr_mb_swr_mrgwr_cncwr_rtbusyin_prgio_sqtimestime
3.0sda0.00.00.00%0.00.01.33.00.00%0.037.24%01.39.428.2
3.0sda30.00.00.00%0.00.01.04.00.00%0.022.72%01.00.022.7
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.02%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.030.02%00.70.030.0
3.0sda0.00.00.00%0.00.01.36.00.050%0.010.14%21.30.714.6
3.0sda30.00.00.00%0.00.01.08.00.057%0.01.11%11.00.86.3
3.0dm00.00.00.00%0.00.00.74.00.00%0.00.01%20.70.018.0
3.0dm10.00.00.00%0.00.01.34.00.00%0.00.01%11.31.89.0
3.0dm20.00.00.00%0.00.01.04.00.00%0.027.03%01.00.027.0
3.0sda0.00.00.00%0.00.02.33.40.00%0.143.45%02.326.420.0
3.0sda30.00.00.00%0.00.01.74.80.00%0.133.43%01.712.120.6
3.0dm00.00.00.00%0.00.00.34.00.00%0.1191.03%00.3211.092.0
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.03%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.023.52%00.70.023.5
51
pt-diskstats
busy(percent)Comparabletoiostat%util
100*delta[io_ticks(f10)]/(1000*interval)
in_prg(requests)iostathasnoequivalent#BIOs
in_flight(f9)
ios_s(requests)Comparabletoiostatr/s+w/s
(delta[readIOs(f1)]+delta[write_IOs(f5)])/interval
52
pt-diskstats
[ben@lab~]$./ptdiskstatsinterval3iterations3
#tsdevicerd_srd_avkbrd_mb_srd_mrgrd_cncrd_rtwr_swr_avkbwr_mb_swr_mrgwr_cncwr_rtbusyin_prgio_sqtimestime
3.0sda0.00.00.00%0.00.01.33.00.00%0.037.24%01.39.428.2
3.0sda30.00.00.00%0.00.01.04.00.00%0.022.72%01.00.022.7
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.02%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.030.02%00.70.030.0
3.0sda0.00.00.00%0.00.01.36.00.050%0.010.14%21.30.714.6
3.0sda30.00.00.00%0.00.01.08.00.057%0.01.11%11.00.86.3
3.0dm00.00.00.00%0.00.00.74.00.00%0.00.01%20.70.018.0
3.0dm10.00.00.00%0.00.01.34.00.00%0.00.01%11.31.89.0
3.0dm20.00.00.00%0.00.01.04.00.00%0.027.03%01.00.027.0
3.0sda0.00.00.00%0.00.02.33.40.00%0.143.45%02.326.420.0
3.0sda30.00.00.00%0.00.01.74.80.00%0.133.43%01.712.120.6
3.0dm00.00.00.00%0.00.00.34.00.00%0.1191.03%00.3211.092.0
3.0dm10.00.00.00%0.00.00.00.00.00%0.00.03%00.00.00.0
3.0dm20.00.00.00%0.00.00.74.00.00%0.023.52%00.70.023.5
53
pt-diskstats
qtime(milliseconds)!iostatavgqusz
delta[time_in_queue(f11)]/
(delta[read_IOs(f1)+read_merges(f2)+write_IOs(f5)+
write_merges(f6)]+delta[in_flight(f9)])
delta[io_ticks(f10)]/
(delta[read_IOs(f1)+read_merges(f2)+write_IOs(f5)+
write_merges(f6)])
stime(milliseconds)!iostatsvctm
delta[io_ticks(f10)]/
(delta[read_IOs(f1)+read_merges(f2)+write_IOs(f5)+
write_merges(f6)])
54
04/25/2013
....
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.004.600.0016.800.0085.6010.190.063.290.003.290.060.10
sdb7607.005.20253.6023.4031467.20114.40228.030.863.092.934.862.6874.10
dm00.000.000.000.400.001.608.000.004.000.004.002.000.08
dm10.000.000.0028.200.00112.808.000.114.070.004.070.040.12
dm20.000.00374.800.0031441.600.00167.780.792.112.110.001.9874.18
dm30.000.007860.400.4031441.601.608.0023.212.952.954.000.0974.16
dm40.000.000.000.000.000.000.000.000.000.000.000.000.00
....
55
Adaptec
arcconf?
Dell
omreport?
HPSmartArray
hpacucli
Type"help"foralistofsupportedcommands.
Type"exit"toclosetheconsole.
LSI
MegaCli?
Oracle
raidconfig?
56
Inthiscaseit'saDellserverandcontroller
omreportstoragecontroller
ControllerPERC6/iIntegrated(Embedded)
Controllers
ID:0
Status:Ok
Name:PERC6/iIntegrated
...
State:Ready
FirmwareVersion:6.2.00013
...
DriverVersion:00.00.04.17RH1
...
NumberofConnectors:2
...
CacheMemorySize:256MB
...
57
/dev/sdbisRAID5SASHDDs
[root@316402db6srvadmin]#omreportstoragevdisk
ListofVirtualDisksintheSystem
...
ID:1
Status:Ok
...
Layout:RAID5
Size:836.63GB(898319253504bytes)
DeviceName:/dev/sdb
BusProtocol:SAS
Media:HDD
ReadPolicy:NoReadAhead
WritePolicy:WriteBack
...
StripeElementSize:64KB
DiskCachePolicy:Disabled
58
/dev/sdbisRAID5SASHDDs
[root@316402db6srvadmin]#omreportstoragepdiskcontroller=0vdisk=1
ListofPhysicalDisksonControllerPERC6/iIntegrated(Embedded)
ControllerPERC6/iIntegrated(Embedded)
ID:0:0:2
...
State:Online
FailurePredicted:No
...
BusProtocol:SAS
Media:HDD
...
Capacity:136.13GB(146163105792bytes)
...
VendorID:DELL
ProductID:ST3146356SS
...
59
Calculating IOPS
15k rpm
RAID-5
60
Calculating IOPS
http://www.techrepublic.com/blog/datacenter/calculate-iops-in-a-storage-array/2182
To calculate the IOPS range, use this formula: Average IOPS: Divide 1 by the sum
of the average latency in ms and the average seek time in ms (1 / (average latency
in ms + average seek time in ms).
This is inline with the earlier rough estimate of 175-200 iops from 15k rpm disk!
Avg read/write access time are the only measures that should differ per model,
rotational latency should be constant dependent on the disk rotation speed, so the
estimates should be reasonable.
61
http://www.techrepublic.com/blog/datacenter/calculate-iops-in-a-storage-array/2182
(Total Workload IOPS * Percentage of workload that is read operations) + (Total
Workload IOPS * Percentage of workload that is write operations * RAID IO
Penalty
This is doesn't account for the controller cache, so should be a worst case limit.
62
Calculating throughput
Using gathered data for IOPs, and estimates for KB per IO:
654.9 * 8 / 1024 = 5.1 mb/s
654.9 * 16 / 1024 = 10.2 mb/s
654.9 * 64 / 1024 = 40.9 mb/s
654.9 * 128 / 1024 = 81.9 mb/s
Where KB per IO fits on this scale depends on how random vs sequential the IO is.
63
04/25/2013
....
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.004.600.0016.800.0085.6010.190.063.290.003.290.060.10
sdb7607.005.20253.6023.4031467.20114.40228.030.863.092.934.862.6874.10
dm00.000.000.000.400.001.608.000.004.000.004.002.000.08
dm10.000.000.0028.200.00112.808.000.114.070.004.070.040.12
dm20.000.00374.800.0031441.600.00167.780.792.112.110.001.9874.18
dm30.000.007860.400.4031441.601.608.0023.212.952.954.000.0974.16
dm40.000.000.000.000.000.000.000.000.000.000.000.000.00
....
Observations:
~275 IOPs well below estimated limit of ~650 IOPs
Average queue size (avgqu-sz) is low.
At ~30mb/s (rkB/s + wkB/s), throughput will not be saturating the controller,
rearranging the throughput formula we can see IOPs are about 114kb per IO which
leans to a more sequential workload.
Latency (read/write average wait time) is inline with drive manufacturer
expectations.
64
04/25/2013
....
Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrqszavgquszawaitr_awaitw_awaitsvctm%util
sda0.004.600.0016.800.0085.6010.190.063.290.003.290.060.10
sdb7607.005.20253.6023.4031467.20114.40228.030.863.092.934.862.6874.10
dm00.000.000.000.400.001.608.000.004.000.004.002.000.08
dm10.000.000.0028.200.00112.808.000.114.070.004.070.040.12
dm20.000.00374.800.0031441.600.00167.780.792.112.110.001.9874.18
dm30.000.007860.400.4031441.601.608.0023.212.952.954.000.0974.16
dm40.000.000.000.000.000.000.000.000.000.000.000.000.00
....
Observations:
Average request size (avgrq-sz) is ~114k (matches throughput calc), so the load is
probably not being generated by MySQL.
High number of merges, not a bad thing, but might want to investigate why..
(In this case they were caused by an LVM Snapshot being read during a backup).
65
66