Guter Nachmittag Experten,
This ist nicht soviel von einem Problem, eher wie irgendein advice.
I gerade benötigen beginnen mit wenig Informationen über unsere Umwelt. Wir haben einige MSSQL Bediener (Version 2005/2008) diese wir müssen in einem Failoverblock für Fehlertoleranz gründen. Wir nennen sie Produktion, Inszenierung und DocumentStorage.
The Produktionsbediener ist die Hinterdatenbank für auf ein Internet-Portal, das Endbenutzer zu gelaufen berichtet, erzeugt Statistiken, über etc. zurückgreifen, ziemlich, das hohe Tätigkeit von meistens von den SSRS Reports liest, die gegen sie laufen. Datenbankgröße ist ungefähr 500 GB.
DocumentStorage ist einfach ein Dokumentendarstellungsystem. Datenbank voll von Metadaten und ein Weg zu einem Dokument gespeichert auf einem geteilten Antrieb. Datenbankgröße nur einig GB und vermutlich 700GB der Dokumente gespeichert in den Aktenanteilen. Recht aktivitätsschwacher.
The Inszenierungbediener lädt rohe Daten von den mehrfachen Quellen wie CSV, XML, Örtlich festgelegtbreite Textdateien, DBF, pdf, Mitgliedstaat-Zugang, ziemlich genau jedes mögliches Format, das Sie vorstellen können. Daten geladen von ihren rohen Quellen, umgewandelt, gescheuert, aufgeräumt, von etc. auf dem Inszenierungbediener über SSIS Pakete, die durch das SQL-Server-Mittel laufen und dann gesendet Production.
The zur Datenbankgröße auf diesem Bediener nicht enorm ist, möglicherweise von 80GB oder so, aber nur weil Daten gelöscht, Tage XX nachdem es zur Produktion geschickt, halten wir nicht viel Geschichte hier. Die Menge von Daten, die durch diese Maschine jeden Tag überschreitet, ist recht massiv; zwischen allen verschiedenen Arten Textdateien und anderen rohen Daten schätzen ich uns lade möglicherweise 100-200 Million Aufzeichnungen pro day.
Disk Input/Output gewesen immer der größte Engpass auf dem Inszenierungbediener (wie mit den meisten SQL-Serverfällen ist). Ich suche nach einigen Ratschlägen auf, wie wir San für die beste Leistung auf dem Inszenierungbediener der Inszenierung-server.
The heraus zusammenbauen sollten sind auf dem San z.Z., mit Antrieben so:
Array 1: 2x73GB Dämpfungsregler 15k (73GB verwendbarer Raum) im 73GB LUN eingeweiht für SQL Logfiles
Array 2: 5x300GB Dämpfungsregler 15k (1,200GB verwendbarer Raum) im 215GB LUN für SQL-Daten files 80GB LUN für „rohe Daten“ (Akten der Antriebsholding txt/csv/dbf/etc. für Laden) 820GB UNUSED
The San ist wirklich viel größer, als dieser, wir andere Maschinen using es für anderes Material außerdem, ich erklären gerade haben, was meine gegenwärtige SQL-Konfiguration ist. Als Teil dieses Projektes, berechtigt ich, ALLES auf dem San VOLLSTÄNDIG neu zuzuteilen, um Höchstleistung auf dem Inszenierungbediener zur Verfügung zu stellen. Datenladen-Einschaltzeit ist für uns kritisch und im Augenblick verlangsamen wir durchaus ein bit.
The San sind Dell MD3000i (iSCSI 1GbE). Vorhanden auf dem San für dieses Projekt ist: 4x73GB 15k Dämpfungsregler drives 17x300GB 15k Dämpfungsregler drives 6x2TB 7.2k SATA drives
in der Vergangenheit gehackt ich immer oben San in viele kleineren Reihen. Zum Beispiel Antriebe 3x300gb in RAID5 für SQL-Daten bezüglich Bedieners 1, Antriebe 2x300GB sagen in RAID1 für SQL anmeldet Bediener 1, etc. Dieses hält engagierte Spindeln vorhanden für SQL-Maschinenbordbuch- und SQL-Dateien ein jedes server.
I morgens wundernd, wenn ich besser gestellt anstatt verursachende GROSSE Reihen Antriebe und kleinere LUN für jeden Bediener dann anstatt schnitzen bin. Zum Beispiel sagen, eine Reihe RAID10 Antriebe 8x300GB (verwendbarer Raum 1.2TB) verursachen und in einige LUN für SQL-Dateien auf jedem Bediener und in eine andere Reihe RAID10 Antriebe 8x300GB und in das Schnitzen in LUN für SQL-Protokolldateien auf jedem Bediener schnitzen.
Which ist die bessere Lösung für maximale IO-Leistung? Große Reihen, Spalte in viele LUNs oder kleinere Reihen, die Antriebe einer einzelnen Maschine einweihen?
|