Üdv mindenkinek,
Egy érdekes jelenséggel találkoztam tegnap. Szeretném megbecsülni egy rendszer diszk-alrendszer sebességét az alábbiak szerintHardver: ProLiant ML150 G6
- CPU Intel(R) Xeon(R) E5504 @2.00GHz
- Memory 1x 2GByte DIMM 800 MHz (1.2 ns)
- HDD 4x SATA Seagate ST31500341AS
- Controller Intel 82801JI (ICH10 Family) SATA AHCI
A teszt.sh Teszt szkript
(!!! AZ ADATOKAT TÖRLI A MEREVLEMEZRŐL !!!)
#!/bin/bash
[ "${1}" ] || exit
MUL=1000
echo "==== WRITE ==== ${WO} ===="
echo "Block"
for i in 4096,256 2048,512 1024,1024 512,2048 256,4096 128,8192 64,16384; do
BS=${i%%,*}
COUNT=${i#*,}; COUNT=$((${COUNT}*${MUL}))
echo -n "${BS} "
dd if="/dev/zero" of=${1} bs=${BS} count=${COUNT} 2>&1 | sed -n "/copied/{s/[[:digit:]]\+ bytes//;p}"
done
echo -e "\n==== READ ==== ${WO} ===="
echo "Block"
for i in 4096,256 2048,512 1024,1024 512,2048 256,4096 128,8192 64,16384; do
BS=${i%%,*}
COUNT=${i#*,}; COUNT=$((${COUNT}*${MUL}))
echo -n "${BS} "
dd if=${1} of="/dev/null" bs=${BS} count=${COUNT} 2>&1 | sed -n "/copied/{s/[[:digit:]]\+ bytes//;p}"
done
./teszt.sh /dev/sda
==== WRITE ==== /dev/sda ====
Block
4096 (1.0 GB) copied, 6.98562 s, 150 MB/s
2048 (1.0 GB) copied, 8.28278 s, 127 MB/s
1024 (1.0 GB) copied, 8.564 s, 122 MB/s
512 (1.0 GB) copied, 8.57407 s, 122 MB/s
256 (1.0 GB) copied, 8.28517 s, 127 MB/s
128 (1.0 GB) copied, 8.69116 s, 121 MB/s
64 (1.0 GB) copied, 13.0868 s, 80.1 MB/s
==== READ ==== /dev/sda ====
Block
4096 (1.0 GB) copied, 0.317867 s, 3.3 GB/s
2048 (1.0 GB) copied, 0.456915 s, 2.3 GB/s
1024 (1.0 GB) copied, 0.680126 s, 1.5 GB/s
512 (1.0 GB) copied, 1.11961 s, 937 MB/s
256 (1.0 GB) copied, 2.02106 s, 519 MB/s
128 (1.0 GB) copied, 3.94157 s, 266 MB/s
64 (1.0 GB) copied, 7.92936 s, 132 MB/s
./teszt.sh /dev/sdb
==== WRITE ==== /dev/sdb ====
Block
4096 (1.0 GB) copied, 8.96606 s, 117 MB/s
2048 (1.0 GB) copied, 38.4536 s, 27.3 MB/s
1024 (1.0 GB) copied, 39.2138 s, 26.7 MB/s
512 (1.0 GB) copied, 40.0392 s, 26.2 MB/s
256 (1.0 GB) copied, 42.9988 s, 24.4 MB/s
128 (1.0 GB) copied, 42.0285 s, 24.9 MB/s
64 (1.0 GB) copied, 48.6886 s, 21.5 MB/s
==== READ ==== /dev/sdb ====
Block
4096 (1.0 GB) copied, 8.11831 s, 129 MB/s
2048 (1.0 GB) copied, 8.24436 s, 127 MB/s
1024 (1.0 GB) copied, 8.11913 s, 129 MB/s
512 (1.0 GB) copied, 8.11983 s, 129 MB/s
256 (1.0 GB) copied, 8.11684 s, 129 MB/s
128 (1.0 GB) copied, 8.11178 s, 129 MB/s
64 (1.0 GB) copied, 8.55081 s, 123 MB/s
Miközben futott a teszt az iostat programmal vizsgáltam az írás/olvasás mennyiségét.
SDA write
r/s=0.00 w/s=~249.00
SDA read
r/s=0.00 w/s=0.00
SDB write
r/s=~6543.00 w/s=~52.00
SDB read
r/s=~2028.00 w/s=0.00
Az eredményekkel kapcsolatban lennének kérdéseim mert nem értem a látottakat.
- Miért van az, hogy az SDA sokkal gyorsabb írást produkál mint a másik három ugyanolyan merevlemez?
- Miért van az, hogy az SDA olvasás teszt alatt fizikailag nulla bájt olvasás látszik a másik három merevlemezzel ellentétben?
- Miért van az, hogy az SDB irás teszt alatt nem jelentéktelen mértékü olvasás is történik az SDA-val ellentétben?
A válaszokat előre is köszönöm.
- 1721 megtekintés
Hozzászólások
Milyen winyok ezek?
Amugy a 0 read az a diskcache. Tessek sokkal-sokkal tobb adatot olvasni, mint amennyi memoria a gepben van.
Vannak amugy kimondottan disk io benchmark progik, pl iogen, tessek azt megnezni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Ahogy fentebb írtam a merevlemezek: négy darab ugyanolyan SATA Seagate ST31500341AS.
Elfogadom, hogy diskcache de akkor miért csak az SDA esetén van jelen? A másik három HDD esetén teljesen eltérően viselkedik az egész.
--
maszili
- A hozzászóláshoz be kell jelentkezni
A tesztekhez nagyon jó segítség:
To free pagecache:
echo 1 > /proc/sys/vm/drop_cachesTo free dentries and inodes:
echo 2 > /proc/sys/vm/drop_cachesTo free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches
2.6.16-os kerneltől. Az utolsó az igazi ;)
- A hozzászóláshoz be kell jelentkezni
A teszt során nem játszik fájlrendszer. Jól sejtem hogy az inode-ra vonatkozó beállítások ez esetben nem sokat érnek?
--
maszili
- A hozzászóláshoz be kell jelentkezni
Jogos a pont :)
Ez esetben valóban nem sokat ér. Csak a megszokás...
- A hozzászóláshoz be kell jelentkezni
ha simán blokk device-ről olvasol dd-vel mondjuk, azt is cache-eli a kernel, nem csak fájlrendszer esetében.
----------------------------------
feel the beat - it's everywhere!
- A hozzászóláshoz be kell jelentkezni
Igen ezt gondoltam csak nem értem, hogy miért csak az SDA esetében látszik meg a mérési eredmémyeken?
Akárhányszor megismételtem minden esetben nagyságrendileg ugyanazok az értékek jöttek.
Közben lefuttattam a tesztet nagyobb mennyiségű adat másolásával
==== WRITE ==== /dev/sda ====
Block
4096 (4.2 GB) copied, 31.9108 s, 131 MB/s
2048 (4.2 GB) copied, 142.037 s, 29.5 MB/s
1024 (4.2 GB) copied, 156.479 s, 26.8 MB/s
512 (4.2 GB) copied, 165.581 s, 25.3 MB/s
256 (4.2 GB) copied, 173.486 s, 24.2 MB/s
128 (4.2 GB) copied, 174.076 s, 24.1 MB/s
64 (4.2 GB) copied, 197.886 s, 21.2 MB/s
==== READ ==== /dev/sda ====
Block
4096 (4.2 GB) copied, 33.1003 s, 127 MB/s
2048 (4.2 GB) copied, 31.821 s, 132 MB/s
1024 (4.2 GB) copied, 31.9121 s, 131 MB/s
512 (4.2 GB) copied, 31.7773 s, 132 MB/s
256 (4.2 GB) copied, 31.826 s, 132 MB/s
128 (4.2 GB) copied, 31.8322 s, 132 MB/s
64 (4.2 GB) copied, 34.1037 s, 123 MB/s
Itt már látszik, hogy nem fért be a memóriába.
--
maszili
- A hozzászóláshoz be kell jelentkezni
Köszönöm a hozzászólásokat.
Esetleg tudna valaki olyan eszközt ajánlani amivel korrekt IO mérést lehetne blokk eszközön végezni?
A DD-t és a HDPARM-ot ismerem :) de valami komolyabb kellene.
--
maszili
- A hozzászóláshoz be kell jelentkezni
bonnie++
- A hozzászóláshoz be kell jelentkezni
Ez nem csak fájlrendszerrel együtt tud tesztelni?
--
maszili
- A hozzászóláshoz be kell jelentkezni
nem. nézd meg a zcav programot.
miért, egyébként nem lesz fájlrendszer a lemezeken?
- A hozzászóláshoz be kell jelentkezni