[FreeNAS] Trage disk I/O

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Topicstarter
Ik heb zojuist een schone FreeNAS geinstalleerd en CIFS aangezet om es te kijken hoe de performance van FreeNAS nou tegenwoordig is. Tot mijn grote verbazing is de performance werkelijk om te janken, en ik denk dat ik weet waarom. Als ik 1 grote file erheen kopiëer (of er vandaan kopiëer) dan gaat de schijf enorm ratelen, net alsof de file uit duizenden fragmenten bestaat. Maar dat lijkt me sterk, gezien de schijf na de freenas-installatie schoon geformatteerd is, en dus leeg is. Fragmentatie is dus niet het geval. Maar wat wel? We hebben allemaal weleens een grote file naar een harddisk gekopiëerd, en we weten ook allemaal dat je daarbij niks geen geratel hoort.

De snelheid ligt zo rond de 15-25MBps in beide richtingen, CPU-verbruik tijdens pompen ergens rond de 20%. Aan CPU en netwerkkaart mag het dus niet liggen.

Wat geprobeerd: "large read/write" in CIFS aangezet, grotere send/receive buffers, "tuning" aangezet. Helpt uiteraard allemaal niets (anders had ik hier niet gepost :P)

Ik denk niet dat het verstandig om een ander FS te gebruiken: FAT32 is flauwekul om te veel redenen, EXT2 is oud en EXT3/4 staan er niet eens bij, en ZFS zorgt voor een belachelijke gas factory aan configuratie. Dus UFS lijkt wel the way to go.

Overigens, m'n netwerk, en de client-PC die ik gebruik, zijn meer dan capabel genoeg voor hoge doorvoersnelheden: vanaf een andere server, waar win2008 op staat, trek ik 70-80MBps.

Specs:
  • Athlon 64 3000+
  • 1GB geheugen
  • 1GB USB-stick voor FreeNAS
  • 400GB 7200rpm SATA-schijf voor data
  • Gigabit PCI netwerkkaartje
Config:
  • FreeNAS 0.7.1-AMD64
  • 400GB schijf als UFS geformatteerd
  • CIFS met anonymous authentication
Wat nu te doen :?

日本!🎌


Acties:
  • 0 Henk 'm!

  • Aike
  • Registratie: Juli 2000
  • Niet online
Zo laag mogelijk in het OSI-model beginnen met troubleshooten. Bijvoorbeeld met het netwerk. Misschien slechte kabel, slechte nic, slechte driver. etc

Als je nou de FreeNAS machine en een andere machine met een linux livecdtje boot en iptraf draait. Daarmee kun je je netwerk benchmarken met data die niet van disk hoeft te komen.

Mijn blog over het deployen van Ruby on Rails: RunRails.com


Acties:
  • 0 Henk 'm!

  • JohnR
  • Registratie: April 2003
  • Niet online

JohnR

Koffie is lekker!

_Thanatos_ schreef op donderdag 15 april 2010 @ 21:18:
Tot mijn grote verbazing is de performance werkelijk om te janken, en ik denk dat ik weet waarom.
Waarom denk je dat het zo traag is dan :? Een ratelende harde schijf lijkt me namelijk geen oorzaak, eerder een zoveelste symptoom dat er wellicht iets mis is in je opstelling

[ Voor 10% gewijzigd door JohnR op 16-04-2010 10:45 ]

/(bb|[^b]{2})/


Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Topicstarter
Zo laag mogelijk in het OSI-model beginnen met troubleshooten. Bijvoorbeeld met het netwerk. Misschien slechte kabel, slechte nic, slechte driver. etc
Netwerk kan ik wel ff testen ja. Heb ik vaker gedaan, alleen nog niet met die bak. Van de client-bak in kwestie naar die win2008 server haal ik alvast zo'n 930Mbps in beide richtingen. Dus de client-bak, de bakebeling daarvandaan en de switch, zijn in orde. Nu dus nog naar FreeNAS bak testen.
Als je nou de FreeNAS machine en een andere machine met een linux livecdtje boot en iptraf draait. Daarmee kun je je netwerk benchmarken met data die niet van disk hoeft te komen.
Maar eigenlijk wil ik ook pure disk I/O testen. Heeft unix/linux (bijvoorkeur FreeNAS natuurlijk) niet een tooltje om wat benches op een disk uit te voeren?
Een ratelende harde schijf lijkt me namelijk geen oorzaak, eerder een zoveelste symptoom dat er wellicht iets mis is in je opstelling
Mwa, ten eerste heb ik al meerdere keren FreeNAS geprobeerd, met verschillende opstellingen. Met SATA-schijven, met PATA-schijven, met soft-RAID, zonder soft-RAID. En deze keer dus een enkele SATA-schijf direct op het mobo aangesloten. Simpeler kan niet, en ik zie niet wat daar mis mee zou moeten zijn.

[ Voor 8% gewijzigd door _Thanatos_ op 16-04-2010 10:55 ]

日本!🎌


Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05 20:45
Met hdparm -tT /dev/mydisk kun je een benchmark doen. Nu weet ik alleen niet of hdparm of FreeNAS beschikbaar is. Anders kun je ook 'time dd if=/dev/mydisk of=/dev/null bs=1M count=100' gebruiken om 100Mb van je schijf te lezen en dat te timen.

Acties:
  • 0 Henk 'm!

  • IEF
  • Registratie: Februari 2004
  • Laatst online: 08:22

IEF

Why so serious?

_Thanatos_ schreef op vrijdag 16 april 2010 @ 10:53:
Maar eigenlijk wil ik ook pure disk I/O testen. Heeft unix/linux (bijvoorkeur FreeNAS natuurlijk) niet een tooltje om wat benches op een disk uit te voeren?
Bonnie++, iozone, iometer, hdparm, er zijn voldoende tools voor dat doel.
Mwa, ten eerste heb ik al meerdere keren FreeNAS geprobeerd, met verschillende opstellingen. Met SATA-schijven, met PATA-schijven, met soft-RAID, zonder soft-RAID. En deze keer dus een enkele SATA-schijf direct op het mobo aangesloten. Simpeler kan niet, en ik zie niet wat daar mis mee zou moeten zijn.
Wat dacht je van een disk die bijna gaat failen, IO errors op je SATA bus, noem het maar op?
Juist om die reden wil je op een zo laag mogelijk niveau gaan testen, en IO lijkt me daarom een goed beginpunt.

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Topicstarter
Ik ben al wat verder gekomen met tests. Ik heb gemerkt dat met die "time dd" truuk de harddisk zo'n 78MBps kan lezen. Schrijven weet ik niet, maar het zal wel in de buurt daarvan liggen. Schijf is dus niet het probleem, lijkt me zo.

Toen ben ik uiteraard naar netwerk gaan kijken. EN ja hoor. Op de een of andere manier krijg ik (met iperf) niet meer dan 300Mbps door die bak heen. Een andere bak op dezelfde bekabeling en met exact dezelfde software trekt 940Mbps.

Nu reist dus de vraag: waarom zo traag? Je zou haast zeggen dat het aan de netwerkkaart ligt.
Dus ok, de netwerkkaart is een RTL8169-based PCI-kaart. Niet het allerbeste, maar moet toch meer dan 300Mbps kunnen trekken. Een PCI-bus trekt in het slechtste geval totaal 1016Mbps/127MBps, dus dat is het probleem ook niet. Ik heb ook een andere NIC geprobeerd, met precies dezelfde chipset, en die doet ook maar 300Mbps. Dus aan het kaartje zelf kan het ook niet liggen.

Wrap-up:
  • Software is in orde (zelfde software op andere pc gaat goed)
  • Bekabeling is in orde (zelfde bekabeling op andere pc gaat goed)
  • Harddisk is in orde (is 2,5x zo snel als de gemeten netwerksnelheid)
  • NIC is (hardwarematig) in orde
Wat kan er nog mis zijn:
  • PC zelf is brak
  • NIC-driver is bagger
Ik heb voor de zekerheid (en een klein beetje voor de heb :P) maar alvast een PCIe NIC besteld (deze om precies te zijn). Misschien doet die het beter, maar in de tussentijd zou het wel aardig zijn om het probleem te isoleren. Ik ga nog ff verder met testen dus.

日本!🎌


Acties:
  • 0 Henk 'm!

  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 18-09 11:40
_Thanatos_ schreef op maandag 19 april 2010 @ 21:06:
Ik heb voor de zekerheid (en een klein beetje voor de heb :P) maar alvast een PCIe NIC besteld. Misschien doet die het beter, maar in de tussentijd zou het wel aardig zijn om het probleem te isoleren. Ik ga nog ff verder met testen dus.
De Realtek LAN kaartjes zijn één voor één brak en het verbaast me niks dat die i.c.m. een brakke driver niet voorbij de 300 Mbps zou komen.

Heb je dan nu wel een fatsoenlijke besteld? De pricewatch: Intel Gigabit CT Desktop Adapter is echt bijzonder snel, goed, zuinig, goedkoop en heeft goede open source drivers. :)

[ Voor 10% gewijzigd door gertvdijk op 19-04-2010 21:10 ]

Kia e-Niro 2021 64 kWh DynamicPlusLine. See my GitHub and my blog for articles on security and other stuff.


Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Topicstarter
Ik was toch bij DealExtreme aan het bestellen, en dacht, laat ik voor die paar dollar maar zo'n kaartje meenemen. Deze is het dus geworden: http://www.dealextreme.com/details.dx/sku.29866

VIA-based. Geen idee of die goeie chips bouwen.

De Intel-kaarten heb ik ervaring mee. En ja, ze werken... goed. Niet supergoed ofzo, want ik merk nauwelijks verschil. Maar ze doen het inderdaad prima.

日本!🎌


Acties:
  • 0 Henk 'm!

  • Nielson
  • Registratie: Juni 2001
  • Laatst online: 21-09 21:07
gertvdijk schreef op maandag 19 april 2010 @ 21:09:
[...]

De Realtek LAN kaartjes zijn één voor één brak en het verbaast me niks dat die i.c.m. een brakke driver niet voorbij de 300 Mbps zou komen.
Niks mis met Realtek chipsets, op een wat hogere cpu belasting na. Heb ook een poos met Freenas lopen prutsen op m'n fileserver, maar kreeg er geen fatsoenlijke snelheid uit. Nu met Ubuntu geen problemen meer. Zijn volgens mij wel problemen bekend (geweest) met de standaard aanwezige 8169 drivers, toen werd aangeraden degene van de realtek site te gebruiken.

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Topicstarter
Zo. Ik heb FreeNAS nu maar op die andere bak gezet, waarop het netwerk wel normaal snel werkte. De harddisk daarvan trekt zo'n 62MBps en het netwerk rond de 940Mbps. Je zou over het netwerk dus gewoon harddisk-snelheid mogen verwachten.

De eerste test lijkt veelbelovend en teleurstellend tegelijk. Ik schreef er een file van 700MB naartoe, en weer begon de schijf enorm te ratelen. Dat is echt NIET normaal, jongens. De snelheid is weer om evenhard te janken, nml zo'n 17MBps. Echter, als ik datzelfde bestand weer terugkopiëer vanaf de freenas-bak, trekt ie bijna 100MBps. Saillant detail is dat die bak 2GB geheugen heeft, en hij dus volledig in de filecache zou passen.

Voor de tweede test pak ik een bestand van pakweg 3,5GB. Schrijven gaat weer net zo baggertraag, en.... nu het bestand groter is dan het fysieke geheugen, gaat het lezen ook baggertraag. Ik hoor de harddisk weer keihard grasmaaien en de snelheid ligt rond de 22MBps.

Het lijkt er toch echt op dat er een probleem in het filesystem UFS zit. Het klinkt als fragmentatie, en één enkel bestand op een verders lege partitie kan nooit gefragmenteerd raken. Er is dus iets geks aan de hand. Maar wat in hemelsnaam :?

Ik bewijs met deze compleet andere PC dat het probleem iig niet in die ene PC zit. Ik verwacht dat een derde PC precies hetzelfde probleem vertoont, en een vierde ook.

日本!🎌


Acties:
  • 0 Henk 'm!

  • strandbal
  • Registratie: Juli 2003
  • Nu online

strandbal

Was het maar zo'n feest.

Welke versie van FreeNAS gebruik je? In 0.7.1 zijn wat Samba problemen opgelost, als je AIO aanzet dan. Staat hier beschreven, onderaan de pagina.

Ik heb thuis 0.7.0 draaien, en ik haal ook niet hoger dan ~300mbps, terwijl de cpu op zo'n 25% load zit en mijn RAID5 array veel harder kan. Ik moet deze aanpassingen ook nog even proberen, de berichten daar op het forum zijn hoopgevend.

Hier stond een dode link.


Acties:
  • 0 Henk 'm!

  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

_Thanatos_ schreef op dinsdag 20 april 2010 @ 22:20:
De eerste test lijkt veelbelovend en teleurstellend tegelijk. Ik schreef er een file van 700MB naartoe, en weer begon de schijf enorm te ratelen. Dat is echt NIET normaal, jongens. De snelheid is weer om evenhard te janken, nml zo'n 17MBps. Echter, als ik datzelfde bestand weer terugkopiëer vanaf de freenas-bak, trekt ie bijna 100MBps. Saillant detail is dat die bak 2GB geheugen heeft, en hij dus volledig in de filecache zou passen.
Een verschil met Linux is dat FreeBSD met UFS filesystems NIET async mount, dus metadata in principe consistent op disk terecht zou moeten komen. Dat gaat ten koste van performance, maar zorgt er wel voor dat het filesystem erg veilig is. Dat zou kunnen verklaren waarom de schrijfacties traag gaan. Toch is 17MBps echt te traag.
Voor de tweede test pak ik een bestand van pakweg 3,5GB. Schrijven gaat weer net zo baggertraag, en.... nu het bestand groter is dan het fysieke geheugen, gaat het lezen ook baggertraag. Ik hoor de harddisk weer keihard grasmaaien en de snelheid ligt rond de 22MBps.
In het geval van lezen is async mounten natuurlijk niet relevant. Ik vermoed dat het issue meer op applicatieniveau of de combinatie van applicatie en filesystem zit. Als de applicatie te kleine buffers gebruikt bij het lezen/schrijven, dan krijg je de issues die je beschrijft..

Wat je eenvoudig kunt testen is kijken hoe snel een 'dd if=grote_file_hier of=/dev/null bs=65536' gaat op je FreeNAS-doos. Daarmee test je de leessnelheid van je filesystem. Ook iets als 'dd if=/dev/zero of=grote_file_hier bs=65536 count=1000' is een idee om de schrijfsnelheid van het filesystem te testen. Probeer ook eens 1024 bytes als blocksize en kijk hoe snel het dan nog is (hint: behoorlijk minder snel).
Het lijkt er toch echt op dat er een probleem in het filesystem UFS zit. Het klinkt als fragmentatie, en één enkel bestand op een verders lege partitie kan nooit gefragmenteerd raken. Er is dus iets geks aan de hand. Maar wat in hemelsnaam :?
Van fragmentatie heb ik nog nooit last gehad op *nix-systemen. Het lijkt me zeer onwaarschijnlijk dat dat je issue is.

Ik gok dat je issue meer zit in het gebruik van te kleine buffers bij lezen/schrijven van/naar disk, waardoor je disk niet heel sequentieel meer kan schrijven en de throughput keldert (hoewel dat aio-verhaal misschien interessanter is om mee te beginnen, dat lijkt me een goede kandidaat).

Acties:
  • 0 Henk 'm!

  • strandbal
  • Registratie: Juli 2003
  • Nu online

strandbal

Was het maar zo'n feest.

Even een update: Net geupgrade naar 0.7.1, en de instructies op het freenas forum gevolgd zoals ik eerder had gepost, en ik zit nu tussen de 60-70MBps in plaats van 20-30MBps. Misschien is dit een optie voor je CIFS problemen.

Hier stond een dode link.

Pagina: 1