Services
SAP NetWeaver AS ABAP
Nach Abschluss einer Transaktion muss ein SAP-Workprozess, der SAP Heap Memory allokiert hat, diesen wieder freigeben. Dies wird technisch so gelöst, dass der Workprozess neu gestartet wird, sofern der allokierte Speicher den Wert abap/heaplimit überschreitet. Allokiert der Workprozess weniger SAP Heap Memory, wird der Speicher zwar in ABAP freigegeben (d. h., er kann von der nächsten Transaktion wiederverwendet werden), nicht aber auf der Ebene des Betriebssystems. Der Neustart von Workprozessen ist in diesem Fall also durchaus erwünscht. Der entsprechende Eintrag im SAP-SysLog (Transaktionscode SM21) darf daher nicht als Fehlermeldung verstanden werden, sondern nur als Information.
Weiter unten finden Sie die statistischen Daten, die Ihnen Auskunft über die Performance des SAP-Systems und über mögliche Ursachen von Performanceproblemen geben. Wählen Sie die Analysesicht Systemlastübersicht im linken unteren Fenster, sind die Statistiken für Antwortzeiten und Durchsatzzahlen nach den unterschiedlichen Task-Typen aufgeschlüsselt. Die Task-Typen korrespondieren im Wesentlichen mit den Workprozess- Typen Dialog, Update, Update2, Background und Spool. Der Workprozess- Typ Dialog wird jedoch weiter aufgegliedert in die Task-Typen Dialog, RFC, AutoABAP, Buffer Sync etc..
Planung der SAP-Milieus
Beim Wechsel der Datenbank- oder Hardwareplattform, d. h. dem Wechsel des Betriebssystems oder des Hardwareherstellers, ist eine Migration nötig. Es gibt keine allgemeinen Aussagen, dass sich mit einem solchen Wechsel der CPU- oder Hauptspeicherbedarf verändert – dennoch ist es auch nicht auszuschließen. Bei einem solchen Wechsel wird kein erneutes Sizing durchgeführt, es sollte allerdings durch eine Analyse der bestehenden Last im Produktivsystem sichergestellt werden, dass das zu migrierende System nicht bereits am Rande der Kapazitätsgrenze läuft.
Eine Performanceanalyse mit dem Debugger nehmen Sie wie folgt vor: Starten Sie das zu untersuchende Programm in einem zweiten Modus in der Workprozess-Übersicht (Transaktion SM50). Aus der WorkprozessÜbersicht gelangen Sie mit der Funktion Debugging in den Debugger. Indem Sie mehrfach hintereinander in den Debugger springen, können Sie die Coding-Stellen im Programm mit hohem CPU-Bedarf identifizieren. Oft sind dies LOOP ... ENDLOOP-Schleifen über große interne Tabellen. Den aktuellen Hauptspeicherbedarf erhalten Sie (im »klassischen« Debugger) mit der Funktion Springen > Weitere Bilder > Speicherverbrauch. Prüfen Sie, ob ein Programmfehler oder eine Fehlbedienung des Programms vorliegt, sodass übermäßig viel Speicher angefordert wird. Als Richtwert mag Ihnen dienen, dass ein Programm, das im Dialogbetrieb von mehreren Benutzern ausgeführt wird, nicht mehr als 100MB allokieren sollte. Zur Erstellung einer Liste der im Speicher gehaltenen Objekte des Programms navigieren Sie im »klassischen« Debugger ab SAP NetWeaver AS ABAP 6.20 mit Springen > Zustandsanzeigen > Speicherverbrauch. Auf der Registerkarte Speicherverbrauch > Ranglisten finden Sie eine Liste von Objekten und deren Speicherverbrauch. In den Versionen AS ABAP 4.6 und 6.10 gelangen Sie zu einer Speicherverbrauchsliste über den Pfad Springen > System > Systembereiche. Geben Sie im Feld Bereich »ITAB-TOP25« ein. Sie erhalten so eine Liste der 25 größten internen Tabellen. Im »neuen« Debugger blenden Sie zunächst das Speicheranalyse-Werkzeug ein, indem Sie auf die Schaltfläche für ein neues Werkzeug klicken und dann unter den angebotenen Werkzeugen im Ordner Speicherverwaltung die Speicheranalyse auswählen. Auf dem Eingangsbildschirm wird daraufhin angezeigt, wie viel Speicher vom analysierten internen Modus allokiert bzw. verwendet wird. Auf der Registerkarte Speicherobjekte finden Sie eine Liste der größten Speicherobjekte – das können interne Tabellen, Objekte, anonyme Datenobjekte oder Strings sein.
Für Administratoren steht im Bereich der SAP Basis ein nützliches Produkt - "Shortcut for SAP Systems" - zur Verfügung.
Wenn Sie die Funktionalitäten von Open SQL und Open CDS ausreizen, müssen Sie (mit realistischen Datenmengen) vermessen, ob die gewünschte Performance erreicht wird.
Einige nützliche Tipps aus der Praxis zum Thema SAP Basis finden Sie auch auf der Seite www.sap-corner.de.
Ist einmal festgelegt, welche Tabelle bzw. Partition einer Tabelle auf einem bestimmten Knoten liegt, legt dies auch fest, auf welchem Knoten die Anfrage bearbeitet wird.