RAID1, RAID10 und Quadcore bei C/SIDE-DB

2. Juli 2008 16:26

Hallo Gemeinde,

da der Hardware-Support für unseren alten Navsionserver ausgelaufen ist, und uns kein neuer Support-Vertrag angeboten wird, steht uns wohl ein neuer Server ins Haus. Da wir bislang schon ein sehr leistungsfähiges System hatten, stellt sich nun die Frage, wie das neue System aussehen soll.

altes System, Win2000:
2x Xeon, 3,2 GHz (Single Core)
4 GB RAM
2 GBit Netzwerk
System: 3x RAID1, SATA
DB: 16x RADI1, SCSI (32 Festplatten) an SCSI-Controller

Anm.: die Prozessorauslastung pendelt zwischen 60& und 100% bei dem Prozessor und zwischen 50% und 80% bei dem anderen Prozessor



neues System, Win2003 (derzeitiger Planungsstand):
2x Quadcore, 2 GHz (pro Core?)
4 GB RAM
2 GBit Netzwerk
System: 1x RAID1, SATA
DB: 16x RAID10, SAS (64 Festplatten) an FC-Controller

also 4 Platten pro RAID10, alternativ könnten es auch 6 oder 8 Platten pro RAID10 werden


daher ein paar Fragen:

- Quadcore:
muß ich befürchten, daß der Nav-Server am Ende auf nur einem Core läuft? Oder bringen die 4 Kerne eines Prozessors wirklich was für den Nav-Serverdienst
(ich warte noch auf eine Antwort unseres NSC; allerdings habe ich da recht wenig Hoffnung :-( )

- RADI10
Im neuesten Hardwareguide wird erstmals auch RAID10 als Möglichkeit angegeben. Ich denke allerdings, daß RAID10 erst dann Sinn macht, wenn RADI1 ausgereizt ist - sprich: wenn ich bereits 16 DB-Files habe. Ich würde dazu gerne einige Performance-Test durchführen, leider hat aber der einzige Server, der das könnte (12 Platten für DB) aufgegeben.
Hat schon mal jemand Performance-Tests gemacht und z.B. 3x RAID1 mit 3x RAID10 verglichen? (Alternativ 6x RAID1 gegen 3x RAID10)


mal wieder 'ne Denksportaufgabe ;-)

denkende Grüße,
JürgenT

2. Juli 2008 16:29

P.S.:
Nav 4 SP1 (demnächst SP3)
96 GB Datenbank, ca. 60% gefüllt
>100 aktive User von 10:00 Uhr bis 14:00 Uhr

10. Juli 2008 12:19

so, inzwischen habe ich mal mit zwei weiteren Lieferanten gesprochen...

...und sinngemäß folgende seltsame Dinge gehört :roll:


40 HDDs aus denen vier RAID10 erstellt werden - die vorhandenen 16 Datenbankdateien sollen dann auf die vier Partitionen verteilt werden

Der extremste Vorschlag war: ein einziges RAID10 aus 40 bis 60 HDDs, auf dem dann alle Datenbankdateien abgelegt werden (vier oder acht oder 16 Dateien - das sei dann zweitrangig).

Beide Lieferanten haben durchaus langjährige Erfahrung mit Navision und den Hardwareanforderungen. Wenn auch wohl vornehmlich mit SQL statt mit der native DB.

statt der erhofften Erleuchtung erfahre ich zunehmende Verwirrung :?:

Gelten bei native Datenbanken unserer Größenordnung die alten Regeln nicht mehr?
(ein dediziertes RAID1/RAID10 pro DB-Datei)

konfusionierte Grüße,
JürgenT

10. Juli 2008 16:00

Hallo Jürgen,

leider kann ich nix gegen deine Konfusion tun. Ich hab 99 mit Navision 2.0 angefangen. Damals konnten einzelne DB-Dateien nicht größer als 2 GB sein, wenn ich mich nicht irre. Ich denke, dass man die Regeln, die man vor fast 10 Jahren gelernt hat, vergessen kann.

Andere Frage:
Ich dachte, dass man einer Native DB max 1GB zuweisen kann. Was willst du dann mit 4 GB RAM anstellen ? Reichen da nicht auch 2 GB ? OK, RAM ist nicht teuer, aber bringt's was ?

2. Frage:
Unser NSC hat uns immer gesagt, dass eine 2. CPU nix bringt, bzw. dass "Navision" nicht dafür konzepiert ist. Wizo willst du dann 2x Quadcore ?

Wir haben übrigens einen RAID10-Verbund aus 14 36GB Platten. Hier liegen 6 DB-Teile je 9 GB. Keine Ahnung, wie es dazu kam. Wahrscheinlich "Altlasten".

Na ja, fragst du 3 NSCs nach der optimalen Hardware, bekommst du 5 unterschiedliche Antworten :( .. leider.

Andi

10. Juli 2008 19:50

Hallo Andi,

ich bin auch seit 1999 Nav-Admin und -Programmierer. Die Regeln von damals stehen aber - fast unverändert - auch noch im neuesten "Hardware Guide" vom August 2007.

wg. RAM:
Ich habe bei Testservern mehrmals festgestellt, daß ich mit 2 GB RAM den Nav-Cache nicht mehr auf 1000 MB einstellen kann, sondern nur bei ca. 750 MB.
(Der gesamte Server wird einen mittleren 5-stelligen Betrag kosten, die Erweiterung von 2 GB auf 4 GB kostet 58,- Euro )

wg. CPU:
Zwei CPU nimmt man, weil dann eine CPU den Nav-Serverdienst bedient, während sich die andere um Betriebssystem, Netzwerk etc. kümmern kann. Steht auch so hier im Forum und im Hardware Guide.
(Bei unserem aktuellen System sind beide CPU tagsüber zu durchschnittlich 70% ausgelastet)

Naja, und daß ich von unterschiedlichen Anbietern unterschiedliche Angebote kriege, kann ich ja verstehen. Was mich wundert ist, daß die Empfehlungen der "Fachleute" den Erfahrungen (und dem Hardware Guide) total entgegen laufen.

noch'n Tipp zu Eurem RADI10:
(nicht ganz ernst gemeint ;-) )
Wenn Du mal ein Wochenende Langeweile hast, dann probiere doch mal folgendes (je nach Hardware geht das auch an einem Abend):

- Datensicherung machen
- RAID10 auflösen
- 7x RAID1 erstellen
- leere Datenbank erstellen
- Datensicherung zurückspielen

Nach ein bis zwei Tagen kannst Du dann beurteilen, ob das System schneller ist ;-)

raid-Grüße,
JürgenT

11. Juli 2008 09:30

Hi!

Also: Der C/SIDE Server ist ein technisches Fossil - Du solltest eine Migration auf SQL vielleicht mal in Betracht ziehen ...

C/SIDE kann nur EINEN CPU Core nutzen. Punkt. Es macht dennoch Sinn mehrere Cores zu haben (mindestens 2), damit andere Applikatione/Prozesse davon profitieren können (wenn entsprechende Affinity Masks gesetzt werden können). Aber auch Windows profitiert von einem zweiten Core, da Win den Netzwerktraffic oder auch Remote-zugriffe stets über den letzten Core verwaltet, NAV nutzt immer den ersten (0).

Mit dem RAM verhält es sich genauso: C/SIDE kann nur maximal 1GB als DBMS-Cache nutzen, davon ca. 30% als Commit-Cache (wenn aktiviert).

Das wichtigste beim "nativen" Server ist das Disk-Subsystem:
Hier empfiehlt es sich die DB in meherer Dateien aufzuteilen und jede Datei auf ein eigenes physikalisches Laufwerk (RAID 1 oder 10 (empfohlen)) zu legen.
Jede Datei wird mit einem sparaten "Slave" Prozess verwaltet (logisches Load-Balancing), das RAID würde dann noch physikalisches Loadbalancing erwirken. Je mehr Spindles im Stripe desto schneller.

Da C/SIDE mit CPU und RAM schnell am Ende ist, bleibt nur das Disk-Subsystem im Performance zu steigern - und die Festplatten sind nun mal VIEL langsamer als CPU und RAM ...

11. Juli 2008 11:43

Hallo Jürgen .. ich schon wieder :roll:

hier hab ich nur den Hardware Guide von September 2006 gefunden. Wo hast du den deinen aus August 2007 her ? Den Guide find ich schon ein wenig mickrig/spärlich.

In deinem anderen thread "Denksportaufgabe Performance" von vor 1 Jahr wurde dir aus Performance-Gründen auch zu RAID10 geraten. Wizo empfiehlst du mir jetzt doch RAID1? (ok, war von dir nicht ernst gemeint)

Auf meinen letzten 2 Navi-Servern hatte ich RAID1. Der letzte hatte 6x2 Platten. Deshalb hab ich jetzt wohl auch 6 DB-files.

Ich konnte die maximalen 1GB dem Server(-dienst) zuweisen.

@stryk
Findest du, ich sollte mein 14er (2x7) RAID10 in 6 (2x3) + 8 (2x4) ändern ? Wäre natürlich viel Arbeit :cry: Wenn ich es machen würde, sollte ich dann 1x 24GB + 1x 30GB files machen oder "darf" ich auf einer Partition 2-3 kleinere files machen ? Was meinst du ?

Mein Server ist übrigens 2-3 Jahre alt. Hat 1 Xeon 3.2 GHz CPU. 2 GB RAM. Windows Server 2003 läuft auf 2 internen RAID1 Platten.

Schönes Wochenende
Andi

11. Juli 2008 12:31

Hallo Andi,

hab' jetzt auf die Schnelle nur diesen Link gefunden

http://www.nav-tools.de/dynamics-hardware-guide.html

gibt's hier auf dieser Seite aber auch irgendwo.


Der Tipp vom letzten Jahr sagt ja auch: aus 16x RAID1 mach 16x RAID10 (jedenfalls habe ich es so verstanden). Meine bisherige Erfahrung sagt halt, daß für die meisten Systeme mehrere RAID1 die schnellste Lösung sind.

Wenn Du keine Performance Probleme hast, solltest Du nichts ändern. Wenn Ihr aber ohnehin mal ein Wochenende im Serverraum verbringen müßt, dann kann man vielleicht nebenbei die RAIDs ändern; in 7x RAID1 wie stryk mir vermutlich zustimmen wird...

Und dann 7 gleich große DB-Files auf die 7 RAIDs (9 GB oder 10 GB pro File, je nachdem wie voll Eure DB schon ist)

RAID-Grüße,
JürgenT

11. Juli 2008 12:31

vempire hat geschrieben:@stryk
Findest du, ich sollte mein 14er (2x7) RAID10 in 6 (2x3) + 8 (2x4) ändern ? Wäre natürlich viel Arbeit :cry: Wenn ich es machen würde, sollte ich dann 1x 24GB + 1x 30GB files machen oder "darf" ich auf einer Partition 2-3 kleinere files machen ? Was meinst du ?

Das ist natürlich nicht ganz so einfach ... RAID10 bedeutet physikalischen Loadbalancing, d.h. der RAID Controller verteilt die Last auf meherer Spindles ...

Je weniger einzelne Dateien vorhanden sind (logisches Loadbalancing), desto größer ist ja die verbleibende Datei, d.h. es müssen ggf. relativ große Bereiche innerhalb der Datei geleden werden ...

Ich denke, dass also die Kombi aus beiden Methoden das Optimum ist, ob das tatsächlich so ist, lässt sich so nicht vorhersagen ...

Wenn euer System also so wie es ist OK ist, dann würde ich den Aufwand nicht betreiben. Leidet ihr aber unter Performance-Problemen, nun, so kann man mit "native" nur an den Platten schrauben.

11. Juli 2008 13:50

Hallo J+J,

nö, Performance-Probleme hab ich nicht. Da lass ich's lieber, wie es ist.

Andere Frage .. ich spinn mal bisschen rum :oops:

Im Hardware Guide steht ganz vorne, dass man auf einem Server 2 Dienste laufen lassen kann, die auf dieselbe DB zugreifen, aber nur verschiedene Protokolle sprechen (TCP + netbios). War mir bisher nicht bekannt.

Bringt es was, wenn ich diese 2 Dienste habe und beiden je 1 GB RAM zuweise (wenn ich mein RAM natürlich vergrößere) und die "Dummuser", wie ich meine Schäfchen nenne, den TCP-Dienst anlabern und 2 ITler den netbios-Dienst anlabern, wenn sie zeitintensive Berichte (> 1h) laufen lassen müssen ? Ich denke, dass es sich bei diesen Berichten hauptsächlich um "Plattenzugriffe" (Wertposten) handelt. Wahrscheinlich ist es dann egal, welcher Dienst auf den Platten rumsucht, oder irre ich mich da ?

Andi

11. Juli 2008 14:39

*grins*

die Idee hatte ich vor ein paar Jahren auch schon mal...

netbios hatte - glaube ich - irgendeinen gravierenden Nachteil, sodaß es für uns nicht in Frage kam
(weiß aber nicht mehr, was das war)

wenn ich einzelne Jobs mal schneller laufen lassen will/muß, starte ich ausnahmsweise einen Client auf dem Nav-Server (reduziert die Laufzeit z.B. von 25 auf 15 Stunden(!) )

auf unseren Entwicklungssystemen laufen bestimmte Jobs fast immer direkt auf dem Server, da man sonst immer erst am nächsten Tag ein Ergebnis hätte

schneller Gruß
JürgenT

11. Juli 2008 14:53

starte ich ausnahmsweise einen Client auf dem Nav-Server


Was heißt hier "ausnahmsweise" ? Das ist meine Standard-Vorgehensweise !

So, ich denke das war's vorerst zum Thema Performance. Schau mich jetzt mal nach 2GB RAM zum Aufrüsten um.

Performante Grüße
Andi

11. Juli 2008 15:20

stryk hat geschrieben:Hi!

Also: Der C/SIDE Server ist ein technisches Fossil - Du solltest eine Migration auf SQL vielleicht mal in Betracht ziehen ...

...



@stryk
um noch mal darauf zurück zu kommen

im Prinzip weiß ich das ja alles ...


SQL kommt für uns leider nicht mehr in Frage, zum einen weil unsere Basis immer noch Version 2.01/2.6 ist und wir >90% Individual-Programmierung haben und zum anderen weil bei uns seit Jahren ein Wechsel der ERP-Systems geplant ist (Vorgabe vom Konzern - kann man nix machen :-( )

Mein Problem ist:

- es zwar einige Navision-Fachleute, die Erfahrungen hat mit vergleichbar großen C/SIDE-Datenbanken haben -> die haben aber keine nennenswerten Performance-Probleme

- und es gibt C/SIDE-Nav-Admins mit Performance-Problemen, die sich dann aber meist mit besserer Hardware schnell (und vergleichsweise günstig) lösen lassen

die Kombination aus beiden (wie bei uns) scheint eher selten zu sein...



Unser NSC habe ich auch ganz direkt wegen der Prozessorproblematik gefragt - es kam nur eine etwas unsicher klingende Aussage: "Ja, ja, mit dem Quadcore wird das schon schneller werden ... mehr Cache ... bla bla bla..."

Mir wären zwei Single Core Prozessoren am liebsten, gerne mit 5 GHz oder 6 GHz, aber sowas gibt's wohl nicht mehr.

wünsch-dir-was-Grüße,
JürgenT