jollyjumper83
Goto Top

Worauf kommt es an?

Hallo liebe IT-Gemeinde,

ich benötige mal eure Hilfe. Wir sind derzeit in der Entwicklung einer Industriesoftware. Ganz grob umschrieben geht es um Produktionszustände, Stückzahlen und Betriebsstunden. Alle diese Daten die durch SPS-Anlagen usw. erzeugt werden, werden über ein serverseitiges Skript aufgearbeitet und in einer MySQL Datenbank gespeichert. Diese Daten werden dann durch ein SAP oder was auch immer ausgelesen und für weitere Zwecke weiter verarbeitet. Läuft alle Klasse, wir haben aktuell 4 Testanlagen die alle samt reibungslos laufen.
Wenn man überhaupt von einem Problem sprechen kann, dann das, dass unsere MySQL Server am Limit laufen. Wir haben unsere Software jedoch so gestaltet, dass wir diese kaskadieren können. So haben wir bei unserer größten Anlage mit knapp 197 Maschinen 4 MySQL Server laufen. Aktuell verwenden wir jedoch herkömmliche Rechner und statten diese lediglich mit einer 24/7 Festplatte aus. Soviel erstmal zum Hintergrund. Nun zu meiner eigentlichen Frage:

Wenn ich einen Rechner / Server zusammensetzte der nur die Anforderung hat einen MySQL Server laufen zu lassen, worauf kommt es bei der Hardware wirklich an. Was muss man beachten. Viel RAM? Schnelle CPU? Das ist eine generelle Frage.

Aktuell haben wir bei unserer größten Anlage folgendes Befehlsaufkommen pro Sekunde: 2.000 SELECT - 250 INSERT & 15 CREATE

Wenn wir nächstes Jahr in den Produktiveinsatz gehen, wollen wir ja auch die MySQL Server vernümftig auslegen.

Ich danke schonmal im voraus für die Antworten.

Content-ID: 253323

Url: https://administrator.de/forum/worauf-kommt-es-an-253323.html

Ausgedruckt am: 23.12.2024 um 06:12 Uhr

16568
Lösung 16568 30.10.2014 aktualisiert um 10:58:18 Uhr
Goto Top
Hallo JollyJumper,

Zitat von @JollyJumper83:
Wenn ich einen Rechner / Server zusammensetzte der nur die Anforderung hat einen MySQL Server laufen zu lassen, worauf kommt es
bei der Hardware wirklich an. Was muss man beachten. Viel RAM? Schnelle CPU? Das ist eine generelle Frage.

RAM, CPU UND Platten/RAID, die auch die Daten fix liefern können.
Alternativ die DB gleich komplett in den Arbeitsspeicher (je nach Größe).
Ebenso ist die Definition von InnoDB/MyISAM wichtig...
Und bei ~ 2.000 Anfragen/Sekunde sollte man auch zusehen, daß die Netzwerkanbindung tadellos läuft.

Aktuell haben wir bei unserer größten Anlage folgendes Befehlsaufkommen pro Sekunde: 2.000 SELECT - 250 INSERT & 15
CREATE

Das ist so aussagekräftig wie:
wir haben 5km Straße zu kehren und dafür 15 Besen. Reicht das?
Es kommt auf die Straßenbeschaffenheit und die Besen an.

Wenn das SELECTS mit mehreren JOINS sind, oder die Tables nicht ordnungsgemäß mit Index belegt sind, dann kann so ein simpler SELECT schon mal ein paar Sekunden dauern, und dabei auch ordentlich Ressourcen fressen.
Das Gleiche gilt für die INSERT's.

Wenn wir nächstes Jahr in den Produktiveinsatz gehen, wollen wir ja auch die MySQL Server vernümftig auslegen.

Dann spart nicht an der Hardware.


Lonesome Walker
janzendi
janzendi 30.10.2014 um 08:23:58 Uhr
Goto Top
Ich stehe erst am Anfang meiner Kariere und bin auch noch sehr stark am einlernen und lesen.

Laut der Fachzeitschriften und Bücher ist am meisten wichtig bei Datenbanken die richtige Festplatte zu finden und genug Arbeitsspeicher.

Arbeitsspeicher bekommt man nie genug und lieber zu viel als zu wenig.
Doch eigentlich ist bei Arbeitsspeicher zu bedenken, dass dieser nur als Cache dient.

Jetzt kommt die heikle Geschichte, Datenbankzugriffe sind durcheinander und das OS kann nie Wissen was als nächstes kommt.

Deshalb ist eine gut Gewählte Festplatte sehr wichtig, mit schnellen Zugriffszeiten.


Ich hab selber schon große Datenbanken gesehen die auf 1,6 GHz Dual-Core laufen. Meistens bremst du Netzwerkanbindung alles etwas aus, oder die Festplatte. (Bei mir im Moment noch im Betrieb so)

PS: Diese 24/7 Festplatten sind meist nicht die schnellsten. Stichwort "IOPS"


Würde mich sehr freuen wenn sich hier mehr beteiligen würden, damit ich gegeben falls auch korrigiert werde.
16568
16568 30.10.2014 um 08:26:17 Uhr
Goto Top
Zitat von @janzendi:
Ich stehe erst am Anfang meiner Kariere und bin auch noch sehr stark am einlernen und lesen.

Das merkt mann.

Laut der Fachzeitschriften und Bücher ist am meisten wichtig bei Datenbanken die richtige Festplatte zu finden und genug
Arbeitsspeicher.

Falsch.
Man kann die DB gleich in den Arbeitsspeicher pumpen, dann ist es nur für das Hochfahren wichtig, wie gut die Festplatten sind...

Doch eigentlich ist bei Arbeitsspeicher zu bedenken, dass dieser nur als Cache dient.

Falsch.

Jetzt kommt die heikle Geschichte, Datenbankzugriffe sind durcheinander und das OS kann nie Wissen was als nächstes kommt.

Ja und?

Deshalb ist eine gut Gewählte Festplatte sehr wichtig, mit schnellen Zugriffszeiten.

Alleine schon diese Begründung dazu ist falsch.


Lonesome Walker
SlainteMhath
SlainteMhath 30.10.2014 aktualisiert um 09:34:28 Uhr
Goto Top
Moin,

wie schon geschrieben leben DBs hauptsächlich von RAM und IOPS. Ggfs. bringt also eine Workstation mit >32GB RAM und 2(4) SSDs im Raid 1(10) schon die gewünschte Leistung. Evtl. noch einene aktuellen Xeon dazustecken.

Ansonsten findet Google dazu >3mio Treffer face-smile

lg,
Slainte
108012
Lösung 108012 30.10.2014 aktualisiert um 10:58:09 Uhr
Goto Top
Hallo,

Wenn man überhaupt von einem Problem sprechen kann, dann das, dass unsere MySQL Server am
Limit laufen.
Dann wäre es einmal nett zu wissen welche Hardware dabei zum Einsatz kommt.

Wir haben unsere Software jedoch so gestaltet, dass wir diese kaskadieren können. So haben wir
bei unserer größten Anlage mit knapp 197 Maschinen 4 MySQL Server laufen.
Also sind das dann ~50 Maschinen die dann einen "Server" an den Rand der Leistung bringen, richtig?

Aktuell verwenden wir jedoch herkömmliche Rechner und statten diese lediglich mit einer
24/7 Festplatte aus. Soviel erstmal zum Hintergrund. Nun zu meiner eigentlichen Frage:
Na das ist ja nun nicht so der "Bringer" und das auch nicht erst seit gestern, oder?

- Ein richtiges Server OS benutzen!
- Dazu zertifizierte Hardware kaufen! (vom OS Hersteller)
- SAS HDDs mit 10k oder 15k UPM
- 2 x RAID Controller mit Cache-Modul & BBU
- USB 3.0 RDX Laufwerk mit RDX Medien und Backupsoftware
- Die Last auf mehrere RAIDs verteilen
- ECC RAM und Intel Xeon CPU oder bei einem Server zwei Xeon CPUs

RAID1 mit zwei HDDs für das OS
RAID10 mit 10 SAS HDDs für die DB
RAID5 mit 6 HDDs und einer HDD als HotSpare für die DB Protokolldateien (DB Logs)

Gruß
Dobby
MttKrb
MttKrb 30.10.2014 um 10:37:14 Uhr
Goto Top
Hallo JollyJumper,
ich kann mich Lonesome Walker nur anschließen.
dies beste Hardware nützt nichts wenn die Indizes nicht richtig gesetzt sind.
Umständlich geschriebene Select-Statements können ebenso die Hardware an ihre Grenzen bringen.

Gruß
Jogibaer0411
JollyJumper83
JollyJumper83 30.10.2014 um 10:58:01 Uhr
Goto Top
Hallo,

vielen Dank für eure zahlreichen Antworten und danke auch an die kritischen Meinungen. Wie schon geschrieben, aktuell befinden wir uns in einem Testaufbau, dort konnten wir aus finanzieller Sicht natürlich nicht die 100%ige Hardware verwenden. Ich will euch jetzt auch gar nicht erzählen was wir tatsächlich im Einsatz haben, Ihr würdet die Hände über den Kopf zusammenschlagen. face-smile Aber so ist das halt in einer Testphase. face-smile Dennoch hatten wir keinen hardwarebasierten Ausfall, trotz der zum Teil schlechten Ausrüstung.

Aber jetzt nochmal ganz im Ernst - wir hatten heute morgen nochmal eine Besprechung mit unserem Auftraggeber. So wie es aktuell aussieht werden wir unseren ersten Auftrag erhalten. Ich habe bereits mit einem IT-Spezi Kontakt aufgenommen, der mir einen passenden Server zusammenstellen soll. Auch er sagte bereits zu mir, das es stark von der Anwendung ankommt, daher werden wir uns zusammensetzten und die Task's im Detail besprechen. Nun habe ich jedoch etwas mehr Kenntnis darüber worauf es wirklich ankommt, daher vielen Dank für eure Antworten.

Ich hatte jetzt nicht erwartet, dass das so schnell geht. face-smile
JollyJumper83
JollyJumper83 30.10.2014 um 11:05:52 Uhr
Goto Top
Entschuldige das hatte ich vergessen zu erwähnen. Es sind 2 Joins. Die Indexierung ist 100%ig die Abfragen sind aus dem Skript heraus denkbar einfach. Also die Anforderung ist milde gesagt niedrigstes Level.

Es werden lediglich zwei Werte miteinander verglichen -> Gibt es für den Wert keinen Vergleichswert, so wird eine neue Tabelle erstellt.
Gibt es den Wert bereits, wird lediglich der letzte Eintrag geprüft ob dieser aktueller oder veraltet ist. -> Wenn veraltet dann wird er geschrieben.

Wir verarbeiten somit DATETIME, INT (max 8) und VARCHAR (max. 32) Werte.
Lochkartenstanzer
Lochkartenstanzer 30.10.2014 aktualisiert um 11:13:07 Uhr
Goto Top
Zitat von @JollyJumper83:

Ich hatte jetzt nicht erwartet, dass das so schnell geht. face-smile

Auch wenn das meiste gesagt worden ist:

Schaut üebr Eure Programme/Anwendungen. Denn ncihts beschleunigt das ganze gerödel besser, als die Anwendung ordentlch zu programmieren. face-smile

Daher empfehle ich euch auch profiling zu machen, damit Ihr seht, wo die "hotspots" sind.

lks
16568
16568 31.10.2014 um 10:05:41 Uhr
Goto Top
Zitat von @Lochkartenstanzer:
Daher empfehle ich euch auch profiling zu machen, damit Ihr seht, wo die "hotspots" sind.

Jeztz überforderste den aber face-wink


Lonesome Walker
Lochkartenstanzer
Lochkartenstanzer 31.10.2014 um 10:06:41 Uhr
Goto Top
Zitat von @16568:

> Zitat von @Lochkartenstanzer:
> Daher empfehle ich euch auch profiling zu machen, damit Ihr seht, wo die "hotspots" sind.

Jeztz überforderste den aber face-wink

Google hilft beim Verständnis des Satzes. face-smile

lks
JollyJumper83
JollyJumper83 07.11.2014 um 12:05:08 Uhr
Goto Top
Hase - dat haste aber schön geschrieben. Hast Du es denn auch selbst verstanden.

Ansonsten hier nochmal der Link: http://en.wikipedia.org/wiki/Profiling_(computer_programming)

Du sollst doch nicht immer alles blind aus dem Internet kopieren. face-smile

Ich frage mich zudem gerade, ob ich danach überhaupt gefragt hatte - Hmmm - Nein.
Hast Du den Code bereits einsehen können - Hmmm - auch Nein.
Konntest Dir aber sicher ein Bild darüber machen wie gut / schlecht der Code programmiert ist. - Hmmm - Ich denke auch hier Nein.

Wenn ich das hätte Fragen wollen - hätte ich es mit Sicherheit auch getan.
Naja Hauptsache etwas schlaues zu posten.
Lochkartenstanzer
Lochkartenstanzer 07.11.2014 um 12:28:14 Uhr
Goto Top
Zitat von @JollyJumper83:

Hase - dat haste aber schön geschrieben. Hast Du es denn auch selbst verstanden.

Ja, ich weiß wovon ich rede.

Ich frage mich zudem gerade, ob ich danach überhaupt gefragt hatte - Hmmm - Nein.

Manchmal komtm die Lösung aus einer ganz anderen Richtung als aus der, in die die Frage ging.

Hast Du den Code bereits einsehen können - Hmmm - auch Nein.
Konntest Dir aber sicher ein Bild darüber machen wie gut / schlecht der Code programmiert ist. - Hmmm - Ich denke auch hier
Nein.

Nein, brauche ich auch nicht, habe auch keine Aussage darüber gemacht, ob er gut oder schlecht ist. Nur meine Erfahrung sagt, da geht immer was und man übersieht oft Optimierungsmöglichkeiten. Vor Jahren, als ich noch aktiv programmiert habe, habe ich festgestellt, daß es manchmal an Kleinigkeiten hing, ob ein Programm schnell oder langsam war. und es niicht schadet da nochmal drüberzuschauen, ob Optimierungsmöglichkeiten vorhanden sind.

Wenn ich das hätte Fragen wollen - hätte ich es mit Sicherheit auch getan.
Naja Hauptsache etwas schlaues zu posten.

Es ging nicht darum nur etwas Schlaues zu posten, sondern um weitere Möglichkeiten aufzuzeigen. Wie ich schon sagte: Meine Erfahrung sagt, daß man offen für andere Lösungsmöglichkeien sein muß, um optimale Lösungen zu finden. Wenn Du das als persönlichen Angriff empfunden hast, so ist das Dein Problem und nicht meines.

lks
JollyJumper83
JollyJumper83 07.11.2014 aktualisiert um 13:32:35 Uhr
Goto Top
Du, es nerven einfach nur dumme Sprüche und dann auch noch welche die total an der Frage vorbei sind. Hilft keinen weiter.
16568
16568 07.11.2014 um 15:56:43 Uhr
Goto Top
Hallo Jolly,

Zitat von @JollyJumper83:
Du, es nerven einfach nur dumme Sprüche und dann auch noch welche die total an der Frage vorbei sind. Hilft keinen weiter.

Da ich grundsätzlich dafür bekannt bin, kein Blatt vor den Mund zu nehmen, bin ich mir sicher, daß ich auch anderen Kollegen hier aus der Seele spreche wenn ich sage:

So Leute wie Du, die ohne das nötige KnowHow Sachen machen, und dadurch anderen Firmen die Kohle "stehlen", die nerven auch.
Noch dazu, da Du damit Deinem Arbeitgeber effektiv/langfristig Schaden zufügst.


Lonesome Walker
JollyJumper83
JollyJumper83 07.11.2014 um 19:19:21 Uhr
Goto Top
Hey jetzt ist aber langsam mal genug. Was sollen diese Vorurteile. Ich will dich in deinen Anschuldigungen vielleicht mal etwas aufklären. Ich bin Geschäftsführer eines Ingenieurbüros mit aktuell 5 Angestellten, zudem beschäftigen wir weiterhin noch 4 freiberufliche Programmierer.
Die Software um die es hier im Ansatz geht hat mich in den vergangenen 2 Jahren knapp 150 t€ Investitionssumme gekostet. Ich beschäftige rechtschaffene Menschen / Firmen und setzte Ideen um. Menschen die kein Blatt vor den Mund nehmen sind mir grundsätzlich sympatisch - jedoch nur dann wenn diese sich vorher auch erkundigen und wissen worum es geht.

Wenn Du dir im Ansatz auch nur meine Frage durchgelesen hättest, würdest Du jetzt wissen das ich nicht in den PC-Shop gehen wollte und mir einen Server zusammenbauen wollte. Es ging lediglich darum - Worauf kommt es an. Einfache Frage die vielleicht komplexer ist als erwartet.

Ich gebe dir lediglich in einem einzigen Punkt recht - ich selber habe vielleicht nicht den kompletten Durchblick was MySQL und Serverzusammenstellung betrifft. Aber ich verschaffe mir gerne einen Überblick, da ich ungern ahnungslos Angebote einhole.

Vielleicht hast Du das Prinzip eines Forums noch nicht verstanden, aber mit Sprüchen und vermeintlich schlauen Sätzen hat es eher weniger zu tun.
Lochkartenstanzer
Lochkartenstanzer 07.11.2014 um 19:27:51 Uhr
Goto Top
Zitat von @JollyJumper83:

Du, es nerven einfach nur dumme Sprüche und dann auch noch welche die total an der Frage vorbei sind. Hilft keinen weiter.

Dann entschuldige, daß ich Dir helfen wollte.

Tschüss.

lks
16568
16568 08.11.2014 um 11:39:41 Uhr
Goto Top
Zitat von @JollyJumper83:
aufklären. Ich bin Geschäftsführer eines Ingenieurbüros mit aktuell 5 Angestellten, zudem beschäftigen
wir weiterhin noch 4 freiberufliche Programmierer.

Das ist schön, aber woher sollen wir das riechen? face-smile

Die Software um die es hier im Ansatz geht hat mich in den vergangenen 2 Jahren knapp 150 t€ Investitionssumme gekostet. Ich
beschäftige rechtschaffene Menschen / Firmen und setzte Ideen um. Menschen die kein Blatt vor den Mund nehmen sind mir
grundsätzlich sympatisch - jedoch nur dann wenn diese sich vorher auch erkundigen und wissen worum es geht.

Nun ja, das ist in einem Forum halt immer so eine Sache:
je weniger Input da ist, desto weniger/mehr falscher Output kommt dabei raus.
Außerdem sagt eine Investitionssumme nichts über die Qualität aus, siehe unser Berliner Flughafen...

Wenn Du dir im Ansatz auch nur meine Frage durchgelesen hättest, würdest Du jetzt wissen das ich nicht in den PC-Shop
gehen wollte und mir einen Server zusammenbauen wollte. Es ging lediglich darum - Worauf kommt es an. Einfache Frage die
vielleicht komplexer ist als erwartet.

Bedaure, aber wir haben hier im Forum schon die kuriosesten Sachen miterlebt; daher Verzeihung, wenn wir immer den Worst-Case unterstellen.
Ist zur Berufskrankheit verkommen...

Ich gebe dir lediglich in einem einzigen Punkt recht - ich selber habe vielleicht nicht den kompletten Durchblick was MySQL und
Serverzusammenstellung betrifft. Aber ich verschaffe mir gerne einen Überblick, da ich ungern ahnungslos Angebote einhole.

Öhm, das ist jetzt aber lustig...
Normalerweise wendet man sich an ein oder mehrere Fachhäuser, und holt sich dann da den entsprechenden Rat/Angebote.
Der Erste schreibt im Forum RAM, der Zweite: total falsch, mehr CPU...
Und das ist dann Überblick...?

Vielleicht hast Du das Prinzip eines Forums noch nicht verstanden, aber mit Sprüchen und vermeintlich schlauen Sätzen
hat es eher weniger zu tun.

Vielleicht sind Dir auch die Grundregeln eines Forums fremd:
man muß auch Meinungen/Aussagen von anderen akzeptieren, denn Forum bedeutet, da dürfen alle schreiben.


Lonesome Walker
Lochkartenstanzer
Lochkartenstanzer 08.11.2014 um 16:11:26 Uhr
Goto Top
Zitat von @JollyJumper83:

Vielleicht hast Du das Prinzip eines Forums noch nicht verstanden, aber mit Sprüchen und vermeintlich schlauen Sätzen
hat es eher weniger zu tun.

Offensichtlich hast Du das Prinzip dieseses Forums nicht verstanden, obwohl Du seit 2008 dabei bist. Man kommt hier nicht nur dann vorbei, wenn man selbst ein Problem hat und das kostengünstig gelöst haben will, sondern einander gegenseitig zu helfen. Wenn Du öfter hier vorbheischauen und vileicht sogar versuchen würdest, anderen zu helfen, wüßtest, wieviel (oder eher wie wenig) Inut kommt und wie die Leute raten müssen. Du wüßtest dann auch, daß manchmal die Lösungen aus einer ganz anderen Ecke kommen, als es sich der To vorstelt.

Wenn du hier also weiterhin kstenlosen Support holen willst, mußt Du Dich mit dem Marotten deer Forumsteilnehmer abfinden oder Du suchtst Dir eine Dienstleister, der Dir Lösungen gegen bares liefert.

lks