Archief - beperkingen PCI bus

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

dj insulin

Legacy Member
beschrijving:
ik heb thuis ne redelijk oude PC staan,die dienst doet als fileserver.
De config die de problemen geeft bestaat uit 2 80 gig hd's, aangesloten op een ultra100TX2 controller + een r8169 lan kaart.
die 2 hd's zijn via windows in een software raid 0 gezet.

Probleem:
Dat werkt niet goed. Maximale doorvoer van het netwerk is ongeveer 11% (2 pc's staan beide op het gigabit netwerk en hebben beide een gigabit netwerkkaart).

Ik vermoed dus dat de pci bus het niet trekt. Hebben jullie enig idee wat ik hier aan kan wijzigen zodat er wat hogere doorvoer komt? ik hoef nu geen 80 MB /s te hebben, maar 12 vind ik toch wel heel weinig

AccuCore

Legacy Member
pci is toch 133mb/sec :s
volgens mij ligt het ergens anders aan!
heb je uwe load op uw cpu al eens bekeken? mss zit em daar het probleem in!
en ook al eens geprobeerd om uw hdd's te benchen? met hdtach of zo? om te zien hoeveel ze werkelijk kunnen verschepen? :p

dj insulin

Legacy Member
HD's verschepen minstens 40MB /S, en de CPU load is 70% bij dergelijke operaties, maar redeneer even mee:
-ik vraag (via het netwerk) een file op
-de cpu verwerkt de aanvraag
-de cpu vraagt aan de pci bus een gedeelte van die file op dat op HD1 zit (PCI belasting)
-de cpu vraagt het gedeelte op dat op HD2 zit (PCI belasting)
-de CPU voegt die 2 delen samen
-de CPU stuurt het samengevoegde deel door naar de netwerkkaart (PCI belasting)

als je nu goed ziet, zie je dat er 3 paketten over de PCI bus gaan voor 1 file. Deze kunnen niet afzonderlijk afgehandeld worden, alle apparaten delen de PCI bus + de bandbreedte

begrijp je waar ik denk dat het probleem zit?

De oplossing lijkt me vrij logisch: ik koop een hardware raid controller, maar:
de el_cheapo raid controllers laten hun raid doen door de cpu, wat het probleem niet zou oplossen. De high-end raid controllers betaal je makkelijk 400 euro.
Er zijn nog de hybride controllers. Deze hebben een gedeelte raid, maar een deel moet de cpu nog zelf doen, en deze kan je vinden voor een prijs die er wat tussen ligt.

Ik had mijn oog laten vallen op de rocketraid 454, maar heeft deze voldoende on-chip raid features om de bedoelde pci belasting weg te nemen?

*edit: de 3ware 7006 is ook nog bruikbaar, die is zuiver hardware raid. maar lijkt zo goed als niet verkrijgbaar in de benelux ...

Exit

Legacy Member
tja, is normaal die speeds hoor.
hier 2 pc's met gigabit en haal onderling 14mb/s (op 100mbit 9-10mb/s)
en veel hoger gaat ge niet halen. (met sata in beide pc's als met ide)

dj insulin

Legacy Member
het is dus wel degelijk niet normaal: ik heb een andere pc die (met PCIe netwerkkaart en nforce 4 raid controller) een transfer haalt van 30% naar mijn laptop. het is dus wel degelijk te verbeteren

dj insulin

Legacy Member
gewoon een ideetje: de netwerkkaart die nu in die fileserver zit is een goedkoop d-link kaartje. ALs ik daar nu een jumbo-frame compatibele hardware controller kaart in steek, zou dat ook de pci bus verlichten? of enkel de cpu?

apa

Legacy Member
De PCI-bus heeft idd een maximale doorvoer van 133 MB/s en die bandbreedte wordt gedeeld door alle devices op de PCI-bus. Hou er rekening mee dat niet enkel de PCI-slots op die PCI-bus aangesloten worden maar dat heel wat on-board devices daar ook op aangesloten worden (sound, netwerkaansluitingen, IDE-controller(s), ...).

Op een aantal iets minder oude moederborden zijn de IDE-controller(s) echter niet meer op de PCI-bus aangesloten. Wat voor moederbord gebruik jij? Wat voor chipset gebruikt die? Het kan namelijk zijn dat het interessanter is om je harde schijven op de controller van je moederbord te installeren.

Het gebruiken van een echte hardware RAID-controller zal je enkel helpen om de load op de CPU te verlichten. Als de PCI-bus echter de bottleneck is, dan zal je niet veel winnen. Wat voor CPU steekt er in die file-server?

Voor het meten van de performance van dat systeem moet je trouwens ook best 1 grote file gebruiken (kopieer bijvoorbeeld de Windows PAGEFILE ofzo). Harde schijven halen in de praktijk namelijk vrijwel nooit die 40 MB/s die je aanhaalt. Dat is eigenlijk een getal dat in de buurten ligt van de maximale sequential transfer-rate van veel schijven.

dj insulin

Legacy Member
we spreken hier over ATA/100 schijven, die 40MB/S is een gemeten waarde. in een raid-0 is dat niet euforisch om te eisen dat je 40MB haalt.

IVM de chipset: dat is een KT133A. ZOals je wrs wel weet, is de pci bus gekoppeld aan de northbridge, en de southbridge zit ook op de pci bus. daarmee dat ik dacht aan een externe controller met wat meer on-board capacteiten. In die pc steekt een duron 750.

*edit: apa: ik heb een 4GB ISO file gekopieerd van de raid disks voor mijn performance testing. fair enough?
bovendien host die fileserver nog een virtual AP. de netwerkkaart iseen 104mbps kaart, wat wil zeggen dat er ongeveer 15% extra PCI belasting bijkomt, die kaart is constant aan het broadcasten en gebruikt dus de pci bus om instructies te krijgen van de cpu

apa

Legacy Member
Hola: mijn opmerking was niet slecht bedoeld hoor...

Je weet wellicht dat operating systems steeds gebruik maken van index-tabellen (FAT voor FAT-partities en MFT's voor NTFS-partities) om files (en delen ervan) op de disk terug te vinden. Om een file te kunnen vinden en te kunnen lezen, moet je systeem eerst de file volledig vinden in die indexen. Hoe meer (kleine) files je wil kopiëren, hoe vaker je systeem naar die indexen moet kijken.

Ten tweede worden files in blokken opgesplitst die elk op een bepaald adres op de disk opgeslagen worden. Opeenvolgende adressen staan fysiek ook na elkaar opgeslagen op de disk en kunnen snel uitgelezen worden (we noemen dit "sequential reads" -> de lees-/schrijfkop moet dan namelijk niet (veel) bewegen om de opeenvolgende blokken te lezen). Als de blokken van 1 file echter niet op opeenvolgende adressen staan opgeslagen, dan moet de lees-/schrijfkop wel bewegen en heb je daardoor een extra vertraging.
De blokken van 1 file op opeenvolgende adressen plaatsen, doe je door de harde schijf te "defragmenteren" (maar dat wist je wel denk ik?!).

Op de KT133A zijn north- & southbridge idd verbonden via de PCI-bus, maar dat kon ik (tot aan je vorige post) niet weten aangezien je nog niet gemeld had dat je die chipset gebruikte.

Om de performance iets te verbeteren, kan je wel de grootte van je disk-cache vergroten. Dat kan je, in Windows, niet rechtstreeks. Je kan Windows wel zo instellen dat die zelf meer belang aan de disk-performance gaat hechten:
  1. Rechtsklik op "My Computer" en kies "Properties".
  2. Klik op de "Advanced tab".
  3. Zet de keuze in "Processor scheduling" op "Background services".
  4. Zet de keuze in "Memory usage" op "System cache".
  5. Klik op OK.
Heb je trouwens de CPU-belasting in het oog gehouden tijdens zo'n kopieer-operaties? Hoe hoog is die?

dj insulin

Legacy Member
mijn opmerking was dat ook niet hoor, don't worry ;)

de CPU load is 67% bij zo'n operatie, en wat je daar zei is al gebeurd, dat stond al zo.

Ik dacht vooral aan het volgende:
om een chip aan te spreken moet de CPU een IRQ oproepen, het oproepen van die IRQ vraagt een bepaalde latency. Als de data nu al voorgekauwd wordt in de raid controller / netwerkkaart moet dat ding minder IRQ calls doen en wordt er efficiënter gewerkt.
defragemnteren is iets wat dagelijks gebeurd, van 2 tot 3 uur s' nachts. I am not THAT noobish ;)

*edit:nog een voordeel: pure hardware-raid controllers zijn meestal uitgerust met wat chache, server ethernet adapters ook. in het geval van een beperkte bus kan dit wel wat opleveren, niet?

apa

Legacy Member
Dat kan, maar die dingen zijn niet bepaald goedkoop he. Ik denk dat je dan beter een nieuwer systeem koopt dan zo'n dure componenten aan je huidig systeem toevoegt.

IRQ's werken trouwens in de omgekeerde richting: het zijn de componenten die een IRQ raisen die de CPU dan inlicht om zijn lopend werk te onderbreken om de interrupt af te handelen. Als je een buffer gebruikt ergens, dan zal de CPU minder vaak z'n werk moeten onderbreken. In jouw geval is de CPU niet echt de bottleneck aangezien die niet op 100% draait...

Ook ondersteunt je controller Ultra-DMA mode wat staat voor "Ultra Direct Memory Access". Daarbij kan de memory controller van de harddisk rechtstreeks naar het RAM schrijven en hoeft er geen IRQ naar de CPU te worden gestuurd.

De eenvoudigere RAID controllers (zoals deze die je gebruikt) zijn idd geen hardwarematige RAID-controllers zoals velen wellicht geloven. Het aansturen van de harde schijven wordt namelijk door de CPU afgehandeld waardoor ze dus belastend zijn voor de CPU. Ze verbruiken wel meer bandbreedte dan hardware RAID-controllers, maar dat is nog niet zó verschrikkelijk: ze versturen voornamelijk vaker kleinere paketten dan hardwarematige controllers.

dj insulin

Legacy Member
het is software raid ....
bovendien: 2dehandse server ethernet adapters kan je op ebay nog wel vinden, net zoals raid controllers (al zijn die wat zeldzamer)

dj insulin

Legacy Member
apa, gewoon ter illustratie wat een nieuw systeem zou kosten dat die bottleneck niet heeft:
-1.5 GB ram (ding runt een hele hoop idle processen, veel te lang om allemaal te beschrijven, 1.5gig is wat er nu aan PC133 in steekt) -> 100 euro
- nieuw moederbord -> 50 euro
- nieuwe CPU -> 50 euro

dan zit je al om en bij de 200 euro, en dan heb je nog geen rekening gehouden met de verhoogde warmteproductie / het verhoogde stroomverbruik van je systeem.

voor 200 euro kan je al wel fatsoenlijk server materiaal kopen hoor :)

AccuCore

Legacy Member
owkee :p heb alles nog eens ff doorgelezen.....
ik begrijp het probleem ni echt meer :p ....
ik heb hier een ftp server staan(kabel=100mbit) en als ik een file opvraag dan haal ik ook maar de 10mb/s.....das vrij normaal peins ik ze en gigabit is ovverroepen :)
veel meer snelheid ga ge ni halen of ge moet beginnen tweaken(heb 2mb/sec bijgewonnen met een proggie te runnen die men tcp/ip settings etc goedzette...mss daar eens achter zoeken....ben naam kwijt :) )

dj insulin

Legacy Member
dat 'progje' maakt gebruik van jumbo frames. dat wordt niet ondersteund door de huidige controller. Het probleem situeert zich enkel en alleen op het volgende: hoe beperk ik de load op de PCI bus?
anyway, ik heb een server ethernetkaart gekocht + ik ben aan het zoeken voor een hardware raid controller. na de examens zal ik dat eens inbouwen en dan zulen we wel zien :)

dj insulin

Legacy Member
ff kleine update:

voor de hardware raid controller in te bouwen zijn wat moeilijkere dingen vereist, net zoals de netwerkkaart, maar:

Ik heb het RAM-geheugen verhoogd van 768MB PC100 naar 1.5GB pc133. de gemiddelde performance steeg van 11 naar 13%. Iemand die weet hoe dat kan? :-/

retrosaurus

Legacy Member
het is gewoon die software raid die het spel strop zet, een 750Mhz kan dat alles niet aan. Een HW raid gaat de snelheid al verbeteren. Ram heb je in elk geval genoeg.

dj insulin

Legacy Member
en waarom is de CPU load dan maar een goede 80%?
*edit: nu he, vroeger was ze minder
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan