Hi,
habe in paar Geschwindigkeits- und CPU-Lastprobleme mit der Übertragung von Daten übers Netzwerk. Ich denke es liegt an den Socket Sende/Empfangspuffergrößen. Hab ne ganze Menge gelesen und bin zum Schluss gekommen, dass das eigentlich
die einzigen Faktoren sind, um die ich mir noch keine gedanken gemacht hab. Der Ablauf des Programms ist ansich soweit ausgereift und ich finde auch keine Stellen mehr, wo man evt. optimieren könnte... Ich benutze zur Zeit standard Puffergrößen von jeweiles 8192 byte. Der folgende Artikel erklärt die Gefahr bei falsch gewählten Puffergrößen recht gut.
http://publib.boulder.ibm.com/infoc...e.express.doc/info/exp/ae/tprf_tunetcpip.html
Besonders interessant fand ich folgenden Satz:
"Die Flusssteuerung kann eine beträchtliche Menge an CPU-Zeit beanspruchen und aufgrund der Unterbrechungen der Datenübertragung zu einer höheren Latenzzeit im Netz führen."
Ich glaube, dass bei mir genau dieses Problem auftritt. Ich benutze Apache Mina, wodurch eine solide und flotte Basis gegeben ist.
Jetzt meine Frage: Kennt ihr das Problem ? Hohe CPU Last beim simplen übertragen von Dateien ? Oder generell zu langsame Übertragungen ?
Außerdem ist mri aufgefallen, dass das Problem mit der hohen CPU Last auf jeden Fall Software bedingt ist. (Nein, ich habe keine REALTEK Netzwerkkarte
Sondern eine gute Intel... Daran liegts nicht) Vorallem, weil der Explorer bei Übertragungen nicht mehr als 4 % benutzt, und mein Java Progamm 60 % auf allen 4 Kernen... Und das bei einem QuadCore ?! Naja, ich weiß nicht...
Dachte erst an einem Programmierfehler, ist aber unwahrscheinlich. Hab den Test mal mit dem Apache Mina FTP Server wiederholt. Selbes Resultat! Entweder ist das ne Schwachstelle in Java (Stichwort MultiCore.. Ich habe ehrlich gesagt keine Ahnung inwiefern Java das kann oder auch nicht...), oder der FTP Server von Apache hat auch Standardpuffergrößen... Sofern das wirklich das Problem ist! Das Problem ist bei mir damals schonmal aufgetreten. Da hatte ich aber noch nen alten PC und dachte es läge iwie daran... War wohl ein Fehler...
Wie wählt ihr Puffergrößen ? Oder kennt ihr diese Probleme garnicht ? Woran könnte es liegen, wenn ihrs nicht kennt ?
Danke schonmal
Gruß,
Chris
habe in paar Geschwindigkeits- und CPU-Lastprobleme mit der Übertragung von Daten übers Netzwerk. Ich denke es liegt an den Socket Sende/Empfangspuffergrößen. Hab ne ganze Menge gelesen und bin zum Schluss gekommen, dass das eigentlich
die einzigen Faktoren sind, um die ich mir noch keine gedanken gemacht hab. Der Ablauf des Programms ist ansich soweit ausgereift und ich finde auch keine Stellen mehr, wo man evt. optimieren könnte... Ich benutze zur Zeit standard Puffergrößen von jeweiles 8192 byte. Der folgende Artikel erklärt die Gefahr bei falsch gewählten Puffergrößen recht gut.
http://publib.boulder.ibm.com/infoc...e.express.doc/info/exp/ae/tprf_tunetcpip.html
Besonders interessant fand ich folgenden Satz:
"Die Flusssteuerung kann eine beträchtliche Menge an CPU-Zeit beanspruchen und aufgrund der Unterbrechungen der Datenübertragung zu einer höheren Latenzzeit im Netz führen."
Ich glaube, dass bei mir genau dieses Problem auftritt. Ich benutze Apache Mina, wodurch eine solide und flotte Basis gegeben ist.
Jetzt meine Frage: Kennt ihr das Problem ? Hohe CPU Last beim simplen übertragen von Dateien ? Oder generell zu langsame Übertragungen ?
Außerdem ist mri aufgefallen, dass das Problem mit der hohen CPU Last auf jeden Fall Software bedingt ist. (Nein, ich habe keine REALTEK Netzwerkkarte
Dachte erst an einem Programmierfehler, ist aber unwahrscheinlich. Hab den Test mal mit dem Apache Mina FTP Server wiederholt. Selbes Resultat! Entweder ist das ne Schwachstelle in Java (Stichwort MultiCore.. Ich habe ehrlich gesagt keine Ahnung inwiefern Java das kann oder auch nicht...), oder der FTP Server von Apache hat auch Standardpuffergrößen... Sofern das wirklich das Problem ist! Das Problem ist bei mir damals schonmal aufgetreten. Da hatte ich aber noch nen alten PC und dachte es läge iwie daran... War wohl ein Fehler...
Wie wählt ihr Puffergrößen ? Oder kennt ihr diese Probleme garnicht ? Woran könnte es liegen, wenn ihrs nicht kennt ?
Danke schonmal
Gruß,
Chris