Ik ben op zoek naar een manier om de performance van mijn mediaservertje te verbeteren. Ik heb een aantal dingen geprobeert en weet nu even niet meer in welke richting ik verder moet.
Probleem
Afspelen op mythtv frontend gaat met onderbrekingen. Alleen als de server eigenlijk volledig idle is gaat dit probleemloos.
Hardware
Gentoo linux, amd64 smaakje
Kernel: 2.6.18-gentoo-r3 #7 SMP
Relevante (kernel-)drivers:
Lirc 0.8.2-r2
Details
Laat ik voorop stellen dat ik dit eigenlijk een luxe probleem vindt: mythtv werkt naar behoren, ik kan 3 programma's tegelijk opnemen en DVD images kijken via mythvideo werkt ook naar behoren. Alleen: dat wil niet tegelijk. Dat snap ik tot op zekere hoogte ook wel maar voor mij is de vraag: stel dat ik dat wel zou willen, waar moet ik dan in investeren?
Er spelen namelijk een aantal dingen door elkaar: zo'n software RAID5 is natuurlijk prachtig maar die krijg je heel snel op zijn bek door tegelijkertijd te lezen en te schrijven naar de array. De data doorvoer gaat dan heel rap naar beneden. Nou lukt het me nog wel om op deze server zelf tegelijkertijd op te nemen als een DVD image te kijken (dus mythfrontend op de server zelf uitvoeren, dus geen last van CPU gebruik door NIC's of NFS). Als ik dit echter op een remote client doe, waarbij de DVD image via NFS gedeeld wordt, dan krijgt die server de DVD data niet snel genoeg bij de client. Op de server is dan de load praktisch 100 % (maar niet voortdurend). Op de client wordt het afspelen met variabele tussenpozen (plusminus 5 tot 60 seconden) steeds 1 seconde onderbroken.
Stel dat ik naar een situatie heen wil waarin ik tegelijkertijd wil kunnen opnemen via die PVR's en via NFS een DVD image kunnen afspelen, waar moet ik dan in investeren?
Probleem
Afspelen op mythtv frontend gaat met onderbrekingen. Alleen als de server eigenlijk volledig idle is gaat dit probleemloos.
Hardware
- MSI K9N SLI: o.a. nVIDIA nForce 570 SLI chipset, 2x Vitesse VSC8601 GBit LAN, 6 x SATA II nForce 570, 1 x PATA nForce 570, Realtek ALC883
- AMD Athlon(tm) 64 Processor 3200+
- 2 x 512 MB ram (dual channel)
- 1 x Hauppauge PVR 350, 1 x Hauppauge PVR 500
- 1x Maxtor 6Y080L0 op PATA
- Maxtor 6Y250M0, Maxtor 6Y250M0, Maxtor 6L200M0, SAMSUNG SP2004C, Maxtor 6Y200M0 op SATA, gebruikt als software RAID5 array binnen linux. Alle schrijven hebben 1 partitie van 200 GB met als FS "fd" (Linux raid autodetect). Deze /dev/md0 van 734 GB bevat alle media en PVR opnames.
Gentoo linux, amd64 smaakje
Kernel: 2.6.18-gentoo-r3 #7 SMP
Relevante (kernel-)drivers:
- sata_nv
- forcedeth
- ivtv 0.8.1 (non-kernel)
- alsa hda_intel 1.0.15 (non-kernel)
Lirc 0.8.2-r2
Details
Laat ik voorop stellen dat ik dit eigenlijk een luxe probleem vindt: mythtv werkt naar behoren, ik kan 3 programma's tegelijk opnemen en DVD images kijken via mythvideo werkt ook naar behoren. Alleen: dat wil niet tegelijk. Dat snap ik tot op zekere hoogte ook wel maar voor mij is de vraag: stel dat ik dat wel zou willen, waar moet ik dan in investeren?
Er spelen namelijk een aantal dingen door elkaar: zo'n software RAID5 is natuurlijk prachtig maar die krijg je heel snel op zijn bek door tegelijkertijd te lezen en te schrijven naar de array. De data doorvoer gaat dan heel rap naar beneden. Nou lukt het me nog wel om op deze server zelf tegelijkertijd op te nemen als een DVD image te kijken (dus mythfrontend op de server zelf uitvoeren, dus geen last van CPU gebruik door NIC's of NFS). Als ik dit echter op een remote client doe, waarbij de DVD image via NFS gedeeld wordt, dan krijgt die server de DVD data niet snel genoeg bij de client. Op de server is dan de load praktisch 100 % (maar niet voortdurend). Op de client wordt het afspelen met variabele tussenpozen (plusminus 5 tot 60 seconden) steeds 1 seconde onderbroken.
Stel dat ik naar een situatie heen wil waarin ik tegelijkertijd wil kunnen opnemen via die PVR's en via NFS een DVD image kunnen afspelen, waar moet ik dan in investeren?
- Hardware RAID5? Ik denk dat ook hardware RAID5 het moeilijk krijgt als je tegelijkertijd gaat schrijven als lezen naar dezelfde array.
- Betere netwerkkaarten? De netwerk snelheid van rond de 50000 KByte/s op dit moment lijkt mij goed genoeg. Ik kan me wel voorstellen dat als je een goede NIC neemt die de CPU niet zo belast dat je snelheid omhooggaat. Bovendien heeft de CPU dan meer cycles over voor software raid.
- Meer geheugen of snellere CPU? Alle beetjes helpen. Maar is het genoeg?
- Ander moederbord? Zou je in deze situatie tegen de limiet van de bus aanlopen?
- NFS tweaks? Volgens mij niet zinvol: of je nou FTP of NFS gebruikt: als je twee dingen tegelijk doet op die raid array dan keldert de throughput. Bovendien heb ik zo ongeveer de alle combinaties van de gebruikelijke set mount opties geprobeerd (intr,rsize=8192,wsize=8192,async,nfsvers=3,bg,actimeo=0,tcp)
- Al het netwerkspul vervangen door gigabit, kabels goed aangeknepen, router 3Com Officenogwat gigabit switch.
- Wat ik vanmiddag geprobeerd heb: de PVR opnames op een andere schijf zetten dan in een directory op de RAID array. Ik had een aparte SATA schijf aan dezelfde controller gehangen (laatste van 6 SATA connectors). Maakte geen ene moer uit. Volgens mij is die controller meer de bottleneck dan die software RAID. Ik had even geen PATA schijf bij de hand om het daarmee te proberen. Zou het zin hebben om er een aparte SATA controller in te hangen of loop je dan alsnog tegen de bus limiet aan?
Ik kan je niet helpen. De frutsel is warrig en niet knopig. Bovendien heb ik maar één kant | Scrobblernakel