Wo läuft was????

  • Moinsen,
    ich oute mich mal. Ich Verstehe folgendes nicht wirklich:
    Server = S:
    Localer Rechner = L.

    Auf dem Server liegt ein Autoit Programm (exe) sammt "Hilfsprogrammen". Pfad S:\test\text.exe. Dieses wird vom localen Rechner gestartet. Innerhalb des Autoit Programmes werden diverse "andere Programme" aufgerufen, immer irgendetwas "scriptfähiges". Diese Programme liegen unter S:\Test\hilfp\...... Unter anderem werden via Autoit Dateien vom Server S in ein Verzeichnis S:\Test\Temp\.. kopiert. Diese Befehle sind so aufgebaut, dass bei einem anderen "Startort immer das gleiche "Relativverzeichnis" genommen wird. Kopiert man also das Test Verzeichnis nach L:\ werden die Dateien eben nach L:\Test\Temp\... kopiert . Also @StartupDir\.....

    Soweit so gut. Nun sollte nach meinem Verständnis ein kopieren von Dateien von S:\a\ab\..... nach S:\Test\Temp schneller gehen, wenn das Autoit Programm auf dem Server liegt, und von L gestartet wird, als wenn das autoit Programm auf L liegt. Denn dann kopiere ich ja von S:\... nach L:\ und nicht von S:\ nach S:\

    Aber irgendwie scheint das nicht so zu sein..

    Gleiches gilt für einen Aufruf (runwait) eines "Hilfsprogrammes. Dieses wird auf S:\Test\hilfp\print.exe aufgerufen bekommt als Parameter den Pfad zu den Temp Dateien auf S:\ um diese Dateien zu verarbeiten und das Ergebnis wieder auf S: zu speichern. Sollte doch "flutschen" tut es aber nicht. Funktioniert zwar, aber "langsam". Viel schneller geht das wenn das Test Verzeichnis auf L Liegt, und alles auf L verarbeitet wird, obwohl die Dateien alle übers Netz gezogen werden ( pro Aufruf ca 100 kleine Dateien zwischen 4 un 40 K)

    EIn Arbeitsverzeichnis ist im runwait aufruf nicht abngegeben. Kann es sein, dass wenn dieses nicht angegeben ist, das Arbeitsverzeichnis auf dem "Startrechner" liegt, und die Dateien trotzdem "temporär" hin und her kopiert werden?

    So ich hoffe das ist halbwegs verständlich formuliert.


    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

    • Offizieller Beitrag

    Das ist jetzt schwer zu verstehen, aber falls ich das richtig verstanden habe, dann spielt es doch keine Rolle, wo das Programm liegt, sondern auf welchem Rechner es ausgeführt wird.
    Wenn es auf dem lokalen Rechner läuft, dann wandern die Daten immer S -> L -> S. Das würde nur schneller gehen, wenn auf dem Server ein "Kopier-Script" läuft, das vom lokalen Rechner Kopierbefehle ausführen kann.

  • Das kenne ich doch irgendwo her. Ich hatte damals das Problem, das ich ein Programm vom S zum L kopiert und dann es dann auf dem L aufgerufen habe. Das wollte so nicht starten und das Programm soll nicht auf L gewesen sein. Das war aber Unsinn, denn es wurde ja kopiert und war auch im Ordner zu finden.
    Die Lösung war, den Kopiervorgang mehr Zeit zu geben, in dem ich ein Sleep dazwischen gesetzt habe.

    Wenn Du misst, dann setze doch mal nach dem Kopiervorgang ein Zeitstempel (nennt sich so die Zeit aktuell?) in eine Textdatei und dann lass alles weitere so lange laufen, bis Du din zweiten Zeitstempel setzen kannst. Danach die Zeiten vergleich. Vielleicht hilft das Dir.

    Hoffe ich habe es dann auch richtig verstanden, wo Dein Problem liegt.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hallo Oscar,
    das ist so ungefähr das was ich befürchtet habe. Stat ein S-S ein S-L-S.
    Was verstehst Du unter einem Kopierscript?

    Würde es helfen wenn man bei Aufrufen von runwait als Arbeitsordner s:\Temp\hilf vorgeben würde?
    ---------
    @ Alina Danke ich habe kein Problem, dass es nicht funktioniert, sondern es ist alles merkwürdig langsam, wo es eigentlich schneller sein sollte. Das mit dem sleep (nenne ich immer Sleep ; Angst) :) hilft - da hast Du recht....

    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Da du nicht besonders eindeutig bist wenn es um die Problembeschreibung geht...

    Ich nehme an, dass:

    - S:\ ein verbundenes Netzlaufwerk auf einem Dateiserver ist
    - L:\ ist eine lokale Festplatte oder ebenfalls ein Netzlaufwerk?

    Wie dem auch sei... du schreibst, dass es gerademal 100 Dateien mit einer Gesamtgröße von unter 4 Megabyte sind. Da sollt ein Kopiervorgang selbst über ein Netzlaufwerk noch schnell arbeiten.

    Wie ist der Server angebunden? Reden wir hier von einem lokalen Netzwerk mit mindestens 100mbit oder reden wir hier von einer Internetanbindung zwischen zwei Standorten via VPN? Bei letzterem ist es natürlich stark davon abhängig über wieviel Up/Download Client und Server Standort verfügt. Hier kann die Übertragung von ca. 4mb dann durchaus etwas länger dauern.

    Weitere Bremsen können Virenscanner sein, welche beim Nachladen von Daten via Netzlaufwerk genauer hinschauen.

    Grundsätzlich denke ich auch, dass ein Kopieren von S:\ nach S:\ nur dann schneller geht wenn es sich nicht um Netzlaufwerke handelt, also der Kopiervorgang wirklich lokal auf dem Server abläuft. Bei einem Netzlaufwerk werden die Daten denke ich zuerst in den Speicher des lokalen Rechners kopiert und von dort wieder zum Netzlaufwerk hochgeladen. Ein lokales Kopierscript wäre z.B. wenn auf dem Server ein Script laufen würde, welches von deinem Anwenderscript Comandos entgegennimmt und diese dann lokal auf dem Server ausführt. Alles was ein Anwender vom Netzlaufwerk startet läuft nicht auf dem Server, sondern auf dem Client (die exe wird auf der lokalen CPU und auf dem lokalen Betriebssystem auseführt). Das Netzlaufwerk stellt nur die Daten der ausführbaren Datei bereit.

  • misterspeed.
    Sorry, aber Server und locales Laufwerk wurden in meinem Post klar def.

    Server = S:
    Localer Rechner = L.
    Siehe oben.
    Es geht natürlich um ein locales Netzwerk. Bei Internetanbindung würde ich mich über nichts wundern :)

    Die absolute Geschwindigkeit ist auch nicht mein Sorgenkind, sondern um die Feststellung, dass es auf dem Server sschneller gehen sollte und diese "Erwartungshaltung" nicht erfüllt wird.
    Auch ist Kopieren nicht der Hauptaspekt. Das hätte ich vielleicht deutlicher vortragen können. Besonders Programmaufrufe von "hilfsoutinen" via runwait machen Sorgen, denn da geht es deutlich langsamer, wenn das Verzeichnis auf dem Server liegt, und vom lcalen Rechner aufgerufen wird, als wenn das Programmverzeichnis local liegt, und local aufgerufen wird.

    Deine finale Feststellung dekt sich ja insoweit mit Oscar der da schreibt S -> L -> S . Das ist leider was ich befürchtet habe.

    Was passiert wenn man eine Autoit exe via Timer auf einem Server ohne Anmeldung laufen läßt?

    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • misterspeed.
    Sorry, aber Server und locales Laufwerk wurden in meinem Post klar def.

    Nein hast du eben nicht.

    Server ist ein viel zu allgemeiner Begriff.

    Dein Server könnte sein:
    - Windows Dateiserver, welcher deine Autoit Scripte ausschließlich per SMB Freigabe bereitstellt
    - Windows Terminalserver, welcher theoretisch in der Lage wäre via Remoteanmeldung oder Remoteausführung das Script direkt auf dem Server auszuführen
    - Dein Autoit Script selbst könnte ein TCP Server sein oder eben nur lokal auf dem ausführenden Rechner Dinge tun und wäre somit keine Serveranwendung
    - Ja sogar ein Samba Server auf Linux Basis könnte hier als Dateiserver fungieren, in dem Fall ist eine Autoit Ausführung direkt auf dem Server natürlich ausgeschlossen

    Dein letzter Beitrag macht dies immernoch nicht klar. Er verwirrt nun noch mehr durch diese Sätze:

    Zitat

    Besonders Programmaufrufe von "hilfsoutinen" via runwait machen Sorgen

    Welche Programmaufrufe? Welche Hilfsroutinen? Windowseigene Hilfsprogramme? Wo sollen/müssen diese ausgeführt werden? Auf dem Client oder auf dem Server?

    Zitat

    Was passiert wenn man eine Autoit exe via Timer auf einem Server ohne Anmeldung laufen läßt?


    Welche Timer? Autoit Timer? Windows Aufgabenplanung?
    Server ohne Anmeldung? Redest du nun von einer Windows Server Core Installation? Redest du von einem Dateiserver auf dem du keinen Remotezugang hast, weil du oder der ausführende User hierfür nicht berechtigt ist?

    Als Administrator habe ich wirklich Kopfschmerzen wenn ich mir diese Beschreibung durchlese. Achja was heißt überhaupt "deutlich langsamer"? Sekunden, Minuten, Stunden?
    Außerdem vielleicht noch relevant... wie wird die Netzwerkverbindung realisiert? LAN? WLAN?

    Meinen Hinweis bzgl. Virenscanner hast du im Übrigen ignoriert. Nicht nur Virenscanner, sondern auch die Windows Benutzerkontensteuerung reagieren bei Ausführung von Software über Netzlaufwerke stärker als üblich.
    Testweise würde ich den Virenscanner auf dem Clientrechner daher deaktivieren und prüfen ob sich die Performanceprobleme dadurch ändern. Falls ja kann das Verzeichnis evtl. als Ausnahme definiert werden.

    Aber ich hör nun auf mit meinen Fragen. Bei solchen Problemen muss man aber meiner Meinung nach eben sehr viel klarer und deutlicher die Rahmenbedingungen beschreiben.

  • @misterspeed
    Deine Aufstellung ist bei weitem nicht vollständig:
    Es könnte auch noch ein Server in der Cloud sein, angebunden über Standleitung, DSl, Modem, 3G, 2G, 10mbit 100mbit 1000mbit, Glasfaser uva.
    NetbBEUI, sollte man neben Appeltalk IPX/SPX auch noch auf der Liste haben
    Betriebssysteme hätten wir Unix, Linux, Windos von 1-10, TOS, DOS Android MAC OS, ReactOS, BSD, Aros oder Novell u.a.
    Natürlich sollten wir auch noch auf die unterschiedliche Bestückung der Rechenleistung sehen. ev. ist der Hemmschuh ein alter 286er? Oder zu wenig Speicher?
    Wenn man auf etwas keinen Bezug nimmt, bedeutet es nicht, dass man es ignoriert... Man muss auch nicht deaktivieren was es nicht gibt - oder habe ich geschrieben es gibt einen Virenscanner?

    Auch der Aufruf der "Hilfsprogramme" wurde beschrieben.

    Es gibt hilfreiche Beiträge und weniger hilfreiche!


    ------------
    Danke an Oscar, der schmaler Hinweis hat genügt.

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Was verstehst Du unter einem Kopierscript?

    Auf dem Server befindet sich ein Script welches den Kopiervorgang durchführt. Das Script reagiert z.b. über TCP, Inidatei, textdatei usw. auf die Übergabe der Parameter welche die Quelle und das Ziel der zu kopierenden Dateien angeben. Dadurch das das eigentliche Kopierscript auf dem Server (S) liegt fällt beim eigentliche Kopiervorgang der Client (L) weg. Sprich du hast dann S->S.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.