Toon posts:

[FreeBSD] 3 schijven op UDMA66, CPU-gebruik toch absurd hoog

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi allemaal,

Afgelopen weekend heb ik er in mijn FreeBSD 5.4-STABLE bakje een 250gb Maxtor bijgehangen omdat ik wat krap zat qua opslag. Alles aangesloten, gesliced, UFS partitie gemaakt en werken als een trein. Althans, totdat ik ging benchmarken.

Het volgende is het geval; Wanneer ik een willekeurige schijf (ik heb er 3, maakt niet uit welke) laat lezen of schrijven op gemiddelde tot hoge belasting schiet mijn CPU gebruik gigantisch de lucht in. Ook vind ik de transfersnelheden ronduit teleurstellend. Alle schijven draaien op UDMA66 (heb ik gecontroleerd middels atacontrol mode), netjes verbonden met mijn moederbord met een 80-pins ATA kabel. Alleen de CD-ROM draait op UDMA33. Toch krijg ik bij het uitvoeren van Bonnie++ (filesystem benchmark) maar 15 megabytes per seconde uit de schijven geperst, dit moet toch véél hoger kunnen lijkt me? Ook is het CPU-gebruik verschrikkelijk hoog, tussen de 50% en 99%.

Ik heb "top -S" gedraaid om te kijken wat er nou precies zoveel resources claimt, dit zijn niet de interrupts, en voor zover ik weet zijn deze ook niet geshared. ata0 (14) en ata1 (15) gebruiken maar 1% van m'n CPU ofzo, hier ligt het dus (denk ik) niet aan. Het CPU-gebruik ligt bij Bonnie++, maar ook als ik via bijvoorbeeld FTP of SMB bestanden overpomp schiet de CPU omhoog naar de 50 à 75 procent. Dit is mijns inziens gewoon te hoog, maar ik heb geen idee waar ik moet zoeken voor een oplossing.

Bij deze dus de volgende vragen, waarde medetweakers: waarom is mijn CPU-gebruik zo absurd hoog ondanks UDMA, waarom zijn de transfersnelheden zo teleurstellend, en wat zouden jullie me adviseren om dit op te lossen? Ik heb vrijwel alles geprobeerd wat ik me kon bedenken. Het vreemde was dat toen ik nog Linux op die machine draaide de schijven wél prima presteerde, althans véél minder CPU gebruikten en véél sneller lazen/schreven dan dat nu het geval is.

Ik sta open voor elke suggestie, ik weet zolangzamerhand niet meer waar ik moet zoeken... :)

Alvast bedankt dus!

Extra info die wel relevant is:
Systeemspecificaties
code:
1
2
3
4
CPU: 1GHz Celeron Coppermine
RAM: 512Mb PC133
HDD: 2 Maxtor 80Gb 6Y080P0 (7200, 8Mb), 1 Maxtor 250Gb 6L250R0 (7200, 16Mb)
Mobo: Intel <nogwat>, maar met een Intel UDMA66 controller onboard


Dmesg output:
code:
1
2
3
4
5
6
7
8
atapci0: <Intel ICH UDMA66 controller> port
0xf000-0xf00f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 31.1 on pci0
ata0: channel #0 on atapci0
ata1: channel #1 on atapci0
ad0: 78167MB <Maxtor 6Y080P0/YAR41BW0> [158816/16/63] at ata0-master UDMA66
ad1: 78167MB <Maxtor 6Y080P0/YAR41BW0> [158816/16/63] at ata0-slave UDMA66
ad2: 239372MB <Maxtor 6L250R0/BAH41G10> [486344/16/63] at ata1-master UDMA66
acd0: CDROM <ATAPI CDROM 52X/V130F> at ata1-slave UDMA33


Bonnie benchmark output:
code:
1
2
3
4
5
6
7
8
9
File './Bonnie.7724', size: 104857600
              -------Sequential Output-------- ---Sequential Input--
--Random--
              -Per Char- --Block--- -Rewrite-- -Per Char- --Block---
--Seeks---
Machine    MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU  /sec
%CPU
          100 15326 50.3 14596 24.5 17190 27.8 42274 99.0 132574 99.2
13326.4 98.0

  • roelke
  • Registratie: Juli 2005
  • Laatst online: 03-02 13:21
Hoeveel mhz is je cpu?

I've GoT a solution


  • Michael
  • Registratie: Maart 2000
  • Laatst online: 20-01 19:22
Allereerst zitten je hd + cdrom op 1 ata controller, dus zover ik weet gaat deze automatisch op maximaal udma33 (dacht ik)

Daarnaast wat geeft je top precies aan. Gaan je cpu cycles in system zitten (kernel), wat me opzich logisch lijkt, of is het user usage.

Daarnaast kan je misschien is de output geven van 'diskinfo -t ad3'

Verwijderd

Topicstarter
Roelke: zoals vermeld 1000MHz, ruim voldoende lijkt me
Michael: CPU-gebruik bestaat veelal uit userland cycles, dus "cp", "smbd", "bonnie", etc... Ik zou ook verwachten dat het meeste wordt weggekaapt door de kernel, maar dit is niet het geval.

Output van diskinfo voor alledrie de disks (commando kende ik nog niet trouwens!):

ad0
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@io# diskinfo -t /dev/ad0
/dev/ad0
        512             # sectorsize
        81964302336     # mediasize in bytes (76G)
        160086528       # mediasize in sectors
        158816          # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.

Seek times:
        Full stroke:      250 iter in   4.839492 sec =   19.358 msec
        Half stroke:      250 iter in   4.134223 sec =   16.537 msec
        Quarter stroke:   500 iter in   8.024933 sec =   16.050 msec
        Short forward:    400 iter in   1.872798 sec =    4.682 msec
        Short backward:   400 iter in   1.653200 sec =    4.133 msec
        Seq outer:       2048 iter in   0.337835 sec =    0.165 msec
        Seq inner:       2048 iter in   0.333974 sec =    0.163 msec
Transfer rates:
        outside:       102400 kbytes in   2.162627 sec =    47350 kbytes/sec
        middle:        102400 kbytes in   2.526414 sec =    40532 kbytes/sec
        inside:        102400 kbytes in   3.532494 sec =    28988 kbytes/sec


ad1
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@io# diskinfo -t /dev/ad1
/dev/ad1
        512             # sectorsize
        81964302336     # mediasize in bytes (76G)
        160086528       # mediasize in sectors
        158816          # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.

Seek times:
        Full stroke:      250 iter in   5.826164 sec =   23.305 msec
        Half stroke:      250 iter in   4.419906 sec =   17.680 msec
        Quarter stroke:   500 iter in   6.833488 sec =   13.667 msec
        Short forward:    400 iter in   2.250848 sec =    5.627 msec
        Short backward:   400 iter in   3.204047 sec =    8.010 msec
        Seq outer:       2048 iter in   0.285525 sec =    0.139 msec
        Seq inner:       2048 iter in   0.285140 sec =    0.139 msec
Transfer rates:
        outside:       102400 kbytes in   2.047085 sec =    50022 kbytes/sec
        middle:        102400 kbytes in   2.083946 sec =    49138 kbytes/sec
        inside:        102400 kbytes in   3.312364 sec =    30914 kbytes/sec



ad2
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@io# diskinfo -t /dev/ad2
/dev/ad2
        512             # sectorsize
        251000193024    # mediasize in bytes (234G)
        490234752       # mediasize in sectors
        486344          # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.

Seek times:
        Full stroke:      250 iter in   5.349787 sec =   21.399 msec
        Half stroke:      250 iter in   4.589918 sec =   18.360 msec
        Quarter stroke:   500 iter in   8.183744 sec =   16.367 msec
        Short forward:    400 iter in   3.232955 sec =    8.082 msec
        Short backward:   400 iter in   3.194409 sec =    7.986 msec
        Seq outer:       2048 iter in   0.308007 sec =    0.150 msec
        Seq inner:       2048 iter in   0.318410 sec =    0.155 msec
Transfer rates:
        outside:       102400 kbytes in   1.818097 sec =    56323 kbytes/sec
        middle:        102400 kbytes in   1.938555 sec =    52823 kbytes/sec
        inside:        102400 kbytes in   3.003189 sec =    34097 kbytes/sec


Wat mij hieraan opvalt is dat deze waarden *WEL* overeenkomen met wat ik verwachtte! Hoe kan dit? Ik vind het heel erg vreemd... bedankt dus voor alle hulp.

EDIT! Ok, na nader onderzoek zie ik dat wanneer ik diskinfo draai er bijna geen gebruik wordt gemaakt van de CPU en de snelheden gewoon optimaal zijn - ik vraag me af wat hier aan de hand is. Met andere woorden, diskinfo geeft wél een normaal resultaat en elk willekeurig ander programma niet. Help! :)

[ Voor 5% gewijzigd door Verwijderd op 24-10-2005 17:57 ]


  • roelke
  • Registratie: Juli 2005
  • Laatst online: 03-02 13:21
het zou met de progamma's te maken kunnen hebben
het lijkt mij niet softwarematig

I've GoT a solution


Verwijderd

Topicstarter
roelke schreef op maandag 24 oktober 2005 @ 18:08:
het zou met de progamma's te maken kunnen hebben
het lijkt mij niet softwarematig
Daarmee spreek je jezelf tegen ;)

Michael, na even m'n hoofd gebruikt te hebben keek ik nog eens naar de CPU-usage bij top, deze geeft inderdaad ongeveer 20/25% kernel CPU-gebruik aan wanneer ik bonnie draai. Vreemd blijft dat de CPU nagenoeg niks te doen heeft wanneer ik diskinfo draai...

  • roelke
  • Registratie: Juli 2005
  • Laatst online: 03-02 13:21
roelke schreef op maandag 24 oktober 2005 @ 18:08:
het zou met de progamma's te maken kunnen hebben
het lijkt mij niet softwarematig
had hardwarematig moeten zijn

I've GoT a solution


Verwijderd

Topicstarter
roelke schreef op maandag 24 oktober 2005 @ 18:38:
[...]


had hardwarematig moeten zijn
Dacht ik al. ;)

Je hebt gelijk hoor, misschien is het een idee om even een Knoppix boot-CD te fikken en ff hdparm te draaien...

  • Michael
  • Registratie: Maart 2000
  • Laatst online: 20-01 19:22
Verwijderd schreef op maandag 24 oktober 2005 @ 18:28:
[...]

Daarmee spreek je jezelf tegen ;)

Michael, na even m'n hoofd gebruikt te hebben keek ik nog eens naar de CPU-usage bij top, deze geeft inderdaad ongeveer 20/25% kernel CPU-gebruik aan wanneer ik bonnie draai. Vreemd blijft dat de CPU nagenoeg niks te doen heeft wanneer ik diskinfo draai...
Is inderdaad een hoop. Kijk voor de zekerheid even naar de output van :
sysctl hw.ata

Verwijderd

Topicstarter
Michael schreef op maandag 24 oktober 2005 @ 23:08:
[...]


Is inderdaad een hoop. Kijk voor de zekerheid even naar de output van :
sysctl hw.ata
Al gedaan, allemaal 1tjes... zou dus allemaal goed moeten zijn.

(snip)
hw.ata.ata_dma: 1
hw.ata.wc: 1
hw.ata.atapi_dma: 1
(/snip)

Vind het wel weer gezegend voor vandaag, ik ga morgen op 't werk effe een Knoppix boot-CD branden en morgenavond even testen of ik met hdparm wél goede resultaten boek. Dan weet ik in ieder geval of ik op FreeBSD kan schelden of niet. :)

Bedankt voor alle suggesties zover, ik zal morgen wel een update posten.
Pagina: 1