[FreeBSD] Write performance hit bij hoge CPU load

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 09:03
Ik heb een server met FreeBSD 8.1 met een LSI 8404ELP raidkaart.

Zojuist heb ik gemerkt dat bij een volledige belasting van de CPU de write performance een gigantisch performance hit krijgt. Een simpele benchmark toont het aan(stress --cpu, 8 voor volledig, 32 voor extreem):

Bij geen CPU load: 1073741824 bytes transferred in 6.747376 secs (159134726 bytes/sec)
Bij volledige CPU load: 1073741824 bytes transferred in 23.094951 secs (46492492 bytes/sec)
Bij extreme CPU load: 356515840 bytes transferred in 76.142714 secs (4682206 bytes/sec)

Het handlen van veel kleine bestanden is rampzalig. (Ik merkte dat 'portsnap extract' niet vooruit te branden meer was)

Heeft iemand enig idee hoe dit kan? Volgens mij zou IO niet dusdanig afhankelijk van CPU hoeven/mogen zijn. Op m'n linux werkstation heeft de IO niet op zo'n manier te lijden onder CPU load.

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Dit is gewoon afhankelijk van de scheduler. Je kan proberen om de het IO process hogere prioriteit te geven dan het CPU-bound process.
Waar komt de data trouwens vandaan? Netwerk, memory, andere drive?

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 09:03
H!GHGuY schreef op dinsdag 30 november 2010 @ 12:43:
Dit is gewoon afhankelijk van de scheduler. Je kan proberen om de het IO process hogere prioriteit te geven dan het CPU-bound process.
Waar komt de data trouwens vandaan? Netwerk, memory, andere drive?
De data komt van 'dd' af. Met nice -19 loopt het wel vlotjes weer.

Als ik het nareken, klopt de gehaalde snelheid op normale priority met de haalbare snelheid gedeeld door de load.

-edit-

Wat ik het vreemde vind, het lezen ondervind geen enkele hinder ergens van.

-edit2-

Bij het verder testen ben ik nog een vreemdigheid tegengekomen.

Bij 'dd if=/dev/zero of=file.null bs=64k' is er geen hit, maar bij een bs 1024k wel.

[ Voor 38% gewijzigd door Keiichi op 30-11-2010 13:30 ]

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


Acties:
  • 0 Henk 'm!

  • Kompaan
  • Registratie: Juni 2009
  • Laatst online: 02-12-2022
Keiichi schreef op dinsdag 30 november 2010 @ 13:18:
[...]
Bij 'dd if=/dev/zero of=file.null bs=64k' is er geen hit, maar bij een bs 1024k wel.
bij grotere BS wordt er meer via cache gedaan (in grotere blokken dus). Zal, zoals gezegd, te maken kunnen hebben met de scheduler. Standaard wordt nu de ULE scheduler gebruikt in FreeBSD, neem aan dat je die ook gewoon in gebruik hebt?

Ander idee:
Op wat voor driver en RAID modus heb je de RAID kaart draaien? (i.e. gebruik je die kaart als hardware raid?)