MySQL beschleunigen bei großer DB

  • Moin moin...

    also, ich betreibe eine MySQL Datenbank auf einem selbstbau NAS (24 TB) unter Windows 7 Ultimate x64 und 3 XBMC Clients (2x Arctic MC001-E mit SSD und jeweils 4 GB Ram - Openelec, sowie 1x Gaming-PC mit Vollaustattung und XBMC unter Windows) . Die Datenbank umfasst mittlerweile 1400 HD-Videofiles. Ich habe Pathsubstitution für die Thumbnails eingerichtet.

    Die Clients wecken beim Start von XBMC (bzw. Openelec) das NAS automatisch per WOL auf und halten es dann mittels WOL-Addon wach. Ist XBMC aus, geht das NAS nach 10 Minuten wieder in den Sleepmode.

    Alle Clients greifen per Gigabit-LAN auf den "Server" zu (via NFS-Freigabe - HaneWin). Es funktioniert auch problemlos, jedoch mir etwas zu langsam. Das XBMC (Openelec) startet sehr schnell ins XBMC "Hauptmenü"... wenn ich dann jedoch auf meine Film-DB gehe, dauert es gute 10 Sekunden bis die DB sich öffnet (also alle Videofiles im XBMC zu sehen sind).

    Ich habe die Vermutung, dass dies an den Thumbs liegen könnte, die er sich vom NAS holt (ist ja schon ne ganze Menge).

    Kann man das Öffnen der DB irgendwie beschleunigen (Kopien der Thumbs auf allen Clients oder sowas?)...

    P.S.: Ich nutze XBMC Eden (11)


    Gruß

    Ein XBMCNerd ;)

    Mein Heimkino:
    MySQL Server - Client Modell
    24 TB selbstbau NAS (Win7x64) - AMD A6-3500
    Artic MC001 (Openelec-Client)
    Intel Core i5-3570K @ 4.4GHz und Nvidia GTX Titan @ 1GHz
    (Hauptrechner unter Wasser - Win8Prox64)
    Gigabit-LAN an allen Geräten

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Einmal editiert, zuletzt von osratze (2. Januar 2013 um 13:34)

  • Das XBMC (Openelec) startet sehr schnell ins XBMC "Hauptmenü"... wenn ich dann jedoch auf meine Film-DB gehe, dauert es gute 10 Sekunden bis die DB sich öffnet (also alle Videofiles im XBMC zu sehen sind).


    Welche Hardware hat der HTPC ? bei einer ATOM oder anderen OnBoard CPU kann man da nicht viel gegen tun ... Aus dem Grund habe ich auch meine ATOM CPU gegen einen AMD A6 eingetauscht.

    EDIT: Gerade mal geschaut deine Clients haben nur eine Atom D525 denke mal daran wird es liegen. Am Hauptrechner mit Windows hast du solche Verzögerungen nicht oder ?

    Amazon Fire TV 4k | KODI 17.X
    HTPC: ASUS F2A85-M LE | A6-5400K | 4GB DDR3-1866 | 128GB SSD | Windows 10 64 bit | KODI 17.X
    AVR: Onkyo TX-NR509 5.1 + Teufel Consono 35
    TV: Samsung UE55ES6300 55"
    FB: Harmony 785

    Wo finde ich das xbmc.log File?

    Wer einen Rechtschreibfehler findet darf ihn behalten !

  • Also ich habe auch 3 Clients an einem mySQL-Server (WHS2011), allerdings nicht so viele Filme. Ca. 660 aber dafür nochmal ca. 4500 TV-Episoden. Alle Clients werkeln unter Windows 7 auch mit Path Substitution, 2 davon sind "richtige" PCs und ein Shuttle XS35GTv2. Letzterer ist bei mir auch deutlich träger in der Bedienung, die PCs sind deutlich schneller auch wenn einer davon noch einen uralten Dual-Core-Athlon als Motor besitzt.
    Bisher hat es mich jedenfalls noch nicht gestört. Ob es wirklich die Thumbs sind? Glaube ich nicht, denn dann müsste es ja überall gleich langsam sein. Und das ist bei mir nicht der Fall.

    Unter Frodo soll man übrigens die Path Substitution nicht mehr nutzen, das ist auch in der Upgrade-FAQ so ausgeführt, dass unter mySQL die Thumbnails lokal auf jedem Client vorgehalten werden sollen. Wenn Deine Theorie stimmt, müsste es dann flüssiger laufen ... das Ergebnis würde mich auch interessieren, ich spiele momentan aber nur kurz mit Frodo und bleibe mit dem "Produktivsystem" erstmal weiter auf Eden.

  • Danke für die Antworten...

    Bei mir sind alle Systeme gleich langsam beim öffnen der DB... am Atom kanns demnach eigentlich nicht liegen...

    Das Netz schafft bis 110 MB/s...

    TV-Episoden hab ich ca 3000... die gehen wesentlich schneller zu öffnen... ca. 3 Sekunden

    Mein Heimkino:
    MySQL Server - Client Modell
    24 TB selbstbau NAS (Win7x64) - AMD A6-3500
    Artic MC001 (Openelec-Client)
    Intel Core i5-3570K @ 4.4GHz und Nvidia GTX Titan @ 1GHz
    (Hauptrechner unter Wasser - Win8Prox64)
    Gigabit-LAN an allen Geräten

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • [gelöst]

    mit der Frodo Beta ist es super schnell...

    lag tatsächlich an den Thumbs... die hab ich mit Frodo jetzt auf allen Clients und er braucht nur noch 1-2 Sekunden zum Öffnen der DB...

    Mein Heimkino:
    MySQL Server - Client Modell
    24 TB selbstbau NAS (Win7x64) - AMD A6-3500
    Artic MC001 (Openelec-Client)
    Intel Core i5-3570K @ 4.4GHz und Nvidia GTX Titan @ 1GHz
    (Hauptrechner unter Wasser - Win8Prox64)
    Gigabit-LAN an allen Geräten

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

  • Die Clients wecken beim Start von XBMC (bzw. Openelec) das NAS automatisch per WOL auf und halten es dann mittels WOL-Addon wach.

    Kannst du mir sagen wie du das automatisch machst?

    Benutze zwar Windows mich würde es trotzdem interessieren. Unter Windows hab ich es bis jetzt nicht automatisch geschaft sondern nur über ein Extra Programm, was auch wieder bedient werden muss.

    Stereo/Heimkino:
    AVR: Arcam AVR 550
    LS: Front: Elac FS407
    ___Center: Elac CC201.A
    ___Rear: Elac BS204.2

  • ich hab mir die datenbank noch nicht angesehen...aber eigentlich sollte die datenbank nur über adressen bilder referenzieren...niemand der weiss was er tut speichert bilder freiwillig in einer mysql datenbank. wenn korrekt dann wäre das netz der flaschenhals und nicht die datenbank

  • wie sieht denn so eine datenbank referenz aus? wenn es der volle pfad ist dann wird schon alleine nichts drauss weil sich linux/unix pfade von windows unterscheiden. bei relativen pfaden sieht es schon besser aus...aber dann müsste man der datenbank bzw dem client xbmc sagen können das die datenbank lediglich die adresse hält und man mit der information trotzdem lokal im dateisystem suchen muss

    dann könntest du die grafiken im prinzip auf jedem client ablegen...aber wie willst du das ganze dann synchron halten? sieht nicht so gut aus

  • Unter Frodo kümmert sich das XBMC auf den Clients selbst um die Thumbs... keine Ahnung wie das genau funktioniert aber er synchronisiert sie...

    Wenn ich z.B. den Openelec Client starte, rödelt die SSD nach dem Start erstmal für 30 Sekunden... das hat sie unter Eden nicht gemacht... ich nehme an, da holt er sich die neuen Thumbs rüber.

    FUTURE FRODO FEATURE:


    Skip this step entirely if you are using XBMC v12 "Frodo".</big> Frodo will automatically take care of thumbnail caching on each client for you and keep them in sync

    Link: http://wiki.xbmc.org/index.php?titl…ails_and_fanart


    Und wegen dem WOL:

    Ich habs mittlerweile noch besser gelöst. Die Clients wecken den Server mittels Magic Paket beim start. Danach pingt der Server die Clients an und geht erst wieder in den Standby, wenn kein Client mehr angepingt werden kann (sprich: wenn sie ausgeschaltet sind).

    Das Magic Paket hab ich z.B. beim Openelec einfach beim Booten eingebaut. Noch bevor XBMC geladen wird, schickt er das Paket an den Server.

    Unter Windows hab ich mir ne Batch-Datei gebastelt, die zuerst das Magic Paket verschickt und dann die XBMC.exe startet...

    Mein Heimkino:
    MySQL Server - Client Modell
    24 TB selbstbau NAS (Win7x64) - AMD A6-3500
    Artic MC001 (Openelec-Client)
    Intel Core i5-3570K @ 4.4GHz und Nvidia GTX Titan @ 1GHz
    (Hauptrechner unter Wasser - Win8Prox64)
    Gigabit-LAN an allen Geräten

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Einmal editiert, zuletzt von osratze (16. Januar 2013 um 01:17)

  • osratze kannst du diese Batch-Datei für Windows hochladen?
    Ich bräuchte genau so etwas auch für meinen Server.

    Weiters könntest du bitte erklären wie du das mit automatisch anpiggen gemacht hast und bei nicht erreichen der Server sich abschaltet?

    Hört sich nach einer genialen Lösung an.
    Dankeschön schonmal

    Stereo/Heimkino:
    AVR: Arcam AVR 550
    LS: Front: Elac FS407
    ___Center: Elac CC201.A
    ___Rear: Elac BS204.2

  • Also, ich habe jetzt 3 Clients mit Frodo und mySQL laufen und es klappt gut.
    Die Thumbs liegen jetzt alle lokal und bis auf ein anfängliches Problem mit den Moviesets-Bildern funktioniert das besser als gedacht.

    Ich denke, dass die Bildquelle (in Form einer URL oder was ähnlichem) in der mySQL-Datenbank gespeichert wird. Das gilt sowohl für lokale Resourcen (poster.jpg) als auch für zusätzliche Artwork.
    Wenn jetzt ein neuer Client also zum ersten Mal auf die mySQL-DB zugreift, dann findet er dort auch die Infos, wo er diie Quelldatei findet und holt sie sich von da. Bei u.U. nicht lokal vorhandenen Quellen (also zum Beispiel Clearart, disc.png, Logos etc.) lädt er diese dann aus dem Internet nach. Dessen sollte man sich bewusst sein, es gibt also beim ersten Aufruf dieser Daten auf jedem Client einen zeitlichen Verzug, der vom eigenen Internetzugang und von der Verfügbarkeit von fanart.tv usw. abhängt.

    Je nach Größe der Bibliothek empfehle ich das vollständige Einrichten von XBMC auf einem Client und dann das Kopieren der texture13.db und des Thumbnail-Ordners auf alle anderen Clients, dann beschränkt sich obiges Verhalten nur auf neue Medien.

  • So Leude... hab euch mal die WOL-Dateien hochgeladen. Ich hoffe es hilft euch weiter.

    Dropbox-Link: https://www.dropbox.com/sh/6lx9f7rwvlvmi2l/VVf-rDoeXz


    Serverseitig benutze ich EnviProt - AutoShutdownManager

    Link: http://www.EnviProt.de

    Mein Heimkino:
    MySQL Server - Client Modell
    24 TB selbstbau NAS (Win7x64) - AMD A6-3500
    Artic MC001 (Openelec-Client)
    Intel Core i5-3570K @ 4.4GHz und Nvidia GTX Titan @ 1GHz
    (Hauptrechner unter Wasser - Win8Prox64)
    Gigabit-LAN an allen Geräten

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Einmal editiert, zuletzt von osratze (22. Januar 2013 um 14:03)

  • Jemand schon damit Erfahrung ?

    Code
    MySQL optimieren
    
    
    ALTER TABLE movie ADD INDEX ix_idFile(idFile);
    ALTER TABLE movie ADD INDEX idMovie(idMovie);
    ALTER TABLE movie ADD INDEX idFile(idFile);

    Habe selbst 2600 Movies und 11k Episoden in der DB ... kam aber noch nicht dazu...

    Rehctcshreifbehler düfren beahlten wedren

    Externer Inhalt www.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Um die Auswirkungen zu überprüfen, müsste man wissen, wie man da reproduzierbar was testen kann. Hat da jemand eine Idee?

    Man müsste typische SQL-Beispielabfragen von XBMC kennen und dort die Zeit messen können. Dann sieht man ja, ob es was bringt. Bin leider nicht so der DB-Crack :huh:

    EDIT: 2600 Filme ist aber schon echt viel (für meine Verhältnisse). Darf ich mal fragen, wieviel Speicherplatz Dir zur Verfügung steht?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!