VPS (von mql.5) Server gewechselt, seitdem CPU Auslastung > 80%

 

Hallo,

ich habe am Wochenende den Server meines VPS gewechselt weil ich unzufrieden war, dass die Migration zu lange gedauert hat und öfter einfach abgebrochen ist. 

Den vorherigen Serverhatte ich seit mehreren Monaten und die CPU-Auslastung lag bei etwa 10%.


Mit dem selben Setup (32 Plätze, Multi-Currency, Multi Strategy) habe ich beim jetzigen Servereine CPU-Auslastung von > 80% in ruhigen Phasen. Ich könnte mir vorstellen, dass bei volatilem Markt die Auslastung an der 100%-Marke anschlägt.

Hat vielleicht jemand einen Tipp, wie ich die Auslastung reduzieren könnte?

Den Timer für das OnTimer Event habe ich bereits hochgesetzt. Eine leichte Verbesserung hat sich gezeigt, aber immer noch deutlich zu hoch (aus meiner Sicht).

Danke, für Eure Tipps!

Gruß

Werner

 
fintrad0:

Hat vielleicht jemand einen Tipp, wie ich die Auslastung reduzieren könnte?

Kennst du den Profiler?

https://www.metatrader5.com/de/metaeditor/help/development/profiling

Code-Profiling - Programme entwickeln - MetaEditor Hilfe
Code-Profiling - Programme entwickeln - MetaEditor Hilfe
  • www.metatrader5.com
Profiling bedeutet das Sammeln von Programmparametern während der Ausführung. Während eines Profiling werden die Ausführungszeit und die Anzahl der Aufrufe einzelner Funktionen und Programmcode-Zeilen erfasst. Mit diesem Tool ist der Programmierer in der Lage, die langsamsten Codeabschnitte zu finden und zu optimieren. Das Profiling kann sowohl...
 
Christian:
Kennst du den Profiler ?

Hallo Christian,

nein, Profiler sagt mir nichts. Was ist das?

Gruß Werner

 
fintrad0:

Hallo Christian,

nein, Profiler sagt mir nichts. Was ist das?

Gruß Werner

Du warst zu schnell....lies mal hier https://www.metatrader5.com/de/metaeditor/help/development/profiling
Code-Profiling - Programme entwickeln - MetaEditor Hilfe
Code-Profiling - Programme entwickeln - MetaEditor Hilfe
  • www.metatrader5.com
Profiling bedeutet das Sammeln von Programmparametern während der Ausführung. Während eines Profiling werden die Ausführungszeit und die Anzahl der Aufrufe einzelner Funktionen und Programmcode-Zeilen erfasst. Mit diesem Tool ist der Programmierer in der Lage, die langsamsten Codeabschnitte zu finden und zu optimieren. Das Profiling kann sowohl...
 

Du musst die OnTick() so klein wie möglich machen.

Eventuell Pointer benutzen.

Wenig rum Kopieren .....


Das sind so die Tipps.


Versuche es mal mit dem Profiler. Finde den Code der viel CPU-Zeit frisst und reduziere ihn.

Oder poste ihn wir helfen dir.

 
Christian:
Du warst zu schnell....lies mal hier https://www.metatrader5.com/de/metaeditor/help/development/profiling

Danke, Christian. Das werde ich mal durchackern.

Trotzdem, wenn das selbe Setup (monatelang CPU < 15%) auf einem anderen Server diese Änderung verursacht, tippe ich auf den Server als Ursache.

Gruß Werner

 
fintrad0:

Danke, Christian. Das werde ich mal durchackern.

Trotzdem, wenn das selbe Setup (monatelang CPU < 15%) auf einem anderen Server diese Änderung verursacht, tippe ich auf den Server als Ursache.

Gruß Werner

Meine ehrliche Meinung ..ja stimmt. Nutze eine ECHTEN VPS ....!

Kann aber auch ein Update von MQ das verursachen ?

 
Christian:

Du musst die OnTick() so klein wie möglich machen.

Eventuell Pointer benutzen.

Wenig rum Kopieren .....


Das sind so die Tipps.


Versuche es mal mit dem Profiler. Finde den Code der viel CPU-Zeit frisst und reduziere ihn.

OnTick nutze ich hier nicht, sondern OnTimer (100 Milisekunden). 

Danke, für Deine Tipps. Das werde ich so machen.

Schönen Tag noch!

Werner

 
Christian:

Meine ehrliche Meinung ..ja stimmt. Nutze eine ECHTEN VPS ....!

Kann aber auch ein Update von MQ das verursachen ?

Noch ein kurzer Nachtrag für alle, die mal über diesen Beitrag stolpern:

Dank Christian habe über das Profiling die Performance-Bremser gefunden und weitestgehend beseitigen können.

Nachdem ich ein paar nicht unbedingt notwendige "RefreshRates()" entfernt habe, sank die CPU-Auslastung von 75% auf 30%.

Grund der Beschwerde: