Belastungstest für 1s 83 Enterprise. Standard-Belastungstest

Um die tatsächliche Belastung der Geräte zu verstehen, war es notwendig, die Leistung eines 1C-Terminalservers in der Produktion zu testen, was ich vor kurzem getan habe, und jetzt möchte ich die Ergebnisse für alle sichtbar präsentieren.

Lesen Sie mehr im Artikel.

Weitere Artikel zu 1C finden Sie in der entsprechenden Rubrik -.

In mehreren früheren Artikeln zu 1C habe ich mich mit der Berechnung von Serverkonfigurationen für verschiedene Lasten beschäftigt, die durch die Bemühungen der Hauptbenutzer von 1C, nämlich Mitarbeiter der Buchhaltungs- und Vertriebsabteilung, erzeugt werden. Die Aufgaben von Buchhaltern hängen nicht nur von der Erstellung von Berichten und der Eingabe von Daten in das Programm ab. Daher ist es für sie vorzuziehen, vollständigen Zugriff auf das Terminal zu haben und von dort aus mit allem zu arbeiten, was sie benötigen (). Für Manager ist alles viel einfacher und für sie ist die Veröffentlichung einer Anwendung () ein völlig akzeptabler Anwendungsfall.

Ich habe es nicht riskiert, den Server ohne echte Tests in Betrieb zu nehmen, also wurden groß angelegte Tests organisiert. Der Vorteil für mich persönlich bestand darin, dass ich meine theoretischen Berechnungen, die auf sehr subjektiven Leistungsindikatoren der Mitarbeiterarbeitsplätze beruhten, in der Praxis bestätigen (oder widerlegen) konnte.

Testumgebung

Zum Testen haben wir also einen Server mit CPU genommen Intel Xeon E5-1650 v3 mit 3,50 GHz, 128 GB RAM, 2*SSD in RAID 1. Auf diesem Server, der nur ein Terminalserver ist, wird eine virtuelle Maschine bereitgestellt, auf der die Anwendungen 1C 8.2, 1C 8.3 und MS Office 2013 Pro installiert sind.

Ich sage gleich, dass die Art der Belastung gemischt war, das heißt, es gab Clients, die über RemoteApp arbeiteten, und es gab solche, die sich vollständig über RDP anmeldeten und die für ihre Arbeit erforderlichen Programme verwendeten (nicht nur 1C, sondern auch Office). ). Die Verteilung war ungefähr wie folgt: 24 RemoteApp-Sitzungen, 5 RDP-Clients.

Benutzer standen vor der Aufgabe, sich zwei Stunden lang alle 30 Minuten in Anwendungen einzuloggen und darin alltägliche Aufgaben zu erledigen – Berichte erstellen, Daten drucken, Dokumente veröffentlichen, Daten in andere Formate exportieren usw. Die Hauptsache ist, dass es kein Ziel gab, den Server zu platzieren Ziel war es, eine echte durchschnittliche Tagesbelastung zu erreichen.

Testergebnisse

Alles begann wie gewohnt – Benutzer ab dem dritten Push, bereits Abteilungsleiter und höher, begannen, sich bei 1C anzumelden und Routineaufgaben auszuführen. Das alles hielt nicht lange an und ich hatte nur eine Chance, die Serverleistungsindikatoren so nah wie möglich an die tatsächliche Auslastung heranzuführen. Das ist es, was ich am Ende bekommen habe:

RAM (dynamisch zugewiesener Speicher wurde auf dem virtuellen Server festgelegt, sodass sich die aktuelle RAM-Größe bei Bedarf ständig nach oben änderte):

Nun gilt es, die Ergebnisse zu analysieren und Schlussfolgerungen zu ziehen.

Datenanalyse

Anzumerken ist, dass die Berechnungen für den Prozessor äußerst genau waren.

In dem Artikel habe ich empirisch festgestellt, dass der CPU-Ressourcenverbrauch einer 1C RemoteApp-Sitzung durchschnittlich 122.775 Prozessorleistungseinheiten beträgt (Leistungsdaten stammen von der Website). www.cpubenchmark.net). In einem anderen Artikel habe ich die Ressourcen berechnet, die zum Ausführen einer vollständigen RDP-Sitzung erforderlich sind, und sie beliefen sich auf 4 % des Core i5 4460, also 0,04 * 6622 (die Daten liegen auch bei www.cpubenchmark.net) = 264,88.

Insgesamt erhalten wir:

  • Eine vollständige RDP-Sitzung frisst Zeit 264,88 CPU-Leistungseinheiten;
  • Sitzung 1C RemoteApp verbraucht 122,775 Einheiten.

Oben erwähnte ich, dass es 24 RemoteApp- und 5 RDP-Benutzer gab. Wir zählen:

24 * 122,775 + 5 * 264,88 = 4271

Der relative Leistungsindex des Intel Xeon E5-1650 v3 beträgt 13477 Einheiten. Das heißt, theoretisch Die CPU-Auslastung sollte etwa 32 % betragen. (4271 / 13477 * 100).

Das CPU-Lastdiagramm zeigt, dass im Zeitintervall 10:30 – 10:50 die CPU zu 25 – 40 % ausgelastet ist (Spitzen zählen nicht). Natürlich wird man keine lineare CPU-Auslastung von 32 % erhalten; es wird immer noch Schwankungen von Minimalwerten zu relativen Maximalwerten geben, aber im Allgemeinen können wir davon ausgehen, dass die tatsächlichen Daten mit den theoretischen übereinstimmen. Übrigens gilt: Je mehr Benutzer sich auf Ihrem Server befinden, desto gleichmäßiger ist die Auslastung.

Tatsächlich erwiesen sich die RAM-Daten als wertvoller. Nach Berechnungen aus früheren Artikeln hatte ich:

  • 2 GB pro RDP-Sitzung;
  • 100 MB pro RemoteApp-Sitzung.

Das heißt, der belegte Speicher sollte maximal 12,4 GB betragen + etwas für das Betriebssystem. Aber wie sich herausstellte und ich grundsätzlich eine Ahnung hatte, war dieser Wert in der Praxis ein ganz anderer Wert. Zu meinem Bedauern erwies sich 1C als sehr hungrig nach RAM. Darüber hinaus verhält sich die Anwendung so, dass sie, sobald sie etwas Speicherplatz belegt hat, es nicht für notwendig hält, ihn in dem Moment freizugeben, in dem er nicht mehr benötigt wird:

Nun, ist es normal, 2 GB RAM zu verbrauchen und nichts zu tun (die CPU-Auslastung der Sitzung beträgt 0 %). Moderne Programmierer kümmern sich überhaupt nicht um die optimale Nutzung von Ressourcen. Persönlich war ich während meines Studiums gezwungen, Anwendungscode neu zu schreiben, wenn er im Hinblick auf die Nutzung von Computerressourcen irrational geschrieben wurde. Anscheinend sind die Qualifikationen moderner Programmierer unter den Sockel gesunken, oder vielleicht ist das nur ein Ansatz – warum bereits geschriebenen Code optimieren, wenn es besser ist, neue Funktionalität zu entwickeln. Im Allgemeinen ist es nicht der Punkt, es hat bombardiert und das ist in Ordnung.

Von den 16 GB an „Lautsprechern“, die dem Server zugewiesen waren, hat er sie alle aufgefressen und höchstwahrscheinlich mehr benötigt. Wenn nicht genügend RAM vorhanden ist, wechselt das Betriebssystem theoretisch auf die Festplatte, und in diesem Fall kommt es zu einem starken Leistungsabfall. In meinem Fall war dies nicht der Fall und lag höchstwahrscheinlich an der SSD, die praktisch überhaupt keine Last zeigte – lediglich zwei kurzfristige Spitzen während des gesamten Testzeitraums (von 10:00 bis 12:00 Uhr). Wie die Praxis zeigt, empfehle ich jedoch nicht, den Arbeitsspeicher von Terminalservern zu schonen.

Foto von Alena Tulyakova, Nachrichtenagentur „Clerk.Ru“

Der Artikel identifiziert die Hauptfehler, die unerfahrene 1C-Administratoren machen, und zeigt am Beispiel des Gilev-Tests, wie diese behoben werden können.

Der Hauptzweck dieses Artikels besteht darin, die Wiederholung offensichtlicher Nuancen für Administratoren (und Programmierer) zu vermeiden, die noch keine Erfahrung mit 1C gesammelt haben.

Das sekundäre Ziel besteht darin, dass Infostart mich bei etwaigen Mängeln am schnellsten darauf hinweist.

Der Test von V. Gilev ist bereits zu einer Art „De-facto“-Standard geworden. Der Autor hat auf seiner Website recht klare Empfehlungen gegeben, ich werde jedoch lediglich einige Ergebnisse präsentieren und die wahrscheinlichsten Fehler kommentieren. Natürlich können die Testergebnisse Ihrer Ausrüstung abweichen; dies ist nur ein Anhaltspunkt dafür, was sein sollte und was Sie anstreben können. Ich möchte gleich darauf hinweisen, dass Änderungen Schritt für Schritt vorgenommen werden müssen und nach jedem Schritt überprüft werden muss, zu welchem ​​Ergebnis es geführt hat.

Es gibt ähnliche Artikel auf Infostart, ich werde in den entsprechenden Abschnitten Links dazu setzen (falls ich etwas vermisse, bitte in den Kommentaren vorschlagen, ich werde es hinzufügen). Nehmen wir also an, Ihr 1C ist langsam. Wie lässt sich das Problem diagnostizieren und herausfinden, wer dafür verantwortlich ist: der Administrator oder der Programmierer?

Ausgangsdaten:

Getesteter Rechner, Hauptversuchskaninchen: HP DL180G6, ausgestattet mit 2*Xeon 5650, 32 Gb, Intel 362i, Win 2008 r2. Zum Vergleich: Der Core i3-2100 zeigt im Single-Threaded-Test vergleichbare Ergebnisse. Die von mir bewusst gewählte Ausrüstung war nicht die neueste; mit modernen Geräten sind die Ergebnisse spürbar besser.

Zum Testen separater 1C- und SQL-Server, SQL-Server: IBM System 3650 x4, 2*Xeon E5-2630, 32 GB, Intel 350, Win 2008 r2.

Zum Testen eines 10-Gbit-Netzwerks wurden Intel 520-DA2-Adapter verwendet.

Dateiversion. (Die Datenbank befindet sich auf dem Server in einem freigegebenen Ordner, Clients verbinden sich über das Netzwerk, CIFS/SMB-Protokoll). Algorithmus Schritt für Schritt:

0. Fügen Sie die Testdatenbank von Gilev zum Dateiserver im selben Ordner wie die Hauptdatenbanken hinzu. Wir stellen eine Verbindung vom Client-Computer her her und führen den Test durch. Wir erinnern uns an das Ergebnis.

Es versteht sich, dass selbst bei alten Computern von vor 10 Jahren (Pentium auf 775-Sockel) die Zeit vom Klicken auf die 1C:Enterprise-Verknüpfung bis zum Erscheinen des Datenbankfensters weniger als eine Minute dauern sollte. (Celeron = langsam).

Wenn Ihr Computer schlechter ist als ein Pentium auf 775-Sockel mit 1 GB RAM, dann habe ich Mitleid mit Ihnen und es wird für Sie schwierig sein, auf 1C 8.2 in der Dateiversion komfortabel zu arbeiten. Denken Sie darüber nach, entweder ein Upgrade durchzuführen (es ist höchste Zeit) oder auf einen Terminal-Server (oder einen Web-Server im Fall von Thin Clients und verwalteten Formularen) umzusteigen.

Wenn der Computer nicht schlechter ist, können Sie den Administrator rausschmeißen. Überprüfen Sie mindestens die Funktionsfähigkeit des Netzwerk-, Virenschutz- und HASP-Schutztreibers.

Wenn Gilevs Test zu diesem Zeitpunkt 30 „Papageien“ oder mehr ergab, die 1C-Arbeitsbasis aber immer noch langsam arbeitet, sollten die Fragen an den Programmierer gerichtet werden.

1. Als Anhaltspunkt dafür, wie viel ein Client-Computer „quetschen“ kann, überprüfen wir nur den Betrieb dieses Computers ohne Netzwerk. Wir installieren die Testdatenbank auf einem lokalen Computer (auf einer sehr schnellen Festplatte). Wenn der Client-Computer nicht über eine normale SSD verfügt, wird eine Ramdisk erstellt. Die einfachste und kostenlose Lösung ist derzeit Ramdisk Enterprise.

Um Version 8.2 zu testen, reicht eine 256 MB große Ramdisk, und! Das Wichtigste. Nach dem Neustart des Computers sollten bei laufender Ramdisk 100–200 MB frei sein. Dementsprechend sollten ohne Ramdisk für den Normalbetrieb 300-400 MB freier Speicher vorhanden sein.

Zum Testen der Version 8.3 reicht eine 256 MB große Ramdisk, allerdings benötigt man mehr freien RAM.

Beim Testen müssen Sie auf die Prozessorauslastung achten. In einem nahezu idealen Fall (Ramdisk) lädt die lokale Datei 1c beim Ausführen 1 Prozessorkern. Wenn Ihr Prozessorkern während des Tests nicht vollständig ausgelastet ist, suchen Sie daher nach Schwachstellen. Etwas emotional, aber im Großen und Ganzen richtig, wird der Einfluss des Prozessors auf den Betrieb von 1C beschrieben. Nur als Referenz: Selbst bei modernen Core i3s mit hohen Frequenzen sind die Zahlen 70-80 durchaus realistisch.

Die häufigsten Fehler in dieser Phase.

  • Falsch konfiguriertes Antivirenprogramm. Es gibt viele Antivirenprogramme, die Einstellungen sind für jedes unterschiedlich. Ich kann nur sagen, dass bei richtiger Konfiguration weder das Web noch Kaspersky 1C stören. Mit den Standardeinstellungen können etwa 3–5 Papageien (10–15 %) gefangen werden.
  • Leistungsmodus. Aus irgendeinem Grund achten nur wenige Menschen darauf, aber die Wirkung ist am bedeutendsten. Wenn Sie Geschwindigkeit benötigen, müssen Sie dies sowohl auf Client- als auch auf Servercomputern tun. (Gilev hat eine gute Beschreibung. Die einzige Einschränkung besteht darin, dass Sie auf einigen Motherboards TurboBoost nicht aktivieren können, wenn Sie Intel SpeedStep ausschalten.)
Kurz gesagt, während 1C läuft, wird lange auf eine Antwort von anderen Geräten (Festplatte, Netzwerk usw.) gewartet. Während er auf eine Antwort wartet und der Leistungsmodus aktiviert ist, senkt der Prozessor seine Frequenz. Eine Antwort kommt vom Gerät, 1C (der Prozessor) muss arbeiten, aber die ersten Taktzyklen sind mit einer reduzierten Frequenz, dann erhöht sich die Frequenz – und 1C wartet erneut auf eine Antwort vom Gerät. Und so – viele Hundert Mal pro Sekunde.

Sie können (und vorzugsweise) den Leistungsmodus an zwei Stellen aktivieren:

  • über BIOS. Deaktivieren Sie die Modi C1, C1E, Intel C-State (C2, C3, C4). In verschiedenen Bios werden sie unterschiedlich genannt, aber die Bedeutung ist dieselbe. Die Suche dauert lange, ein Neustart ist erforderlich, aber wenn Sie es einmal tun, können Sie es vergessen. Wenn Sie im BIOS alles richtig machen, erhöht sich die Geschwindigkeit. Bei einigen Motherboards können Sie die BIOS-Einstellungen so konfigurieren, dass der Windows-Leistungsmodus keine Rolle spielt. (Beispiele für BIOS-Einstellungen von Gilev). Diese Einstellungen betreffen hauptsächlich Serverprozessoren oder „erweiterte“ BIOSe. Wenn Sie dies nicht gefunden haben und KEIN Xeon haben, ist das in Ordnung.

  • Bedienfeld – Stromversorgung – Hohe Leistung. Minuspunkt: Wenn der Computer längere Zeit nicht gewartet wurde, macht er ein lauteres Lüftergeräusch, erwärmt sich stärker und verbraucht mehr Energie. Hierbei handelt es sich um eine Leistungsgebühr.
So überprüfen Sie, ob der Modus aktiviert ist. Starten Sie den Task-Manager – Leistung – Ressourcenmonitor – CPU. Wir warten, bis der Prozessor mit nichts beschäftigt ist.
Dies sind die Standardeinstellungen.

BIOS C-State aktiviert,

ausgeglichener Stromverbrauchsmodus


BIOS C-State aktiviert, Hochleistungsmodus

Für Pentium und Core können Sie hier aufhören,

Aus Xeon kann man immer noch ein paar „Papageien“ herausquetschen


Im BIOS ist C-State deaktiviert, Hochleistungsmodus.

Wenn Sie Turbo Boost nicht verwenden, sollte es so aussehen

Server auf Leistung abgestimmt


Und nun die Zahlen. Ich möchte Sie daran erinnern: Intel Xeon 5650, Ramdisk. Im ersten Fall zeigt der Test 23,26, im letzten Fall 49,5. Der Unterschied ist fast zweifach. Die Zahlen können variieren, aber das Verhältnis bleibt für Intel Core im Wesentlichen gleich.

Liebe Administratoren, Sie können 1C so oft kritisieren, wie Sie möchten, aber wenn Endbenutzer Geschwindigkeit benötigen, müssen Sie den Hochleistungsmodus aktivieren.

c) Turbo-Boost. Zunächst müssen Sie beispielsweise verstehen, ob Ihr Prozessor diese Funktion unterstützt. Wenn dies unterstützt wird, können Sie ganz legal immer noch etwas Leistung erhalten. (Ich möchte die Probleme der Frequenzübertaktung, insbesondere bei Servern, nicht ansprechen. Tun Sie dies auf eigene Gefahr und Gefahr. Aber ich stimme zu, dass eine Erhöhung der Busgeschwindigkeit von 133 auf 166 zu einer deutlich spürbaren Steigerung sowohl der Geschwindigkeit als auch der Wärmeableitung führt.)

Wie man den Turbo-Boost einschaltet, wird zum Beispiel geschrieben. Aber! Für 1C gibt es einige Nuancen (nicht die offensichtlichsten). Die Schwierigkeit besteht darin, dass die maximale Wirkung des Turbo-Boosts auftritt, wenn der C-Zustand eingeschaltet ist. Und wir bekommen so etwas:

Bitte beachten Sie, dass der Multiplikator maximal ist, die Kerngeschwindigkeit schön ist und die Leistung hoch ist. Aber was passiert als Ergebnis mit 1s?

Aber am Ende stellt sich heraus, dass laut CPU-Leistungstests die Version mit einem Multiplikator von 23 die Nase vorn hat, laut Gilevs Tests in der Dateiversion ist die Leistung mit einem Multiplikator von 22 und 23 gleich, jedoch im Client-Server Version – die Version mit einem Multiplikator von 23 ist schrecklich, schrecklich, schrecklich (selbst wenn C-State auf Stufe 7 eingestellt ist, ist sie immer noch langsamer als bei ausgeschaltetem C-State). Daher empfiehlt es sich, beide Optionen selbst zu prüfen und die beste auszuwählen. Auf jeden Fall ist der Unterschied zwischen 49,5 und 53 Papageien recht deutlich, vor allem ohne großen Aufwand.

Fazit – Turbo-Boost muss eingeschaltet sein. Ich möchte Sie daran erinnern, dass es nicht ausreicht, das Turbo-Boost-Element im BIOS zu aktivieren, Sie müssen sich auch andere Einstellungen ansehen (BIOS: QPI L0s, L1 – deaktivieren, Demand Scrubbing – deaktivieren, Intel SpeedStep – aktivieren, Turbo Boost – aktivieren. Systemsteuerung – Energieoptionen – Hohe Leistung). Und ich würde immer noch (auch für die Dateiversion) die Option wählen, bei der C-State ausgeschaltet ist, auch wenn der Multiplikator kleiner ist. Es wird so etwas kommen...

Ein eher umstrittener Punkt ist die Speicherfrequenz. Es zeigt sich beispielsweise, dass die Speicherfrequenz einen sehr starken Einfluss hat. Meine Tests ergaben keine solche Abhängigkeit. Ich werde DDR 2/3/4 nicht vergleichen, sondern die Ergebnisse der Frequenzänderung innerhalb derselben Zeile zeigen. Der Speicher ist derselbe, allerdings sind wir im BIOS gezwungen, niedrigere Frequenzen einzustellen.




Und Testergebnisse. 1C 8.2.19.83, für die Dateiversion lokale Ramdisk, für Client-Server 1C und SQL auf einem Computer, Shared Memory. Der Turbo-Boost ist in beiden Versionen deaktiviert. 8.3 zeigt vergleichbare Ergebnisse.

Der Unterschied liegt innerhalb des Messfehlers. Ich habe speziell Screenshots von CPU-Z herausgezogen, um zu zeigen, dass sich bei einer Frequenzänderung auch andere Parameter ändern, die gleiche CAS-Latenz und RAS-zu-CAS-Verzögerung, wodurch die Frequenzänderung neutralisiert wird. Der Unterschied wird sein, wenn die Speichermodule physisch geändert werden, von langsamer zu schneller, aber selbst dort sind die Zahlen nicht besonders signifikant.

2. Wenn wir den Prozessor und den Speicher des Client-Computers geklärt haben, gehen wir zum nächsten sehr wichtigen Ort über – dem Netzwerk. Es wurden viele Buchbände über Netzwerkoptimierung geschrieben, es gibt Artikel über Infostart (und andere), aber hier werde ich mich nicht auf dieses Thema konzentrieren. Bevor Sie mit dem Testen von 1C beginnen, stellen Sie bitte sicher, dass iperf zwischen zwei Computern die gesamte Bandbreite anzeigt (für 1-Gbit-Karten - also mindestens 850 Mbit, oder besser noch 950-980), und dass Gilevs Rat befolgt wurde. Dann besteht der einfachste Betriebstest seltsamerweise darin, eine große Datei (5-10 Gigabyte) über das Netzwerk zu kopieren. Ein indirektes Zeichen für den normalen Betrieb in einem 1-Gbit-Netzwerk ist die durchschnittliche Kopiergeschwindigkeit von 100 MB/Sek., guter Betrieb - 120 MB/Sek. Ich möchte Sie darauf aufmerksam machen, dass der Schwachpunkt (einschließlich) möglicherweise die Prozessorlast ist. Das SMB-Protokoll unter Linux ist recht schlecht parallelisiert und kann im Betrieb leicht einen Prozessorkern „fressen“ und keinen weiteren verbrauchen.

Und noch etwas. Mit den Standardeinstellungen funktioniert der Windows-Client am besten mit einem Windows-Server (oder sogar einer Windows-Workstation) und dem SMB/CIFS-Protokoll, ein Linux-Client (Debian, Ubuntu haben sich die anderen nicht angesehen) funktioniert besser mit Linux und NFS ( es funktioniert auch mit SMB, aber auf NFS sind Papageien größer). Die Tatsache, dass beim linearen Kopieren eines Windows-Linux-Servers nach NFS schneller in einen Stream kopiert wird, bedeutet nichts. Debian-Tuning für 1C ist ein Thema für einen separaten Artikel, ich bin noch nicht bereit dafür, obwohl ich sagen kann, dass ich in der Dateiversion sogar eine etwas bessere Leistung erzielt habe als die Win-Version auf dem gleichen Gerät, aber mit Postgres mit über 50 Benutzer Ich habe immer noch alles sehr schlecht.

Das Wichtigste, was „verbrannte“ Administratoren wissen, aber Anfänger nicht berücksichtigen. Es gibt viele Möglichkeiten, den Pfad zur 1c-Datenbank festzulegen. Sie können Servershare ausführen, Sie können 192.168.0.1share ausführen, Sie können z: 192.168.0.1share net verwenden (und in einigen Fällen funktioniert diese Methode auch, aber nicht immer) und dann Laufwerk Z angeben. Es scheint, dass alle diese Pfade Zeigen Sie auf dasselbe Ding am selben Ort, aber für 1C gibt es nur eine Methode, die recht zuverlässig eine normale Leistung liefert. Das müssen Sie also richtig machen:

Verwenden Sie in der Befehlszeile (oder in Richtlinien oder was auch immer für Sie praktisch ist) DriveLetter: servershare. Beispiel: net use m: serverbases. Ich betone ausdrücklich NICHT die IP-Adresse, sondern den Servernamen. Wenn der Servername nicht sichtbar ist, fügen Sie ihn zum DNS auf dem Server oder lokal zur Hosts-Datei hinzu. Die Adresse muss jedoch namentlich angegeben werden. Greifen Sie dementsprechend auf dem Weg zur Datenbank auf diese Diskette zu (siehe Bild).

Und jetzt werde ich anhand von Zahlen zeigen, warum dies der Rat ist. Ausgangsdaten: Intel X520-DA2, Intel 362, Intel 350, Realtek 8169-Betriebssysteme Win 2008 R2, Win 7, Debian 8. Neueste Treiber, Updates angewendet. Vor dem Test habe ich sichergestellt, dass Iperf die volle Bandbreite bereitstellt (außer bei 10-Gbit-Karten schaffte es nur 7,2 Gbit, warum werde ich später sehen, der Testserver wurde noch nicht richtig konfiguriert). Die Festplatten sind unterschiedlich, aber überall gibt es eine SSD (ich habe speziell zum Testen eine einzelne Festplatte eingelegt, sie ist mit nichts anderem geladen) oder einen RAID von einer SSD. Die Geschwindigkeit von 100 Mbit wurde durch Begrenzen der Einstellungen des Intel 362-Adapters erreicht. Es gab keinen Unterschied zwischen 1 Gbit Kupfer Intel 350 und 1 Gbit optischem Intel X520-DA2 (erreicht durch Begrenzen der Geschwindigkeit des Adapters). Maximale Leistung, Turbo-Boost ist ausgeschaltet (nur zur Vergleichbarkeit der Ergebnisse, Turbo-Boost fügt bei guten Ergebnissen etwas weniger als 10 % hinzu, bei schlechten Ergebnissen hat er möglicherweise überhaupt keine Wirkung). Versionen 1C 8.2.19.86, 8.3.6.2076. Ich gebe nicht alle Zahlen an, sondern nur die interessantesten, damit Sie etwas zum Vergleich haben.

100 Mbit CIFS

Win 2008 – Win 2008

Kontakt über IP-Adresse

100 Mbit CIFS

Win 2008 – Win 2008

beim Namen rufen

1 Gbit CIFS

Win 2008 – Win 2008

Kontakt über IP-Adresse

1 Gbit CIFS

Win 2008 – Win 2008

beim Namen rufen

1 Gbit CIFS

Win 2008 – Win 7

beim Namen rufen

1 Gbit CIFS

Win 2008 – Debian

beim Namen rufen

10 Gbit CIFS

Win 2008 – Win 2008

Kontakt über IP-Adresse

10 Gbit CIFS

Win 2008 – Win 2008

beim Namen rufen

11,20 26,18 15,20 43,86 40,65 37,04 16,23 44,64
1C 8.2 11,29 26,18 15,29 43,10 40,65 36,76 15,11 44,10
8.2.19.83 12,15 25,77 15,15 43,10 14,97 42,74
6,13 34,25 14,98 43,10 39,37 37,59 15,53 42,74
1C 8.3 6,61 33,33 15,58 43,86 40,00 37,88 16,23 42,74
8.3.6.2076 33,78 15,53 43,48 39,37 37,59 42,74

Schlussfolgerungen (aus der Tabelle und aus eigener Erfahrung. Gilt nur für die Dateiversion):

  • Über das Netzwerk können Sie ganz normale Nummern für die Arbeit erhalten, wenn dieses Netzwerk richtig konfiguriert ist und der Pfad in 1C korrekt eingetragen ist. Selbst der erste Core i3 kann problemlos über 40 Papageien produzieren, was ziemlich gut ist, und das sind nicht nur Papageien, auch in der realen Arbeit ist der Unterschied spürbar. Aber! Die Einschränkung bei der Arbeit mit mehreren (mehr als 10) Benutzern wird nicht mehr das Netzwerk sein, hier reicht noch 1 Gbit, sondern die Blockierung bei Mehrbenutzerarbeit (Gilev).
  • Die 1C 8.3-Plattform stellt um ein Vielfaches höhere Anforderungen an die richtige Netzwerkkonfiguration. Grundeinstellungen – siehe Gilev, aber bedenken Sie, dass alles beeinflusst werden kann. Ich sah eine Beschleunigung durch die Deinstallation (und nicht nur durch das Ausschalten) des Antivirenprogramms, durch das Entfernen von Protokollen wie FCoE, durch den Wechsel der Treiber zu einer älteren, aber von Microsoft zertifizierten Version (insbesondere für günstige Karten wie ASUS und DLC) und durch das Entfernen der zweiten Netzwerkkarte vom Server. Es gibt viele Möglichkeiten. Richten Sie Ihr Netzwerk sorgfältig ein. Es kann durchaus vorkommen, dass Plattform 8.2 akzeptable Zahlen liefert und 8.3 zwei oder sogar mehr Mal weniger. Versuchen Sie, mit der Plattformversion 8.3 zu spielen, manchmal erzielen Sie einen sehr großen Effekt.
  • 1C 8.3.6.2076 (vielleicht später, ich habe noch nicht nach der genauen Version gesucht) ist immer noch einfacher über das Netzwerk zu konfigurieren als 8.3.7.2008. Ich konnte ab dem 8.3.2008 (bei vergleichbaren Papageien) nur wenige Male einen normalen Betrieb über das Netzwerk erreichen; für einen allgemeineren Fall konnte ich ihn nicht wiederholen. Ich habe nicht viel verstanden, aber den Fußbandagen von Process Explorer nach zu urteilen, ist die Aufzeichnung dort nicht so gut wie in 8.3.6.
  • Trotz der Tatsache, dass bei der Arbeit in einem 100-Mbit-Netzwerk der Lastplan gering ist (wir können sagen, dass das Netzwerk frei ist), ist die Betriebsgeschwindigkeit immer noch viel geringer als bei 1 Gbit. Der Grund ist die Netzwerklatenz.
  • Unter sonst gleichen Bedingungen (ein gut funktionierendes Netzwerk) ist die Intel-Realtek-Verbindung für 1C 8.2 10 % langsamer als die Intel-Intel-Verbindung. Aber Realtek-Realtek kann im Allgemeinen aus heiterem Himmel zu starken Einbrüchen führen. Wenn Sie also Geld haben, ist es besser, überall Intel-Netzwerkkarten aufzubewahren. Wenn Sie kein Geld haben, installieren Sie Intel nur auf dem Server (Ihrem CO). Und es gibt noch viel mehr Anleitungen zum Tuning von Intel-Netzwerkkarten.
  • Standard-Antivireneinstellungen (am Beispiel von Drweb Version 10) nehmen etwa 8-10 % der Papageien ein. Wenn Sie es so konfigurieren, wie es sollte (lassen Sie den 1cv8-Prozess alles tun, obwohl dies nicht sicher ist), ist die Geschwindigkeit dieselbe wie ohne Antivirenprogramm.
  • Lesen Sie KEINE Linux-Gurus. Ein Server mit Samba ist großartig und kostenlos, aber wenn Sie Win XP oder Win7 (oder noch besser - Server-Betriebssystem) auf dem Server installieren, dann funktioniert die Dateiversion von 1c schneller. Ja, Samba und der Protokoll-Stack sowie Netzwerkeinstellungen und vieles mehr lassen sich in Debian/Ubuntu gut anpassen, dies ist jedoch für Spezialisten zu empfehlen. Es hat keinen Sinn, Linux mit den Standardeinstellungen zu installieren und dann zu sagen, dass es langsam ist.
  • Es ist eine gute Idee, die Funktionsfähigkeit von Festplatten zu überprüfen, die über net use mit fio verbunden sind. Zumindest wird klar sein, ob es sich um Probleme mit der 1C-Plattform oder mit dem Netzwerk/der Festplatte handelt.
  • Für die Single-User-Version fallen mir keine Tests (oder eine Situation) ein, bei denen der Unterschied zwischen 1 Gbit und 10 Gbit sichtbar wäre. Das einzige, wo 10 Gbit für die Dateiversion bessere Ergebnisse lieferten, war die Verbindung von Festplatten über iSCSI, aber das ist ein Thema für einen separaten Artikel. Dennoch denke ich, dass für die Dateiversion 1-Gbit-Karten ausreichen.
  • Ich verstehe nicht, warum 8.3 bei einem 100-Mbit-Netzwerk merklich schneller funktioniert als 8.2, aber es war eine Tatsache. Alle anderen Geräte, alle anderen Einstellungen sind absolut gleich, nur wird in einem Fall 8.2 getestet und im anderen Fall 8.3.
  • Nicht abgestimmtes NFS Win-Win oder Win-Lin ergibt 6 Papageien, ich habe sie nicht in die Tabelle aufgenommen. Nach dem Tuning bekam ich 25, aber es war instabil (der Unterschied in den Messungen betrug mehr als 2 Einheiten). Ich kann noch keine Empfehlungen zur Verwendung von Windows und dem NFS-Protokoll geben.
Nach allen Einstellungen und Prüfungen führen wir den Test erneut vom Client-Rechner aus und freuen uns über das verbesserte Ergebnis (sofern es funktioniert). Wenn sich das Ergebnis verbessert hat, mehr als 30 Papageien (und insbesondere mehr als 40) vorhanden sind, weniger als 10 Benutzer gleichzeitig arbeiten und die Arbeitsdatenbank immer noch langsam ist – mit ziemlicher Sicherheit ein Programmiererproblem (oder Sie haben es bereits erreicht). die Spitzenfähigkeiten der Dateiversion).

Terminalserver. (Die Datenbank befindet sich auf dem Server, Clients verbinden sich über das Netzwerk, RDP-Protokoll). Algorithmus Schritt für Schritt:

  • Wir fügen die Testdatenbank von Gilev zum Server im selben Ordner wie die Hauptdatenbanken hinzu. Wir verbinden uns vom selben Server und führen den Test durch. Wir erinnern uns an das Ergebnis.
  • Genauso wie in der Dateiversion konfigurieren wir den Prozessor. Bei einem Terminalserver spielt in der Regel der Prozessor die Hauptrolle (es wird davon ausgegangen, dass keine offensichtlichen Schwachstellen vorliegen, wie z. B. fehlender Speicher oder eine große Menge unnötiger Software).
  • Die Konfiguration von Netzwerkkarten hat bei einem Terminalserver praktisch keine Auswirkungen auf den Betrieb von 1c. Um „besonderen“ Komfort zu gewährleisten, können Sie, wenn Ihr Server mehr als 50 Papageien produziert, mit neuen Versionen des RDP-Protokolls spielen, nur für den Komfort der Benutzer, schnellere Reaktion und schnelleres Scrollen.
  • Wenn eine große Anzahl von Benutzern aktiv arbeitet (und hier können Sie bereits versuchen, 30 Personen mit einer Datenbank zu verbinden, wenn Sie es versuchen), ist es sehr ratsam, ein SSD-Laufwerk zu installieren. Aus irgendeinem Grund wird angenommen, dass die Festplatte den Betrieb von 1C nicht besonders beeinträchtigt, aber alle Tests werden mit zum Schreiben aktiviertem Controller-Cache durchgeführt, was falsch ist. Die Testbasis ist klein, sie passt recht gut in den Cache, daher die hohen Zahlen. Bei echten (großen) Datenbanken wird alles völlig anders sein, daher ist der Cache für Tests deaktiviert.
Ich habe zum Beispiel die Funktionsweise des Gilev-Tests mit verschiedenen Festplattenoptionen überprüft. Ich habe die Scheiben aus dem, was zur Hand war, eingelegt, nur um die Tendenz zu zeigen. Der Unterschied zwischen 8.3.6.2076 und 8.3.7.2008 ist gering (in der Ramdisk Turbo Boost-Version ergibt 8.3.6 56,18 und 8.3.7.2008 55,56, in anderen Tests ist der Unterschied noch geringer). Stromverbrauch – maximale Leistung, Turbo-Boost deaktiviert (sofern nicht anders angegeben).
Raid 10 4x SATA 7200

ATA ST31500341AS

Raid 10 4x SAS 10kRaid 10 4x SAS 15kEinzelne SSDRamdiskRamdiskCache aktiviert

RAID-Controller

21,74 28,09 32,47 49,02 50,51 53,76 49,02
1C 8.2 21,65 28,57 32,05 48,54 49,02 53,19
8.2.19.83 21,65 28,41 31,45 48,54 49,50 53,19
33,33 42,74 45,05 51,55 52,08 55,56 51,55
1C 8.3 33,46 42,02 45,05 51,02 52,08 54,95
8.3.7.2008 35,46 43,01 44,64 51,55 52,08 56,18
  • Der aktivierte RAID-Controller-Cache eliminiert alle Unterschiede zwischen den Festplatten; die Zahlen sind für Sat und Cas gleich. Tests damit an einer kleinen Datenmenge sind nutzlos und haben keinerlei Aussagekraft.
  • Bei Plattform 8.2 beträgt der Leistungsunterschied zwischen SATA- und SSD-Optionen mehr als das Doppelte. Das ist kein Tippfehler. Wenn Sie beim Test auf SATA-Laufwerken auf den Leistungsmonitor schauen. Dann können Sie deutlich „Aktive Festplattenbetriebszeit (in %)“ 80-95 sehen. Ja, wenn Sie den Cache der Festplatten selbst für die Aufnahme aktivieren, erhöht sich die Geschwindigkeit auf 35, wenn Sie den Cache des RAID-Controllers aktivieren – auf bis zu 49 (unabhängig davon, welche Festplatten gerade getestet werden). Aber das sind synthetische Cache-Papageien; in der Praxis wird es bei großen Datenbanken nie eine 100-prozentige Schreib-Cache-Trefferquote geben.
  • Die Geschwindigkeit selbst billiger SSDs (ich habe sie auf Agility 3 getestet) reicht völlig aus, um die Dateiversion auszuführen. Die Aufnahmeressource ist eine andere Sache, man muss sie sich im Einzelfall ansehen, es ist klar, dass sie beim Intel 3700 um eine Größenordnung höher sein wird, aber der Preis ist entsprechend. Und ja, ich verstehe, dass ich beim Testen einer SSD-Festplatte auch den Cache dieser Festplatte in größerem Umfang teste und die tatsächlichen Ergebnisse geringer ausfallen.
  • Die (aus meiner Sicht) korrekteste Lösung wäre, einer Dateidatenbank (oder mehreren Dateidatenbanken) zwei SSD-Festplatten in einem gespiegelten Raid zuzuweisen und dort nichts anderes zu platzieren. Ja, mit einem Spiegel verschleißen SSDs gleichermaßen, und das ist ein Minus, aber zumindest ist die Controller-Elektronik irgendwie vor Fehlern geschützt.
  • Die Hauptvorteile von SSD-Laufwerken für die Dateiversion zeigen sich, wenn viele Datenbanken mit jeweils mehreren Benutzern vorhanden sind. Wenn 1-2 Datenbanken vorhanden sind und etwa 10 Benutzer vorhanden sind, reichen SAS-Festplatten aus. (Aber schauen Sie sich auf jeden Fall das Laden dieser Festplatten an, zumindest über perfmon).
  • Die Hauptvorteile eines Terminalservers bestehen darin, dass er sehr schwache Clients haben kann und die Netzwerkeinstellungen den Terminalserver viel weniger beeinflussen (wiederum Ihr K.O.).
Schlussfolgerungen: Wenn Sie den Gilev-Test auf einem Terminalserver ausführen (von derselben Festplatte, auf der sich die Arbeitsdatenbanken befinden) und in den Momenten, in denen die Arbeitsdatenbank langsamer wird und der Gilev-Test ein gutes Ergebnis zeigt (über 30), dann ist der Der langsame Betrieb der Hauptarbeitsdatenbank ist höchstwahrscheinlich ein Programmierer.

Wenn der Gilev-Test kleine Zahlen anzeigt und Sie über einen Hochtaktprozessor und schnelle Festplatten verfügen, muss der Administrator mindestens perfmon durchführen, alle Ergebnisse irgendwo aufzeichnen und beobachten, beobachten und Schlussfolgerungen ziehen. Eine definitive Beratung wird es nicht geben.

Client-Server-Option.

Tests wurden nur auf 8.2 durchgeführt, weil Bei 8.3 hängt alles ganz stark von der Version ab.

Zum Testen habe ich verschiedene Serveroptionen und Netzwerke ausgewählt, um die wichtigsten Trends aufzuzeigen.

1C: Xeon 5520

SQL: Xeon E5-2630

1C: Xeon 5520

SQL: Xeon E5-2630

Fibre-Channel – SSD

1C: Xeon 5520

SQL: Xeon E5-2630

Fibre-Channel – SAS

1C: Xeon 5650

SQL: Xeon E5-2630

1C: Xeon 5650

SQL: Xeon E5-2630

Fibre-Channel – SSD

1C: Xeon 5650

SQL: Xeon E5-2630

1C: Xeon 5650 =1C: Xeon 5650 =1C: Xeon 5650 =1C: Xeon 5650 =1C: Xeon 5650 =
16,78 18,23 16,84 28,57 27,78 32,05 34,72 36,50 23,26 40,65 39.37
1C 8.2 17,12 17,06 14,53 29,41 28,41 31,45 34,97 36,23 23,81 40,32 39.06
16,72 16,89 13,44 29,76 28,57 32,05 34,97 36,23 23,26 40,32 39.06

Es scheint, dass ich alle interessanten Optionen in Betracht gezogen habe. Wenn Sie noch an etwas interessiert sind, schreiben Sie es in die Kommentare, ich werde versuchen, es zu tun.

  • SAS auf Speichersystemen ist langsamer als lokale SSDs, obwohl die Speichersysteme über größere Cache-Größen verfügen. SSDs, sowohl lokal als auch auf Speichersystemen, arbeiten für Gilevs Test mit vergleichbaren Geschwindigkeiten. Ich kenne keinen Standard-Multithread-Test (nicht nur die Aufnahme, sondern alle Geräte) außer dem 1C-Lasttest vom MCC.
  • Durch den Wechsel des 1C-Servers von 5520 auf 5650 konnte die Leistung fast verdoppelt werden. Ja, die Serverkonfigurationen stimmen nicht vollständig überein, aber es zeigt einen Trend (keine Überraschung).
  • Das Erhöhen der Frequenz auf dem SQL-Server hat sicherlich einen Effekt, aber nicht den gleichen Effekt wie auf dem 1C-Server. MS SQL-Server eignet sich hervorragend (wenn Sie es fragen), um Multi-Cores und freien Speicher zu verwenden.
  • Der Wechsel des Netzwerks zwischen 1C und SQL von 1 Gbit auf 10 Gbit führt zu etwa 10 % Papageien. Ich habe mehr erwartet.
  • Das Aktivieren von Shared Memory hat immer noch einen Effekt, wenn auch nicht 15 %, wie im Artikel beschrieben. Machen Sie es unbedingt, zum Glück geht es schnell und einfach. Wenn während der Installation jemand dem SQL-Server eine benannte Instanz gegeben hat, muss der Servername nicht über FQDN (TCP/IP funktioniert), nicht über localhost oder nur über ServerName, sondern über ServerNameInstanceName angegeben werden, damit 1C funktioniert. testzztest. (Andernfalls kommt es zu einem DBMS-Fehler: Microsoft SQL Server Native Client 10.0: Shared Memory Provider: Die Shared Memory Library, die zum Herstellen einer Verbindung mit SQL Server 2000 verwendet wurde, wurde nicht gefunden. HRESULT=80004005, HRESULT=80004005, HRESULT=80004005, SQLSrvr : SQLSTATE=08001, Status=1, Schweregrad=10, nativ=126, Zeile=0).
  • Für Benutzer unter 100 ist die Aufteilung auf zwei separate Server nur dann sinnvoll, wenn eine Lizenz für Win 2008 Std (und älter) erforderlich ist, die nur 32 GB RAM unterstützt. In allen anderen Fällen müssen 1C und SQL unbedingt auf einem Server installiert werden und mit mehr (mindestens 64 GB) Speicher ausgestattet werden. MS SQL weniger als 24-28 GB RAM zu geben, ist ungerechtfertigte Gier (wenn Sie denken, dass Sie genug Speicher dafür haben und alles gut funktioniert, würde Ihnen vielleicht die Dateiversion von 1C reichen?)
  • Wie schlechter die Kombination von 1C und SQL in einer virtuellen Maschine funktioniert, ist Thema eines separaten Artikels (Hinweis – spürbar schlechter). Selbst in Hyper-V ist nicht alles so klar ...
  • Der ausgewogene Leistungsmodus ist schlecht. Die Ergebnisse stimmen weitgehend mit der Dateiversion überein.
  • Viele Quellen sagen, dass der Debugmodus (ragent.exe -debug) zu einer erheblichen Leistungseinbuße führt. Nun ja, es reduziert sich, aber ich würde 2-3 % nicht als signifikanten Effekt bezeichnen.
Für einen konkreten Fall wird es hier am wenigsten Ratschläge geben, weil... Die Bremsen in der Client-Server-Version sind der schwierigste Fall und alles wird sehr individuell konfiguriert. Am einfachsten ist es zu sagen, dass Sie für den normalen Betrieb einen separaten Server NUR für 1C und MS SQL benötigen, dort Prozessoren mit der maximalen Frequenz (über 3 GHz), SSD-Laufwerke für die Datenbank und mehr Speicher (128+) unterbringen müssen. , verwenden Sie keine Virtualisierung. Es hat geholfen - großartig, Sie haben Glück (und solche Glücklichen wird es viele geben, mehr als die Hälfte der Probleme können mit einem angemessenen Upgrade gelöst werden). Wenn nicht, erfordern alle anderen Optionen gesonderte Überlegungen und Einstellungen.

Jeder Support-Spezialist hat Erfahrung im Empfang abstrakter Beschwerden von Benutzern. Jeder kennt die Formulierungen: „Sie denkt sehr lange“, „Ich habe ein rotes Fenster“, „Das System funktioniert irgendwie falsch“ und auch „Das ist schon lange nicht mehr passiert, und hier ist es.“ ist wieder.“

In einer solchen Situation ist es sehr schwierig, sofort herauszufinden, wo der Fehler liegt und was zuerst zu tun ist. In diesem Artikel werden wir untersuchen, wovon die 1C-Leistung abhängt, d. h. hochbelastete Systeme, die auf Basis von 1C:Enterprise erstellt wurden, in Situationen, in denen die Symptome nicht vollständig verstanden werden und eine spezifische Diagnose nicht gestellt werden kann.


Die Hauptgründe, die die Leistung von 1C beeinträchtigen

In mehr als 60 % der Fälle sind die Gründe für eine geringe Produktivität:

  • Suboptimale Abfragen und Konfigurationscode (26 % der Fälle);
  • Suboptimale Indizierung von Objekttabellen (19 % der Fälle);
  • Nicht optimale Belastung des Festplattensubsystems (16 % der Fälle).

Dem stimmen führende Microsoft-Entwickler zu.

Um eine deutliche Verbesserung der Leistung einer Datenbankanwendung zu erzielen, ist es daher möglich, den Umfang des Datenzugriffs zu optimieren, einschließlich des logischen und physischen Designs von Datenbanken (soweit möglich in 1C) sowie durch die Erstellung des Rechts Abfragen und optimale Indizierung. Einige Probleme mit der Datenbankleistung können durch eine Erhöhung der Hardwarekapazität gelöst werden, allerdings nicht immer: Falsches Design der Anwendungslösung kann nicht durch einen leistungsstärkeren Server ausgeglichen werden. Es ist nicht ungewöhnlich, dass Anwenderunternehmen durch den Kauf neuer Geräte erhebliche Kosten verursachen, ohne die Ursachen eines Leistungsproblems zu verstehen, das Problem jedoch ungelöst bleibt.

Eine qualitativ hochwertige Diagnose der 1C-Leistung unter Nutzung der gesamten Palette vorhandener Tools ist der Schlüssel zur erfolgreichen Problemlösung und Kostenoptimierung

Der erste Schritt zur Identifizierung und Lösung von Problemen mit geringer Leistung besteht darin, eine umfassende Liste der wichtigsten problematischen Aktivitäten zu erstellen, einschließlich ihrer aktuellen Geschwindigkeit und der erwarteten zukünftigen Geschwindigkeit.

Beispiel:

Falsch: Das Programm friert beim Erstellen eines Berichts ein. Ich möchte, dass es schneller entsteht.

Richtig: Der Bericht „Schuldenauszug“ wird in 5 Minuten und 10 Sekunden erstellt. Die erwartete Geschwindigkeit zur Erstellung dieses Berichts beträgt nicht mehr als 20 Sekunden.

Nachdem die Liste der Probleme zusammengestellt und digitalisiert wurde, ist es notwendig, die Ursachen zu analysieren, beginnend mit der Suche nach problematischem Code, falls vorhanden (z. B. „schwere“ Anfragen, lange Wartezeiten bei Sperren, Deadlocks usw.).

Tools zur Identifizierung problematischen Codes

  • „1C: Performance Management Center“ (ein Modul, das im Toolpaket „1C: Corporate“ von 1C enthalten ist);
  • Gilev-Cloud-Dienste;
  • In DBMS integrierte Standardtools von führenden Anbietern.

Die Wirksamkeit des Einsatzes dieser Tools wird durch die Qualifikation des Entwicklers „1C: Technological Expert“ gewährleistet, was seine Teilnahme an groß angelegten Implementierungen von 1C impliziert. Gleichzeitig können verschiedene Experten aufgrund ihrer individuellen Erfahrung dem einen oder anderen Werkzeug/der anderen Methode den Vorzug geben.

Parallel zur Verwendung eines der vorgestellten Tools werden auch Standardtools zur Überwachung der Gerätelast (Leistungsmonitor-Zähler) verwendet.

Basierend auf den erhaltenen Messungen wird die Ursachenklasse identifiziert:

  • Das Problem liegt im Code.
  • Und/oder das Problem liegt in der Hardware;
  • Das Problem liegt in anderen ressourcenintensiven Programmen, die auf Produktionsservern verwendet werden.

Lasttest 1C – eine Methode zur Bewertung von Servergeräten

Wie bereits erwähnt, nehmen Serverhardware und deren Konfiguration unter den Faktoren, die die Leistung von 1C sowohl positiv als auch negativ beeinflussen können, einen wichtigen Platz ein. Betrachten wir Optionen für Messungen, Lastbewertung und Prüfung der Systemleistung unter den folgenden Bedingungen:

  • Server 1C ist verfügbar und befindet sich:
  • Zusammen mit dem DBMS;
  • Auf einem separaten Server.

Um die Übereinstimmung der Parameter der vorhandenen Serverausrüstung mit den Anforderungen des Systems zu beurteilen, ist es notwendig, Daten über die Auslastung der Hardware, einschließlich des Prozessors, zu sammeln, d.h. 1C-Lasttest. Zu diesem Zweck wird „Performance Monitor“ verwendet – ein Tool, mit dem Sie Geräte im Betriebsstromkreis messen und Leistungszähler auslesen können.

Nachfolgend finden Sie einen grundlegenden Satz von Zählern, die zur Überwachung der Hardwareleistung in Windows konfiguriert werden müssen. Die Erfassung erfolgt von allen Servern, auf denen 1C-Server installiert sind.

Wenn der Prozessorauslastungsprozentsatzzähler für die Ansicht „Prozessor“ einen hohen Wert aufweist, sollten Sie Prozesse identifizieren, die gestoppt werden können, ohne den Betrieb des Servers zu beeinträchtigen, und auch auf andere Server übertragen werden können.

In der Ansicht „Prozess“ können Sie die Überwachung für jeden einzelnen Prozess konfigurieren und feststellen, welche Prozesse die meiste CPU-Zeit beanspruchen. Wenn auf dem Server nur der 1C-Server installiert ist, müssen Sie die Sammlung der folgenden Zähler konfigurieren, um zu verstehen, welche Belastung die Hardware ausübt:

\Process("1cv8*")\% Prozessorzeit
\Process("ragent*")\% Prozessorzeit
\Process("ragent*")\Private Bytes
\Process("ragent*")\Virtuelle Bytes
\Process("rmngr*")\% Prozessorzeit
\Process("rmngr*")\Private Bytes
\Process("rmngr*")\Virtual Bytes
\Process("rphost*")\% Prozessorzeit
\Process("rphost*")\Private Bytes
\Process("rphost*")\Virtual Bytes
\Process("1cv8*")\Private Bytes
\Process("1cv8*")\Virtual Bytes

Befindet sich das aktuelle System in einem unbefriedigenden Zustand, sollten auf Basis der erfassten Messungen unter Verwendung einer linearen Beziehung die Geräteparameter für die Installation des Zielsystems berechnet werden.

Wenn Lediglich die Anschaffung von Serverequipment ist geplant, seine Parameter können berechnet werden, indem der Betrieb des geplanten Systems, jedoch in kleinerem Maßstab, unter Verwendung vorhandener Geräte nachgeahmt wird. Zu diesem Zweck wird „1C: Test Center“ verwendet, das im 1C Corporate Toolkit enthalten ist. Basierend auf den gewonnenen Messungen werden unter Verwendung von Berechnungsmethoden die Parameter der geplanten Anlage und dementsprechend die Anforderungen an die Ausrüstung ermittelt. Dieser Test kann wiederholt für verschiedene Messungen verwendet werden, nachdem die Funktionalität zuvor ergänzt und erweitert wurde. Diese Technik zeichnet sich durch eine hohe Genauigkeit und einfache Berechnung aus.

Im Rahmen der Untersuchung der Möglichkeit, dedizierte Serverkapazitäten nicht nur für die Webbranche, sondern auch für das Hosting verschiedener Arten von Informations- und Buchhaltungssystemen zu leasen, haben wir versucht, eine qualitative Leistungsbewertung am Beispiel der Funktionsweise der 1C-Anwendung in einer dedizierten Umgebung durchzuführen Serverversionen 8.2 und 8.3 in Verbindung mit CentOS 6.4+ PostgreSQL 9.1.2-1.1C, alle Softwarekomponenten (x_64).

Die physische Plattform war ein HP ProLiant DL120 G7 Server (Intel Xeon E3-1230 CPU, 8 GB, 2 SATA HP MB0500EBZQA Festplatten ohne RAID), die Inzum Server betrug 100 Mbit/s, die Clientverbindungsgeschwindigkeit schwankte 5 bis 12 Mbit/s.

Nach der Lektüre zahlreicher Materialien und Diskussionen auf verschiedenen Internetressourcen (wie http://www.infostart.ru, www.3nity.ru, www.mista.ru, www.ixbt.com usw.) widmen wir uns den Leistungsproblemen von 1C-Anwendungen In der Client-Server-Version wurde beschlossen, den frei verteilten Test von V. Gilev (http://www.gilev.ru/tpc1cgilv/) zu verwenden, dessen Ergebnisse einen qualitativen Vergleich verschiedener Serversätze ermöglichen und deren Komponenten, Betriebssystem, DBMS und Versionen von 1C-Anwendungsservern, um die optimale Konfiguration des gesamten Komplexes, auch in der Preisklasse, zu ermitteln.

Die Testergebnisse sind in den Screenshots dargestellt:

Anzumerken ist, dass es auf der 1C-Plattform Version 8.3.3 zu einem recht deutlichen Rückgang des Testergebnisses kam (bei Version 8.2.18 lag die Punktzahl unter sonst gleichen Bedingungen bei 60), was offenbar darauf zurückzuführen ist Unterschied in der Ausführung des Programmcodes auf verschiedenen Plattformen. Der Client-Teil wurde im normalen Anwendungsmodus (Thick Client) betrieben.

Die Möglichkeit des Multithread-Betriebs wurde auch am Beispiel des folgenden Tests getestet (http://infostart.ru/public/173394/). Mit diesem Test können Sie die ungefähre Anzahl gleichzeitiger Benutzer abschätzen, bei denen die Reaktionszeit des Systems noch akzeptabel ist.

IGOR TSCHUFAROW, Leiter der Abteilung für integrierte automatisierte Systeme bei Radiozavod JSC, [email protected]

40 Punkte im Gilev-Test –
Mythos oder Realität?

Es gibt weiterhin hitzige Diskussionen rund um den Gilev-Test, auch solche, die auf widersprüchlichen Ergebnissen basieren. Ich werde meine Erfahrungen mit diesem Tool teilen.

Ursprünge der Mehrdeutigkeit

Wenn man den Gilev-Test zum ersten Mal in Angriff nimmt, sind viele Spezialisten überrascht über die untypischen Ergebnisse, die mit seiner Hilfe erzielt werden. Beispielsweise kann Desktop-Hardware bessere Ergebnisse liefern als ein teurer, leistungsstarker Server. Die Dateiversion erhält eine höhere Bewertung als SQL. Und wenn beim zweiten Vorfall alles mehr oder weniger klar ist, dies wird sowohl in der Dokumentation zum Test als auch in zahlreichen Diskussionen in Foren erläutert, dann hat noch niemand eindeutige Schlussfolgerungen aus den relativ niedrigen Ergebnissen auf teuren Servergeräten gezogen.

Bevor über die erzielten Ergebnisse berichtet wird, lohnt es sich, ein paar Worte zum Gilev-Test selbst zu sagen und zu erklären, was er ist.

Der Name „Gilev-Test“ bezieht sich auf den TPC-1C-Belastungstest, der unter kostenlos heruntergeladen werden kann.

Bekannte Ergebnisse

Die Quelle liefert interessante Ergebnisse beim Vergleich eines Servers auf Basis von 2*Intel Xeon E5620 2,4 GHz mit 48 GB RAM und eines Personalcomputers auf Basis von Intel Core i5 3,0 GHz mit 16 GB RAM. Ohne zusätzliche Einstellungen und Tricks, wie es so schön heißt „out of the box“, hat die Workstation den Server in Gilevs Test „kaputt gemacht“ und eine 155 % höhere Leistung gezeigt.

Der Server erzielte ungefähr 17 Punkte, während der Desktop mehr als 40 Punkte erzielte. Als Ergebnis von Experimenten (bei denen es sich bei den meisten um die Kürzung der Desktop-Ressourcen handelte, um festzustellen, wie stark sich das Testergebnis dadurch verschlechtern würde) und Servereinstellungen gelang es den Autoren des Artikels 25,6 Punkte zu erreichen.

Das Ergebnis liegt, ehrlich gesagt, bei weitem nicht bei 40 auf einer normalen Systemeinheit. Ist es also besser, den 1C-Server auf preisgünstiger Hardware bereitzustellen, die am nächsten Kiosk gekauft wurde? Natürlich nicht.

Diskussion beim Infostart Event 2016

Einige Tage vor meiner Reise zur Infostart Event 2016-Konferenz in St. Petersburg erschien auf der Website course-po-1s ein interessantes zweistündiges Video über den Betrieb des 1C:Enterprise-Systems in virtualisierten Umgebungen, Geräteauswahl und Leistungsprobleme .rf.

Auf der Infostart Event 2016-Konferenz sollte der Autor dieses Webinars, Andrey Burmistrov, sprechen – ein 1C-Experte für technologische Fragen großer Implementierungen, der sowohl im 1C-Unternehmen als auch an vielen großen Implementierungen in unserem Land gearbeitet hat, ein Mentor von Mehr als 2000 Spezialisten im Kurs „1C Performance Optimization“ und Vorbereitung auf 1C: Expert.

Aufgrund des Interesses an dem Thema habe ich sowohl virtuell als auch anschließend auf der Konferenz selbst mit Andrey gesprochen. Eine der Fragen, die ich ihm während des HighLoad-Roundtables stellte, betraf die Möglichkeit, ein Webinar mit Referenztests verschiedener Server-Hardwareoptionen zu veröffentlichen – mit einer SSD, mit einer normalen Festplatte, in verschiedenen Hardwarekonfigurationen. Die Antwort klang etwa so: „Vielen Dank, das ist eine interessante Idee.“ Vielleicht machen wir es. Geben Sie uns einfach einen Intel P3700, P3600 und wir testen ihn gerne. Es ist gar nicht so einfach, irgendwo eine SSD zum Testen für eine Woche zu bekommen.“

Es stellte sich also heraus, dass fast keiner meiner Gesprächspartner mit eigenen Augen mehr als 30 Punkte im SQL-Modus sah, und diejenigen, die es sahen, stellten fest, dass es sich nicht um Servergeräte handelte.

Ein Teufelskreis? Es stellt sich eine ernstzunehmende Frage: „40 Punkte im Gilev-Test auf Server-Hardware im SQL-Modus – Mythos oder Realität?“

Lesen Sie den gesamten Artikel in der Zeitschrift „System Administrator“, Nr. 5, 2017, auf den Seiten 10-15.

Eine PDF-Version dieser Ausgabe kann bei uns erworben werden



Aktie