INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

TCP Verbindung, Datenverlust bei hoher Rechnerauslastung



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

15.03.2007, 14:59
Beitrag #1

astraios Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Mar 2006

8.5
2006
de

80937
Deutschland
TCP Verbindung, Datenverlust bei hoher Rechnerauslastung
Hallo,

ich hab ein mittelschweres Problem mit den TCP VIs:


Ich empfange Daten über eine TCP/IP Verbindung:

   


Dieses SubVI rufe ich in einer Endlosschleife auf, die die empfangenen Daten in einem Queue ablegt, aus dem sie von einer anderen Schleife kontinuierlich ausgelesen werden.
Mein Problem ist jetzt, dass mir bei hoher Prozessorauslastung (z.B. durch aufwendige Berechnungen im Programm) in dieser Zeit Daten "durch die Lappen gehen".
Wenn ich zur Simulation einer hohen Rechnerauslastung z.B. während der Ausführung das Frontpanel des Haupt-VIs mit dem Mausrad häufig nach oben und unten bewege (was das ganze VI ziemlich lahm legt), gehen meine empfangenen Daten für diesen Zeitraum quasi auf 0 zurück.

Woran kann das liegen und was kann ich dagegen tun? Eine etwas ruckelige Anzeige bei hoher Auslastung macht nix - aber der Datenverlust geht gar nich! Ist da ein Buffer zu klein? Ich kann den Server auch nicht auffordern, Daten erneut zu senden, da ich auf diesen keinen Einfluss habe...



Vielen Dank schonmal im Voraus für AntwortenWink


Viele Grüße

Robert

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.03.2007, 16:24
Beitrag #2

dc6xs Offline
registered alien
****


Beiträge: 762
Registriert seit: Aug 2006

6.1,7.00
2006
kA

79106
Sonstige
TCP Verbindung, Datenverlust bei hoher Rechnerauslastung
' schrieb:Dieses SubVI rufe ich in einer Endlosschleife auf, die die empfangenen Daten in einem Queue ablegt, aus dem sie von einer anderen Schleife kontinuierlich ausgelesen werden.
Hast Du in der Endlosschleife mal ne 1ms-Verzögerung ausprobiert? Sonst macht LV nämlich gerne mal 100% Systemlast!

Gruß, Rob

Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.

N.B.:
"Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.03.2007, 17:20 (Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2007 10:01 von eg.)
Beitrag #3

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
TCP Verbindung, Datenverlust bei hoher Rechnerauslastung
' schrieb:Hast Du in der Endlosschleife mal ne 1ms-Verzögerung ausprobiert? Sonst macht LV nämlich gerne mal 100% Systemlast!

Gruß, Rob


Braucht man nicht, die Schleife wird durch das TCP-Read abgebremst.

Ich würde mal einen grösseren Timeoutwert und Bytecount empfehlen. Auf die CPU Auslastung bei anderen Task-VIs achten. Insgesamt ist bei einem guten LV-Prog die CPU-Auslastung bei 2 bis 5 %. Auch wenn du das Fenster schnell bewegst, steigt sie bis 80%, da hast du immer noch genug CPU zum TCP-Lesen.

Gruss, Eugen

EDIT habe gerade ein Testprogrammchen geschrieben. Probiere es mal aus. Du kannst das Fenster bewegen wie du willst, es gibt keinen Datenverlust. Ach ja, du kannst die 100 ms Wartezeit auch weglassen um höhere Geschwindigkeiten zu ausprobieren.

EDIT EDIT EDIT
habe gerade festzgestellt, dass ich da falschen Timeout beim Lesen eingestallt hatte. Hier neue Screenshot und VI.


Angehängte Datei(en) Thumbnail(s)
   

Sonstige .vi  TCP_8_0.vi (Größe: 20,74 KB / Downloads: 170)

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.03.2007, 10:12
Beitrag #4

astraios Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Mar 2006

8.5
2006
de

80937
Deutschland
TCP Verbindung, Datenverlust bei hoher Rechnerauslastung
Vielen Dank für die Antworten... ich werd mal schauen, ob ich da noch was tunen kann. Ich benutz schon extra recht große Byteanzahl-Werte, um möglichst alle gerade verfügbaren Daten mit einem Schleifendurchlauf einzulesen...

Eine Prozessorauslastung von 2-5% wäre traumhaft für mich! Leider nicht machbar. Mein Programm muss live die Daten von mehreren CAN- und einem Flexray Bus aufzeichnen, grafisch darstellen und teilauswerten... ich bin froh, wenn mir 20% nach oben frei bleibenWink

Zum TCP: Kann es grundsätzlich sein, dass da Daten verloren gehen (Buffer Overflow oder ähnliches)? Wenn nicht, dann müsste ich den Fehler ja an einer anderen Stelle suchen.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.03.2007, 10:28
Beitrag #5

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
TCP Verbindung, Datenverlust bei hoher Rechnerauslastung
' schrieb:Eine Prozessorauslastung von 2-5% wäre traumhaft für mich! Leider nicht machbar. Mein Programm muss live die Daten von mehreren CAN- und einem Flexray Bus aufzeichnen, grafisch darstellen und teilauswerten... ich bin froh, wenn mir 20% nach oben frei bleibenWink


Achte auf die grafische Darstellung deiner Daten, die verbraucht am meisten CPU. Wichtig: du musst nicht mit jedem Datensatz deine Grafiken updaten!
10 Hz würden für die Darstellung ausreichen.

Gruss, Eugen

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.03.2007, 10:31 (Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2007 10:31 von eg.)
Beitrag #6

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
TCP Verbindung, Datenverlust bei hoher Rechnerauslastung
' schrieb:Zum TCP: Kann es grundsätzlich sein, dass da Daten verloren gehen (Buffer Overflow oder ähnliches)? Wenn nicht, dann müsste ich den Fehler ja an einer anderen Stelle suchen.

Kann ich nicht genau sagen. Man muss ja dein Programm kennen. Aber zum Datenverlust kann es bei jeder Schnittstelle kommen. TCP ist eigentlich eine klevere Sache, es ist verbindungsorientiert. Such nach deinem Fehler weiter. Viel Glück.

Eugen

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.03.2007, 11:02
Beitrag #7

astraios Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Mar 2006

8.5
2006
de

80937
Deutschland
TCP Verbindung, Datenverlust bei hoher Rechnerauslastung
OK, vielen Dank für die Hilfe. Ich werd mal schauen, was ich noch machen kann. Wird schon irgendwie gehen (muss jaWink).

Ein schönes Wochenende wünsch ich! Smile

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.03.2007, 11:29
Beitrag #8

dc6xs Offline
registered alien
****


Beiträge: 762
Registriert seit: Aug 2006

6.1,7.00
2006
kA

79106
Sonstige
TCP Verbindung, Datenverlust bei hoher Rechnerauslastung
' schrieb:Kann ich nicht genau sagen. Man muss ja dein Programm kennen. Aber zum Datenverlust kann es bei jeder Schnittstelle kommen. TCP ist eigentlich eine klevere Sache, es ist verbindungsorientiert. Such nach deinem Fehler weiter. Viel Glück.

Eugen

Vielleicht macht das Betriebsysteme da ja auch Probleme bei TCP?
Weiss leider nicht wie man bei Windows die Buffergröße des TCP-Stacks vergrößern kann.

Eventuell ist es auch hilfreich sich den TCP-Verkehr im LAN mittels WireShark oder Ähnlichen Tools anzusehen.

Gruß, Rob

Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.

N.B.:
"Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datenverlust in XY Graph beim automatischen Beenden des Programms Atlaspremier 6 4.397 24.08.2016 11:27
Letzter Beitrag: Freddy
  Rechnerauslastung reduzieren ThePinkBrain 1 3.117 06.08.2010 09:29
Letzter Beitrag: A.Berndsen
  Rechnerauslastung gomark_de 5 4.812 08.12.2006 13:45
Letzter Beitrag: Y-P
  Bild in hoher Qualität abspeichern Nano 14 8.737 27.11.2006 15:27
Letzter Beitrag: Nano

Gehe zu: