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.651
1.967
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.651
1.967
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.651
1.967
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 Dedicated SQL Server am Limit Merkmale Betrieb / Pflege von JTL-Shop 1
ändern von Servernamen nach Neuinstallation von SQL und Verbindung mit neuem Server in der Wawi JTL-Wawi 2.0 2
welche Microsoft SQL Server Version läuft am stabilsten? JTL-Wawi 2.0 2
Neu MS Server und MS SQL Installation von JTL-Wawi 5
Für Ihren SQL-Server wurde ein Service Pack zur Verfügung gestellt - nö, gelogen, wie kriege ich die Meldung weg? JTL-Wawi 1.11 15
Keine Rückmeldung in JTL Wawi sobald SQL Server Memory durch Database Cache ausgeslastet ist JTL-Wawi 2.0 9
Update auf 1.11 verlangt ein Update auf aktuelleren SQL Server JTL-Wawi 1.11 7
Neu SQL-Server geht eine Stunde nach Allgemeine Fragen zu JTL-Shop 4
Neu Arbeiten mit Lieferanten EKs - Workflows und SQL User helfen Usern - Fragen zu JTL-Wawi 6
Neu JTL → Shopify Connector: MappingTablesException / „Endpoint id is empty“ – betroffene Artikel aus Logs per SQL finden Shopify-Connector 2
WMS Lagerbestand Bezeichnung in SQL Datenbank JTL-Wawi 1.11 2
Wawi Meldung SQL Servicepack zu installieren - aber welches? Update SQL2022 CU24 nicht möglich JTL-Wawi 1.11 6
CSV Exportvorlage - SQL Abfrage Eigenes Feld JTL-Wawi 2.0 4
Neu SQL Lagerbestand minus in Aufträgen Eigene Übersichten in der JTL-Wawi 4
Neu S360 Custom Sort: „Request error: parsererror" – Solution360-Server nicht erreichbar? Plugins für JTL-Shop 3
Keine Datenübertragung trotz bestehender Verbindung und funktionierendem Server JTL-Wawi 2.0 35
Update 2.0.3 POS Server Einrichtung JTL-Wawi 2.0 1
Update 2.0.2. WMS Mobile Server JTL-Wawi 2.0 9
Neu Probleme mit Import Datenbank vom Server auf lokal JTL-Wawi 2.0 User helfen Usern - Fragen zu JTL-Wawi 4

Ähnliche Themen