ADS Auslastung

Advantage Database Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

ADS Auslastung

Beitrag von Jan »

Moin,

gibt es irgend eine Möglichkeit festzustellen, welcher User oder Client den ADS knechtet?

Situation: Der ADS ist auf einem eigenen Server Windows 2016 installiert. Da läuft nichts anderes drauf. Seit einigen Tagen ist der Netzwerktraffik extrem hoch, zu erkennen am Taskmanager und an Netzerktools. Es wäre gut zu wissen wer das auslöst, oder welche Prozesse.

Ansonsten verhält der ADS sich relativ unauffällig. Der Taskmanager sagt mir das der 1,7 von 8 GB RAM nutzt, und der Prozessor sich meist um die 50% Auslastung bewegt.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von Tom »

Wenn der Netzwerktraffic und einzelne Auslastungen in die Höhe gehen, würde ich erstmal ProcMon und FileMon darauf ansetzen. www.sysinternals.com
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von Jan »

Hallo Tom,

gute Idee. Das Problem ist nur daß das natürlich extrem mächtige Werkzeuge sind, mit entsprechend vielen Datenmengen bzw. Konfigurationsschritten. Von daher hatte ich gehofft das es irgend welche ADS-Bordmittel gibt, mit denen man sowas grob auslesen kann.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von Tom »

Hallo, Jan.

Bei ProcMon und FileMon sind vor allem die Filter entscheidend. Wenn Du auf Pfade/Anwendungen eingrenzt, werden die Informationen auch verständlicher.

Ansonsten hat die ADS-API einige Funktionen. Wir haben auf dieser Basis mal eine Serverkonsole entwickelt, die in der Anwendung Auskunft über alles mögliche liefert (Connections, geöffnete Tabellen, Verarbeitungsmenge), aber Auslastungsdaten waren m.E. nicht dabei:
https://devzone.advantagedatabase.com/d ... ctions.htm
Herzlich,
Tom
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von nightcrawler »

Hallo Jan,
Du könntest bei niedriger und bei hoher Belastung mal die aktuellen Internals auslesen und vergleichen. Einfach folgendes Script zum sichern der internen Informationen laufen lassen:

Code: Alles auswählen

declare @s string;
declare @err string;
@err=(select value from (execute procedure sp_mggetconfiginfo()) mg where item like 'Error Log Path');
@err=trim(@err)+'\ads_err.adt';
@s=replace(replace(replace(cast(now() as sql_char),':','-'),' ','-'),'.','-');
execute immediate 'select * into ['+@s+'\ads_err] from ['+trim(@err)+']';
execute immediate 'select * into ['+@s+'\ActivityInfo] from (EXECUTE PROCEDURE sp_mgGetActivityInfo()) a;';
execute immediate 'select * into ['+@s+'\UsageInfo] from (EXECUTE PROCEDURE sp_mgGetUsageInfo()) a;';
execute immediate 'select * into ['+@s+'\CommStats] from (EXECUTE PROCEDURE sp_mgGetCommStats()) a;';
execute immediate 'select * into ['+@s+'\ConnectedUsers] from (EXECUTE PROCEDURE sp_mgGetConnectedUsers()) a;';
execute immediate 'select * into ['+@s+'\SQLStatements] from (EXECUTE PROCEDURE sp_GetSQLStatements()) a;';
execute immediate 'select * into ['+@s+'\ConfigMemory90] from (EXECUTE PROCEDURE sp_mgGetConfigMemory90()) a;';
execute immediate 'select * into ['+@s+'\CacheInfo] from (EXECUTE PROCEDURE sp_mgGetCacheInfo()) a;';
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von Jan »

Tom,

solch eine ADS-Konsole habe ich auch mal geschrieben. Besonders interessant sind da die Angaben, wer gerade welchen Satz sperrt. Was man ja sonst eher nicht herausbekommen kann. Aber ich kann mich nicht erinnern da irgend was zu Auslastungen gelesen zu haben in der Doku - wobei das auch schon ein paar Jahre her ist. Vielleicht sollte ich da noch mal einen Blick rein werfen.

Im ProcMon habe ich übrigens ganz auf die Schnelle zumindest gesehen, das eine Vielzahl der Zugriffe immer auf die gleiche Tabelle geht. Das wäre schon mal ein erster Ansatzpunkt, wo ich suchen könnte.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von Jan »

Joachim,

sieht etwas aufwändiger aus. Danke für die Mühe.

Aber leider gibt mir das sofort eine Fehlermedlung aus:

Code: Alles auswählen

poQuery: Error 7200:  AQE Error:  State = HY000;   NativeError = 7016;  [SAP][Advantage SQL Engine][ASA] Error 7016:  Corrupt table.  Make sure you are not attempting to open a DBF with an ADT table type or vice versa.  C:\ADS-Log\ads_err.adt Table name: 
C:\ADS-Log\ads_err.adt  - EXECUTE IMMEDIATE  -- Location of error in the SQL statement is: 273 (line: 6 column: 19)
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von Tom »

Die API liefert Dir die gleichen Daten, die die Requests liefern, die Joachim gepostet hat. CommStats und CacheInfo liefern leider nichts, mit dem Du weiterkämst.
Herzlich,
Tom
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von Marcus Herz »

im Arc gibt es ein Register in der Management Seite: Active queries. Vielleicht kannst du da ja sehen, wer gerade Performance beansprucht.
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von Jan »

Marcus,

das ist leer. Weil wir per DB-Funktionen auf FOXCDX gehen? Kein SQL machen?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von Marcus Herz »

bleibt die Auslastung so hoch, wenn du mal neu startest? (Ich wei0, das kann man im produktiv system nicht so ohenweiteres, aber einmal muss es halt doch sein)
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von Jan »

Marcus,

ja, das hatte ich für morgen früh um 5:00 Uhr geplant - dann bin ich ohnehin wach, und egal wie lange die Kunden abends oder nachts noch auf den Systemen rumturnen, so früh morgens bin ich da immer alleine :-D

Ich befürchte aber daß das nicht so viel bringen wird. Lt. dem Admin sind die Netzerwerkwerte auf diesem Server seit gut zwei Wochen so hoch. Und ich hatte den Server zwischendurch wegen der MS-Updates schon mal neu gestartet. Was keine Delle in der Kurve verursacht hat. Aber versuchen wollte ich das natürlich trotzdem.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von Marcus Herz »

dann hilft nur ein Netzwerk Sniffer. Am Ende hats gar nichts mit dem ADS zu tun, Wenn in der Früh um 5:00 niemand auf dem ADS ist, warum dann Netzwerktraffic?? da ist doch was anderes faul!
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von Jan »

Marcus,

Mißverständnis. Nachts dümpelt der Server nur vor sich hin mit 24/7-Programmen. Heftig wird das tagsüber wenn die Mitarbeiter da drauf rumturnen zu ihren normalen Arbeitszeiten.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: ADS Auslastung

Beitrag von nightcrawler »

Jan hat geschrieben: Mi, 24. Mär 2021 12:39 Aber leider gibt mir das sofort eine Fehlermedlung aus:

Code: Alles auswählen

poQuery: Error 7200:  AQE Error:  State = HY000;   NativeError = 7016;  [SAP][Advantage SQL Engine][ASA] Error 7016:  Corrupt table.  Make sure you are not attempting to open a DBF with an ADT table type or vice versa.  C:\ADS-Log\ads_err.adt Table name: 
C:\ADS-Log\ads_err.adt  - EXECUTE IMMEDIATE  -- Location of error in the SQL statement is: 273 (line: 6 column: 19)
Verbinde Dich mit einer Connection vom Type ADT ;)
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Antworten