Neu SQL Server 2016 Maximum server memory

diun

Aktives Mitglied
16. Mai 2017
19
0
Wir haben die Wawi ver. 1.2.3.8 bisher unter SQL 2014 Express mit der empfohlenen Einstellung von 1024 MB für "Maximum server memory" betrieben.
Diese Einstellung scheint aber unter SQL 2016 zu Problemen zu führen, bei größeren Abfragen (z.B. Suche) erhalten wir manchmal folgenden Fehler, teilweise mit Crash der Instanz:

"Es ist nicht genügend Systemarbeitsspeicher im Ressourcenpool "internal" vorhanden, um diese Abfrage auszuführen."

Nach unserem Wissensstand ist diese Einstellung für den SQL 2016 auch nicht mehr sinnvoll, da dieser auch in der Express Version durchaus mehr Speicher als die 1024 MB verbrauchen kann, dieses Limit bezieht sich wohl nur auf den Cache.

Erwartungsgemäß erhöht sich mit höherer "Maximum server memory" Einstellung auch der Speicherverbrauch vom SQL Server. Das Problem ist allerdings, dass sich die Einstellung ...

UPDATE 26.11.2017, 13.30 Uhr:

... beim Login in die Wawi wieder ändert.

Folgendes SQL wird u.A. bei jedem Login ausgeführt:

"
BEGIN TRY
DECLARE @VersionExp BIGINT;
DECLARE @VersionExpwas BIGINT;
DECLARE @Serveredition BIGINT;
SET @VersionExp = -1592396055;
SET @VersionExpwas = -133711905;
SET @Serveredition = CONVERT(BIGINT , SERVERPROPERTY ('editionID' ));

IF (@Serveredition IN (@VersionExp,@VersionExpwas))
BEGIN
EXEC sys.sp_configure N'show advanced options', N'1' RECONFIGURE WITH OVERRIDE;
EXEC sys.sp_configure N'max server memory (MB)', N'950';
RECONFIGURE WITH OVERRIDE;
EXEC sys.sp_configure N'show advanced options', N'0' RECONFIGURE WITH OVERRIDE;
END;
END TRY
BEGIN CATCH
END CATCH
"

Kann uns wer sagen wo das her kommen könnte bzw. was das für einen Sinn ergibt maximum server memory beim Wawi-Login zu überschreiben?
 

diun

Aktives Mitglied
16. Mai 2017
19
0
Hallo Shopworker.de,

in den Docs von Microsoft sieht das anders aus (Scale Limits):
https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2016

"Maximum memory for buffer pool per instance of SQL Server Database Engine" - 1410MB

Diese Werte passen auch eher zum beobachteten Verhalten der RAM-Auslastung des SQL, wenn wir den "maximum server memory" Wert erhöhen verbraucht der SQL auch in der Express Version praktisch mehr RAM als die 1 GB Buffer.
Meiner Information nach war das aber auch schon in dem 2014er der Fall, dass die Express Begrenzung sich nur auf den Buffer pool bezieht und kein hartes RAM Limit ist, im Gegensatz zu der "maximum server memory" Einstellung, diese regelt so ab, als wenn kein weiterer Arbeitsspeicher mehr verfügbar wäre.
Sieht für mich bisher so aus das dies dann zum Absturz führt, da an sich 1GB+ als Buffer gefüllt wird aber kein Platz für irgendwas außer dem Buffer im RAM bleibt.
 
Zuletzt bearbeitet:

diun

Aktives Mitglied
16. Mai 2017
19
0
In der Grafik von Shopworker ist die Rede von "Maximum memory utilized per instance".
in den Microsoft Docs steht "Maximum memory for buffer pool per instance of SQL Server Database Engine".
Ein gravierender Unterschied.
Mal abgesehen davon das ich nicht unbedingt finde das 1GB = 1,376953125 GB ist.

Zu meiner eigentlichen Frage, ist das denn normal und so gewollt das die Wawi das beim Login setzt?
 

diun

Aktives Mitglied
16. Mai 2017
19
0
Weitere Tests mit frischer SQL und Wawi Installation in verschiedenen Versionen führten zum selben Resultat.
Deshalb ergeben sich folgende Fragen:

1. Wieso setzt die Wawi "Maximum server memory" auf diesen Wert, der nicht zu den Informationen und Empfehlungen von Microsoft passt? (Mal abgesehen von den weiteren Problemen verweigert es Express Nutzern auch den Zugriff auf ca. 40 Prozent mehr Arbeitsspeicher für den SQL)

2. Wieso wird so etwas bei Login gesetzt? Wenn es unbedingt sein muss, reicht es dann nicht bei Installation oder Upgrade? Das aktuelle Verhalten der Wawi verhindert eine meiner Meinung nach sinnvollere Einstellung.
 

diun

Aktives Mitglied
16. Mai 2017
19
0
Habe heute eine Antwort vom Support erhalten:
Guten Tag,

nach Rücksprache mit der Entwicklung ist das noch eine alte Einstellung, die mit Version 1.3.14 entfernt wird.
Aktuell haben wir Version 1.3.12 als stabile Version herausgebracht, es sollte somit nicht mehr allzu lange bis zu Version 1.3.14 dauern.

Kann zwar nicht nachvollziehen wie das eine alte Einstellung sein soll, da der Code ja genau auf die Versionsnummer der SQL 2016 Express zielt, aber immerhin ist eine Korrektur in Sicht,
danke.
 

MichaelH

Sehr aktives Mitglied
17. November 2008
14.630
1.962
Bin kein Experte, aber da es beim Client-Login ist, kann es bezogen auf die User-Session sein und nicht auf den Gesamtspeicher den der Server verwenden darf ?
Das macht ggf. ja Sinn, damit nicht 1 Client den ganzen Speicher frisst ?
 

diun

Aktives Mitglied
16. Mai 2017
19
0
Nein, es geht um dem maximum server memory wert vom SQL, der in den neueren Versionen ein hard Limit für die gesamte SQL Instanz ist, incl. allen caches etc.
Aber es ist ja nun geklärt, JTL wird es in der Version 1.3.14 fixen.
 

MichaelH

Sehr aktives Mitglied
17. November 2008
14.630
1.962
OK, danke !
Finde es wirklich kurios, dass ein ( WAWI) Client Einfluss auf die Server-Konfiguration hat.
Andererseits ist natürlich jeder DB-User ein Client, auch ein Admin, und muss alles verändern können. Da kann man einstellen was man will und der Client überschreibt es einfach ...
 

MartinK

Moderator
Mitarbeiter
5. Dezember 2013
79
14
Hallo, das ist tatsächlich ein Bug von uns. Wir hatten das vor langer Zeit eingebaut, da wir damals bei der Express Edition das Problem hatten, dass der SQL Server "zusätzlichen RAM" simuliert hat wenn es über die Express-Grenze geht. Diese Simulation fand aber auf der Festplatte stand, was zu massiven Performanceproblemen geführt hatte. Für die aktuellen Serverversionen ergibt diese Einstellung keinen Sinn mehr, wir haben aber leider übersehen, dass wir die Einstellung noch aktiv haben. Wir haben das für die 1.3.14.0 rausgenommen. Früher ging leider nicht mehr. Dass diese Einstellung auch für den aktuellen Server getroffen wird, kommt daher, dass wir das damals für alle Server die wir unterstützen eingebaut haben und das eine dynamische Liste ist.
 
  • Gefällt mir
Reaktionen: _simone_

_simone_

Sehr aktives Mitglied
17. Februar 2013
3.245
463
Emsland
Firma
Notun Delend
Tom: SQL-Server 2012 Lizenzen kannst du für ein paar Euro auf eBay kaufen ...
Michael, wenn du sehen würdest, wie unser System mit 8-9 Clients jetzt schon rennt...hier muß keiner unserer Mitarbeiter auf eine Serverantwort warten. (Nach wie vor: i7/DDR4/SSD/optimiertes Win7/managed Switch)

...aber irgendwann werde ich deinem Tipp nachkommen und echte Serversyteme für Erwachsene installieren.^^
 

MichaelH

Sehr aktives Mitglied
17. November 2008
14.630
1.962
Ich werde mal umstellen auf Server + SQL-Server, kostet in 2012er Versionen so gut wie nix und interessiert mich ... :) ... aktuell arbeiten wir auf einem Root-Server im Internet (mit RDP), ich hole mir die WAWI aber ins Haus zurück und der Root-Server ist dann das "Backup" und Spielwiese.
 

_simone_

Sehr aktives Mitglied
17. Februar 2013
3.245
463
Emsland
Firma
Notun Delend
Hallo, das ist tatsächlich ein Bug von uns. Wir hatten das vor langer Zeit eingebaut, da wir damals bei der Express Edition das Problem hatten, dass der SQL Server "zusätzlichen RAM" simuliert hat wenn es über die Express-Grenze geht. Diese Simulation fand aber auf der Festplatte stand, was zu massiven Performanceproblemen geführt hatte. Für die aktuellen Serverversionen ergibt diese Einstellung keinen Sinn mehr, wir haben aber leider übersehen, dass wir die Einstellung noch aktiv haben. Wir haben das für die 1.3.14.0 rausgenommen. Früher ging leider nicht mehr. Dass diese Einstellung auch für den aktuellen Server getroffen wird, kommt daher, dass wir das damals für alle Server die wir unterstützen eingebaut haben und das eine dynamische Liste ist.

Sehr schön. Endlich sind die 950MB Geschichte für die Express-User. Beim normalen Betrieb hat sich der Server nur so um die 900MB gesichert, aber beim Ameisenexport ging es dann auf Anschlag (1410MB).
Unbenannt.jpg
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu SQL-Server geht eine Stunde nach Allgemeine Fragen zu JTL-Shop 4
Neu Umzug SQL Datenbank auf neuen Server User helfen Usern - Fragen zu JTL-Wawi 2
Aktuelles Update 1.11.7: Anmeldedialog merkt sich den letzten User immer noch nicht & falsche Warnung für angeblich fehlendes SQL Server Update JTL-Wawi 1.11 3
Neu SQL Lagerbestand minus in Aufträgen Eigene Übersichten in der JTL-Wawi 1
Kundenstammdaten - "Eigenes Feld" in SQL auslesen JTL-Wawi 1.9 2
Neu Frage zu SQL Statement - Kunden-Kommentar aus Auftrag auf Pickliste User helfen Usern - Fragen zu JTL-Wawi 1
Neu Bestellungen werden verzögert oder nicht gepullt – Ursache: Zeitzonen-Filter im SQL des WooCommerce-Connectors WooCommerce-Connector 0
Neu Probleme mit Import Datenbank vom Server auf lokal JTL-Wawi 2.0 User helfen Usern - Fragen zu JTL-Wawi 4
BUG in 2.0.0 - Rest Api Server startet nicht. JTL APP nicht benutzbar JTL-Wawi 2.0 4
POS Server started nicht automatisch JTL-Wawi 2.0 0
Seit umzug auf neuen Server und vorherigem update auf 2.0, startet worker nicht... JTL-Wawi 2.0 4
Neu JTL WMS Mobile Server zeigt neuerdings ein DOS-Fenster JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 2
Neu Shipping Server Release 04.03.26 Gelöste Themen in diesem Bereich 1
JTL-WaWi 11.5 WMS Mobile Server sehr hohe CPU Auslastung JTL-Wawi 1.11 3
Neu POS-Server startet nicht mehr nach WaWi-update auf Version 1.11.6.0 JTL-POS - Fehler und Bugs 1

Ähnliche Themen