# frage zur raid0 performance?

## siddy

hallo!

ich hab 4 sata festplatten im raid0 verbund. darauf befinden sich swap, / , und meine datenpartition.

mein problem ist das mir die leistung des raid verbundes zu schwach erscheint.

ich poste hier mal die ausgabe von hdparm:

```
gentoo siddy # hdparm -tT /dev/mapper/isw_dagejcbfdh_raid3

/dev/mapper/isw_dagejcbfdh_raid3:

 Timing cached reads:   7278 MB in  2.00 seconds = 3642.15 MB/sec

 Timing buffered disk reads:  414 MB in  3.00 seconds = 137.92 MB/sec

```

wenn ich einzelne dateien kopiere (ca. 700 mb groß), dann komme ich auf 18 bis 25 Mb/s.

ich poste hier noch die ausgabe von hdparm, von einer einzelen platte:

```
gentoo siddy # hdparm  /dev/sdb

/dev/sdb:

 IO_support    =  0 (default 16-bit)

 readonly      =  0 (off)

 readahead     = 256 (on)

 geometry      = 48641/255/63, sectors = 781422768, start = 0

```

die ausgabe von hdparm ist bei allen platten gleich.

wär nett wenn mir da jemand einen tipp geben könnte!!  :Very Happy: 

greetz siddy

----------

## schachti

 *siddy wrote:*   

> 
> 
> ich hab 4 sata festplatten im raid0 verbund. darauf befinden sich swap, / , und meine datenpartition.
> 
> 

 

swap auf RAID0 ist böse. Nimm stattdessen einzelne swap-Partitionen und weise ihnen in /etc/fstab die gleiche Priorität zu. Der Kernel macht dann den Rest.

 *siddy wrote:*   

> 
> 
> ich poste hier mal die ausgabe von hdparm:
> 
> 

 

Gib uns bitte mal die Ausgabe von hdparm -d (um zu sehen, ob DMA aktiviert ist). Außerdem wäre interessant, welche Hardware Du verwendest, welchen Kernel, welches Dateisystem sowie die Ausgabe von emerge --info.

----------

## siddy

hallo!

ausgabe von hdparm:

```
gentoo linux # hdparm -d /dev/sdb

/dev/sdb:

```

der dma modus sollte bei sata platten sowieso an sein. wenn ich eine datei kopiere steigt die cpu last nicht über 2%. ich verwende den onbord raid controller des mainboards.

meine hardware:

Asus P5B Deluxe

4 x 1 GB DDR2 PC4300 RAM

Intel Core2Quad Q6600 4x2,4 GHz

4x  SAMSUNG HD401LJ 

kernel:

gentoo-sources 2.6.23-gentoo-r3

dateisystem:

reiserfs 

augabe von emerge --info:

```
gentoo linux # emerge --info

Portage 2.1.3.19 (default-linux/x86/2007.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.23-gentoo-r3 i686)

=================================================================

System uname: 2.6.23-gentoo-r3 i686 Intel(R) Core(TM)2 Quad CPU @ 2.40GHz

Timestamp of tree: Sat, 05 Jan 2008 19:46:01 +0000

ccache version 2.4 [enabled]

app-shells/bash:     3.2_p17-r1

dev-java/java-config: 1.3.7, 2.0.33-r1

dev-lang/python:     2.4.4-r6

dev-python/pycrypto: 2.0.1-r6

dev-util/ccache:     2.4-r7

sys-apps/baselayout: 1.12.10-r5

sys-apps/sandbox:    1.2.18.1-r2

sys-devel/autoconf:  2.13, 2.61-r1

sys-devel/automake:  1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10

sys-devel/binutils:  2.18-r1

sys-devel/gcc-config: 1.4.0-r4

sys-devel/libtool:   1.5.24

virtual/os-headers:  2.6.23-r3

ACCEPT_KEYWORDS="x86"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"

CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"

CXXFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

EMERGE_DEFAULT_OPTS="--ask"

FEATURES="ccache distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="ftp://gentoo.inode.at/source/ "

LINGUAS="de"

MAKEOPTS="-j5"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="X a52 aac acl alsa berkdb bitmap-fonts cli cracklib crypt cups dga dri dvd dvdr dvdread encode ffmpeg fortran gdbm gpm hal iconv isdnlog kde lame mad midi mp3 mpeg mplayer mudflap ncurses nls nptl nptlonly ogg opengl openmp pam pcre perl posix pppd python qt3 qt4 quicktime readline reflection sdl session sndfile spl ssl tcpd theora truetype-fonts type1-fonts unicode usb vcd vorbis win32codecs x264 x86 xml xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" USERLAND="GNU" VIDEO_CARDS="nvidia"

Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

```

ich hoffe das hilft dir weiter, danke für die mühe!!

siddy

----------

## schachti

 *siddy wrote:*   

> 
> 
> der dma modus sollte bei sata platten sowieso an sein.
> 
> 

 

Sorry, habe übersehen, dass es sich um SATA handelt. Treten die Probleme nur beim Lesen, nur beim Schreiben, nur beim kombinierten Lesen+Schreiben, oder bei verschiedenen Aktionen auf?

Was ist denn die Ausgabe von (bitte auf einer Partition mit > 1 GB freiem Speicher ausführen)

```

dd if=/dev/zero of=bla bs=4k count=262144

echo 3 > /proc/sys/vm/drop_caches && dd if=bla of=/dev/null bs=4k count=262144

echo 3 > /proc/sys/vm/drop_caches && dd if=bla of=blubb bs=4k

```

(anschließend kannst Du die Datei bla wieder löschen).

----------

## Anarcho

Also ich habe hier auf meinem Raid0 mit 2 SATA Platten folgende Performance:

```
server ~ # hdparm -tT /dev/md4 

/dev/md4:

 Timing cached reads:   4796 MB in  2.00 seconds = 2399.78 MB/sec

 Timing buffered disk reads:  284 MB in  3.26 seconds =  86.99 MB/sec
```

Dagegen RAID5 mit 3 Platten:

```
server ~ # hdparm -tT /dev/md3 

/dev/md3:

 Timing cached reads:   5474 MB in  2.00 seconds = 2739.79 MB/sec

 Timing buffered disk reads:  400 MB in  3.00 seconds = 133.25 MB/sec
```

Hardware ist sehr ähnlich: Intel Q6600 QuadCore, Intel DG33FB Mainboard, 2x2GB RAM

Zu der Sinnhaftigkeit von Datenpartition auf RAID0 sage ich mal besser nichts...(meine ist RAID0 Partition ist ne TEMP-Datenpartition für Videobearbeitung)

----------

## siddy

hallo!

```
gentoo data # dd if=/dev/zero of=bla bs=4k count=262144

262144+0 records in

262144+0 records out

1073741824 bytes (1.1 GB) copied, 3.54207 s, 303 MB/s

gentoo data # echo 3 > /proc/sys/vm/drop_caches && dd if=bla of=/dev/null bs=4k count=262144262144+0 records in

262144+0 records out

1073741824 bytes (1.1 GB) copied, 8.43341 s, 127 MB/s

gentoo data # echo 3 > /proc/sys/vm/drop_caches && dd if=bla of=blubb bs=4k

262144+0 records in

262144+0 records out

1073741824 bytes (1.1 GB) copied, 19.0257 s, 56.4 MB/s

gentoo data #                                           

```

mir fällt auf, das ich wenn ich zum beispiel eine avi datei ca. 700mb groß kopiere, das einfach zu lange dauert. ich hab die zeit ein paar mal mitgestoppt, und bin dann eben auf die besagten 18 bis 25 MB/s gekommen.da macht jede platte 4,5 bis 6,25 MB/s, und ich denke mal das das einfach zu langsam ist.

als ich das ganze os nach ein paar optimierungen neu übersetzt hab, hat es ca 10 stunden gedauert, und das bei 12 GB an installierter software. bei open office verwende ich die binär version. darüber kann man sich eigentlich nicht beschweren. 

@Anarcho:

3 festplatten mit raid 5:

```
Timing buffered disk reads:  400 MB in  3.00 seconds = 133.25 MB/sec
```

4 festplatten mit raid 0:

```
Timing buffered disk reads:  414 MB in  3.00 seconds = 137.92 MB/sec 
```

irgendwie komisch denk ich mal!  :Shocked: 

siddy

----------

## schachti

 *siddy wrote:*   

> 
> 
> ```
> gentoo data # dd if=/dev/zero of=bla bs=4k count=262144
> 
> ...

 

Was mir hier auffällt: Das Schreiben ist mehr als doppelt so schnell wie das Lesen (303 MB/s gegenüber 127 MB/s) - das finde ich doch sehr komisch.

----------

## schmutzfinger

Also sobald 2 deiner Platten am selben Bus hängen ist es klar das ein raid0 langsamer wird als ein einzelner Zugriff auf eine Platte. Wenn man Platten im raid0 verwendet und auf Performance nicht verzichten will dann müssen die an unteschiedlichen Bussen hängen. Das gleiche gilt für raid1/5 wenn man tatsächlich was gewinnen will.

Gib mal /proc/mdstat und /proc/scsi/scsi.

----------

## think4urs11

4 Platten in einem Raid0 halte ich ganz grundsätzlich mal für 'mutig' - 4 faches Ausfallrisiko, aber wers braucht...

 *schachti wrote:*   

> Was mir hier auffällt: Das Schreiben ist mehr als doppelt so schnell wie das Lesen (303 MB/s gegenüber 127 MB/s) - das finde ich doch sehr komisch.

 

meldet dd ein 'fertig' wirklich dann wenn das File physikalisch auf der Platte liegt oder bereits dann wenn es in irgendeinen (Schreib)cache abgeliefert wurde? Evtl. haben die HDs auch einen integrierten Cache der vor allem auf Schreibvorgänge optimiert ist.

Ggf. die Tests nochmal laufen lassen ala time `dd if=/dev/zero of=bla bs=4k count=262144 && sync`

 *schmutzfinger wrote:*   

> Wenn man Platten im raid0 verwendet und auf Performance nicht verzichten will dann müssen die an unteschiedlichen Bussen hängen. 

 

Ist nicht normalerweise sowieso jeder SATA-Anschluß direkt an den Chipsatz gekoppelt d.h. ein dedizierter Link?

----------

## schmutzfinger

Mhh da hatte ich doch glatt raid0 mit raid1 verwechselt. Ich hatte irgendwie auch nicht erwartet das jemand tatsächlich ein raid0 über 4 Platten macht. Naja selbst wenn da 2 von 4 am selben Bus hängen sollte die Perfomance trotzdem noch besser sein als bei einer einzelnen Platte. Wenn alle 4 am selben Bus hängen (geht das bei SATA?) dann muss das nicht schneller sein als eine allein, nur gefährlicher  :Wink: .

----------

## siddy

hallo!

```
gentoo siddy # cat /proc/mdstat

cat: /proc/mdstat: No such file or directory

gentoo siddy # cat /proc/scsi/scsi

cat: /proc/scsi/scsi: No such file or directory

```

btw: wie weiter oben schon erwähnt die platten hängen am onboard raid controller!

```
gentoo data # time `dd if=/dev/zero of=bla bs=4k count=262144 && sync`

262144+0 records in

262144+0 records out

1073741824 bytes (1.1 GB) copied, 3.45923 s, 310 MB/s

real    0m4.136s

user    0m0.044s

sys     0m3.424s

gentoo data # time `echo 3 > /proc/sys/vm/drop_caches && dd if=bla of=/dev/null bs=4k && sync`

262144+0 records in

262144+0 records out

1073741824 bytes (1.1 GB) copied, 8.1202 s, 132 MB/s

real    0m8.509s

user    0m0.124s

sys     0m1.440s

gentoo data # time `echo 3 > /proc/sys/vm/drop_caches && dd if=bla of=blubb bs=4k  && sync` 

262144+0 records in

262144+0 records out

1073741824 bytes (1.1 GB) copied, 17.6287 s, 60.9 MB/s

real    0m18.107s

user    0m0.084s

sys     0m4.972s

```

hoffe das bringt uns weiter. danke für die vielen antworten!!!

siddy

----------

## schachti

Immer noch der gleiche Effekt - Schreiben deutlich (Faktor 2) schneller als Lesen... Eigentlich (TM) sollte das so nicht sein. Tauchen im syslog irgendwelche interessanten Meldungen auf? Welchen Treiber verwendest Du für den SATA-Controller?

----------

## siddy

hallo!!

ich glaub wir sind der sache jetzt ein wenig näher. seht euch mal folgendes an:

partitionstabelle von meinem raid:

```
Disk /dev/mapper/isw_dagejcbfdh_raid: 1600.3 GB, 1600344555520 bytes

255 heads, 63 sectors/track, 194564 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

                          Device Boot      Start         End      Blocks   Id  System

/dev/mapper/isw_dagejcbfdh_raid1               1         487     3911796   82  Linux swap / Solaris

/dev/mapper/isw_dagejcbfdh_raid2             488        5351    39070080   83  Linux

/dev/mapper/isw_dagejcbfdh_raid3            5352      194564  1519853422+  83  Linux

```

sieht gut aus, genau so soll es sein.

partitionstabelle von sdb, sdc, sdd:

```
Disk /dev/sdc: 400.0 GB, 400088457216 bytes

255 heads, 63 sectors/track, 48641 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

```

und jetzt die partitionstabelle von sda:

```
Disk /dev/sda: 400.0 GB, 400088457216 bytes

255 heads, 63 sectors/track, 48641 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1         487     3911796   82  Linux swap / Solaris

/dev/sda2             488        5351    39070080   83  Linux

/dev/sda3            5352      194564  1519853422+  83  Linux

```

und ein auszug aus /var/log/messages:

```
Jan  6 10:36:09 gentoo sda: rw=0, want=3125670441, limit=781422768

Jan  6 10:36:09 gentoo Buffer I/O error on device sda3, logical block 3039706625

Jan  6 10:36:09 gentoo attempt to access beyond end of device

```

das komische dran ist, das der rechner neu ist. da war auser gentoo noch nix anderes drauf. hab den rechner beim händler geholt, im bios den raid eingerichtet, und dann gentoo installiert.  :Shocked:   :Shocked:   :Very Happy: 

siddy

----------

