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.445
1.875
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.445
1.875
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.445
1.875
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
Update SQL Server Management Studio JTL-Wawi 1.10 1
Neu Täglich SQL Backup vom Shop Allgemeine Fragen zu JTL-Shop 2
Kann ich mit dieser SQL Version die neue WaWi 1.11.1 installieren? JTL-Wawi 1.11 2
Neu Kundengruppe per SQL löschen User helfen Usern - Fragen zu JTL-Wawi 3
Neu Sql Express 2022 - wawi sagt beim Start es ist ein Update bereit - gelöst Installation von JTL-Wawi 3
Neu Extern erstelltes SQL - Angebot falsche Werte User helfen Usern - Fragen zu JTL-Wawi 3
Neu In welcher SQL Tabelle finde ich den Ansprechpartner des Herstellers? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Seriennummern und SQL Abfragen User helfen Usern - Fragen zu JTL-Wawi 1
Neu Einrichtung SQL in neuem Rechner funktioniert nicht Installation von JTL-Wawi 3
Neu SQL Code für GPSR Felder (Kaufland) zeigt Fehler + wird daher nicht übertragen kaufland.de - Anbindung (SCX) 0
Neu SQL für noch nie Verkaufte Artikel auf Marktplätzen. User helfen Usern - Fragen zu JTL-Wawi 3
Neu Update von 1.5.55.5 auf aktuell, welche Reihenfolge, SQL Express auf Standard Installation von JTL-Wawi 10
Neu PayPal - PayPal Checkout - 221 – SQL Fehler Plugins für JTL-Shop 0
JTL WMS Server startet nicht JTL-Wawi 1.11 2
Neu JTL Shipping Server nicht erreichbar JTL-ShippingLabels - Fehler und Bugs 19
Vote für debugging des Mobile Server Fehlers JTL-Wawi 1.11 1
WMS Mobiler Server startet nach Update nicht mehr JTL-Wawi 1.11 12
Neu JTL-Shipping Server nicht Erreichbar JTL-ShippingLabels - Fehler und Bugs 2
Neu POS Server JTL Wawi 1.10.14.0 Einrichtung / Updates von JTL-POS 1
Neu Nach Windows update auf dem Server keine Verbindung mehr zur Datenbank JTL-Wawi - Fehler und Bugs 4
Keine Verbindung zwischen Kasse und Server möglich JTL-Wawi 1.10 2
Neu Update auf Shop 5.5.3: Immer 500 Internal Server ERror JTL-Shop - Fehler und Bugs 1
Neu Server Error 500 nach dem Installieren von JTL Theme Editor Plugins für JTL-Shop 3
Neu Backup auf anderen Server umziehen Allgemeine Fragen zu JTL-Shop 0
Neu Hetzner Managed Server Allgemeine Fragen zu JTL-Shop 2

Ähnliche Themen