JBoss Download Speed

dogmi

Mitglied
Hallo,

Also mal von Anfang an:

Ich habe eine Web Anwendung programmiert, diese greift auf meine Server Festplatten zu und stellt dann eine Download bereit. Das ganze Funktioniert super.

Umgebung: W7, JBoss EAP 6, http Zugriff, 50.000 Leitung es sollten also ca 1MB upload drin sein, nutze JSF

Nun habe ich folgendes Problem.

Ich habe zuerst einen Tomcat genutzt und die Downloadgeschwindigkeit, war sehr sehr langsam.
Getestet mit einem 6000er Anschluss um die 100 kB Downloadspeed. Lustig war nur das man 4 -5 Downloads starten konnte und alle die gleiche Geschwindigkeit hatten. Es ist also mehr drin.

Dann habe ich nen Glassfish 4.0 genommen und siehe da, der hat mir vollen Speed gegeben ca 400kB.
Ist aber nicht nutzbar, irgendwie haut es mir die Anwendung nach ein paar Aufrufen weg.

Beim JBoss habe ich nun ca 230 KB, kann aber 2 Download starten mit fast gleicher Geschwindigkeit.

Kann mir einer verraten woran das liegt, bzw. wie man das umstellen kann. Ich will vollen Speed beim ersten Download. Ich bin kein Admin und ziemlich neu in dem Gebiet, kann sein das es total easy ist und ich nur zu doof. Ich würde dann schon lieber beim JBoss bleiben, würde aber auch wieder auf den Tomcat umschwenken, falls einer Ideen hat.

Danke.
 
Da es mit dem ClassFish mit vollen Speed ging, habe ich mal nach geforscht, warum meine Page nicht geht. War ein Bug beim ClassFish, mit der Version vom NetBeans geht es die Build Nummer ist entscheidend. Man muss auch noch eine Jar auswechseln, aber nun geht es.

Hat, aber keine Idee woran es bei den anderen Servern liegen könnte?
 
Da mir die Server beim Download auf den Keks gingen, hab ich kurzer Hand selbst einen Http-Filedownloadserver programmiert. Es gab nämlich auch das Problem das der GlassFish den Download Thread abgeschossen hat, nach einer bestimmten Zeit. Somit konnte man keine sehr großen Dateien downloaden. Jetzt habe ich nur noch die 2Gig Grenze vom Browser. :bae:

Zu dem Problem mit der Downloadgeschwindigkeit.
Ich hatte auch das Problem bei meinem selbst geschriebenen Server, hab das Problem aber Schnell gefunden. Es muss irgendwo im Code sowas geben.

Java:
 public void sendFile(FileInputStream fin, DataOutputStream out) {
        try {
            UpdateDownloads.setNewProgBar(this);
            byte[] buffer = new byte[16384];
            int bytesRead;
            while ((bytesRead = fin.read(buffer)) != -1) {
                //Daten senden, in der Schleife
                out.write(buffer, 0, bytesRead);
                m_totalByteReads += bytesRead;
            }

            TappedConsole.writeConsole("Download finish. ThreadID: " + m_threadID);
            fin.close();
            SocketManager.removeThreadInList(this);
            UpdateDownloads.removeNewProgBar(this);
        } catch (IOException ex) {
            TappedConsole.writeConsole("Download chancel. ThreadID: " + m_threadID);
            SocketManager.removeThreadInList(this);
            UpdateDownloads.removeNewProgBar(this);
        } /*catch (InterruptedException ex) {
            Logger.getLogger(SendingHTML.class.getName()).log(Level.SEVERE, null, ex);
            SocketManager.removeThreadInList(this);
            UpdateDownloads.removeNewProgBar(this);
        }*/
    }




byte[] buffer = new byte[16384];
Das ist der Knackpunkt, wenn das zu niedrig ist wird bei der Übertragung der Overhead zu groß sein.
Sollte Normal auf 1024, aber wenn es mit 16384 geht, auch gut.:toll:
 

Neue Themen


Zurück
Oben