• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] mdadm raid 5 geschwindigkeit

Blackfog

Newbie
Hallo zusammen,

habe einen Rechner mit einem ASUS P5Q SE/R Board mit P45 Chipsatz am laufen. Das Betriebsystem läuft auf einer IDE Platte und am SATA (ICHR10 Chipsatz AHCI aktiviert) hängen 3 Samsung HD103UI 1TB mit mdadm im Raid 5 Verbund. Als Dateisystem ist ReiserFS drauf.
Der Prozessor ist ein Intel Dual Core mit 2.4 GHz und es sind 4 GB Arbeitsspeicher verbaut (ist ja gerade so schön günstig ;) ).
Es läuft openSuse 11.1 auf dem Rechner.

Mein Problem ist die Geschwindigkeit vom RAID unter idealsten Bedingungen (4GB Datei und es greift sonst nix auf das Dateisystem) schaffe ich 20 MB/s schreiben und sobald noch irgendwas anderes auf dem Raid zugreift z.B. Twonkymedia ist bei 8 MB/s schluss.
Auf die IDE Platte schaffe ich bis zu 40 MB/s.

Welche Geschwindigkeiten schaffen eure software Raids denn ? War vielleicht das ReiserFS als Dateisystem nicht die beste Wahl ?
Da der Rechner hauptsächlich als NAS herhalten muss bin ich mit der Geschwindigkeit nicht so wirklich zufrieden. Habt ihr vielleicht noch eine Idee was man noch machen könnte ?
Ist vielleicht auch der ICR10 Chipsatz daran schuld ?


Hier noch ein Benchmark mit Bonnie


Bonnie 1.4: File '/storage//Bonnie.9352', size: 1073741824, volumes: 1
Writing with putc()... done: 21945 kB/s 52.7 %CPU
Rewriting... done: 23257 kB/s 6.2 %CPU
Writing intelligently... done: 26084 kB/s 14.5 %CPU
Reading with getc()... done: 44956 kB/s 99.9 %CPU
Reading intelligently... done: 1297106 kB/s 100.0 %CPU
Seeker 1...Seeker 2...Seeker 3...start 'em...done...done...done...
---Sequential Output (nosync)--- ---Sequential Input-- --Rnd Seek-
-Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --04k (03)-
Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU
linuxs 1*1024 21945 52.7 26084 14.5 23257 6.2 44956 99.91297106 100 105532.5 137

Gruß

Sebastian
 
OP
B

Blackfog

Newbie
habe jetzt mal das Dateisystem geändert auf XFS. Hat aber leider gar nix gebracht.
Smartd dienst abgeschalten hat auch nix gebracht.
Die Festplatten schaffen mit hdparm getestet 89 MB/s. Bin echt ratlos wieso das raid so langsam läuft ?

Hier noch was mdadm zu meinem Raid sagt;


/dev/md0:
Version : 1.00
Creation Time : Sat Mar 7 14:11:23 2009
Raid Level : raid5
Array Size : 1933598976 (1844.02 GiB 1980.01 GB)
Used Dev Size : 1933598976 (1844.02 GiB 1980.01 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Fri Mar 13 10:31:57 2009
State : active
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0

Layout : left-asymmetric
Chunk Size : 128K

Name : localhost:0
UUID : 02a0d862:0f92a362:debe9275:12a8ea81
Events : 34

Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
3 8 49 2 active sync /dev/sdd1


Gruß

Sebastian
 
OP
B

Blackfog

Newbie
Hallo,

habe in einem Forum ein cooles Skript entdeckt das die performance etwas steigern sollte und siehe da habe jetzt schreibend bis zu 70 MB/s
:D

Dort wurde auch empfolen als Blockröße beim Raid 1024 K zu wählen was ich doch recht viel finde. Ich habe momentan 128 K. Hat da von euch einer schon Erfahrung gemacht ob und wieviel das noch bringt ?

Code:
# Tell user what's going on.
echo "Optimizing RAID Arrays..."

# Define DISKS.
cd /sys/block
DISKS=$(/bin/ls -1d sd[a-z])

# Set read-ahead.
# > That's actually 65k x 512byte blocks so 32MiB
echo "Setting read-ahead to 32 MiB for /dev/md3"
blockdev --setra 65536 /dev/md3

# Set stripe-cache_size for RAID5.
echo "Setting stripe_cache_size to 16 MiB for /dev/md3"
echo 16384 > /sys/block/md3/md/stripe_cache_size

# Disable NCQ on all disks.
echo "Disabling NCQ on all disks..."
for i in $DISKS
do
echo "Disabling NCQ on $i"
echo 1 > /sys/block/"$i"/device/queue_depth
done

# Fix slice_idle.
# See http://www.nextre.it/oracledocs/ioscheduler_03.html
echo "Fixing slice_idle to 0..."
for i in $DISKS
do
echo "Changing slice_idle to 0 on $i"
echo 0 > /sys/block/"$i"/queue/iosched/slice_idle
done

----
 
Oben