aMule Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

We're back! (IN POG FORM)

Author Topic: aMule lento in download  (Read 3977 times)

vking

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 5
aMule lento in download
« on: August 25, 2007, 04:34:13 PM »

ciao a tutti:) Ho provato a ricercare info stesso nel forum ma i thread che mi interessavano erano un po' datati.

Trovo che aMule sia molto lento ora mi domando: e' un problema del client?
Tutte le configurazioni sono a posto, nessun problema con il firewall. Purtroppo pero' il client scarica molto lentamente...avete qualche consiglio?
« Last Edit: August 25, 2007, 04:44:42 PM by vking »
Logged

Nerofumo

  • Jr. Member
  • **
  • Karma: 2
  • Offline Offline
  • Posts: 59
  • Just an old sysadm & dba
Re: aMule lento in download
« Reply #1 on: August 25, 2007, 07:09:32 PM »

Servirebbero un po' di dati sulla linea, sulla configurazione di amule etc per poter rispondere, ma partendo dal presupposto che tu abbia una configurazione "ragionevole" e che quindi abbia gia' applicato i consigli sparsi in giro per i post che sicuramente hai letto, in ultima analisi la velocita' in download dipende dal numero di fonti e dalla velocita' in upload di queste.

E qui purtroppo non ci si puo' fare un gran che' visto che la maggior parte degli utenti usano linee adsl dove la velocita' in upload e' molto limitata; per esempio chi ha 256kb in upload ha di fatto a disposizione 32KB e quindi ragionevolmente ne dedica 25 all'upload di amule e questi 25 vanno ripartiti tra i client che stanno scaricando da lui contemporaneamente.
Logged
Nowadays you have to think like a hero just to behave like a merely decent human being.

vking

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 5
Re: aMule lento in download
« Reply #2 on: August 25, 2007, 08:42:38 PM »

E qui purtroppo non ci si puo' fare un gran che' visto che la maggior parte degli utenti usano linee adsl dove la velocita' in upload e' molto limitata; per esempio chi ha 256kb in upload ha di fatto a disposizione 32KB e quindi ragionevolmente ne dedica 25 all'upload di amule e questi 25 vanno ripartiti tra i client che stanno scaricando da lui contemporaneamente.
Grazie per la riposta.
Si, e' configurato bene. La cosa strana e' che su un altro pc in rete ho installato emule e con file che hanno pari fonti il download su emule va molto meglio "purtroppo".
Non li ho provati insieme.
Mi sto dannando, preferirei usare amule e non l'altro su windows...mi sono venuti anche pensieri malignamente assurdi  :-X . Tipo che (mai preso la briga di vedere il codice di emule) da qualche parte nel codice di emule ci stesse qualche punteggino premio sulle code fra i client emule  :'(

edit:
ops qualche dato, ho alice 20Mbit e in up ho settato sia emule che amule a 25. Su entrambi ho id alto e kad a posto.
« Last Edit: August 25, 2007, 08:45:31 PM by vking »
Logged

Nerofumo

  • Jr. Member
  • **
  • Karma: 2
  • Offline Offline
  • Posts: 59
  • Just an old sysadm & dba
Re: aMule lento in download
« Reply #3 on: August 25, 2007, 11:03:10 PM »

Interessante.

Sarebbe bello provare mettendo in download lo stesso file con le stesse fonti usando due utenti nuovi che partano quindi senza crediti.
Logged
Nowadays you have to think like a hero just to behave like a merely decent human being.

vking

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 5
Re: aMule lento in download
« Reply #4 on: August 26, 2007, 11:13:18 AM »

Ho notato una differenza fra emule e amule e riguarda il numero di clients accettati per l'upload. In emule generalmente sono pochi, dell'ordine di 4/5/6 tra i quali (clients permettendo) viene ripartita equamente la capacita' nostra di upload. In aMule non è proprio cosi'. Spesso, per via di alcune condizioni all'interno del codice, si accettano clients ai quali pero' viene allocata una quantita' di banda infima, dell'ordine di qualche centinaio di byte. Questi clients terminano la loro fetta di tempo in upload (nel codice e' settata un'ora) ricevendo pochi kb e ritornando nella nostra coda.

Il problema essenzialmente risiede con quei clients che hanno un buon giudizio nella nostra coda. Questi scalano rapidamente la coda e vi è la possibilita' che una volta accettati per il upload ricadano nel problema che ho spiegato prima, cioe' ricevono briciole. Il risultato ho supposto sia questo: nella nostra coda alcuni clients con giudizio alto vanno e vengono dalla coda di upload ottenendo poco. Noi nella loro coda dovremmo ottenere un giudizio "pessimo" in quanto uppiamo poco e veniamo superati da altri. Osservando che generalmente in cima alla coda si trovano quei clients con giudizio positivo ci si rende facilmente conto delle conseguenze del problema. Ammesso che sia un problema...

A questo punto ho modificato la parte di codice relativa al metodo che accetta un nuovo client stabilendo un'unica regola: accettare un numero di clients scelto da me.
Ieri sera ho dato uno sguardo al codice cercando un punto indolore all'interno del programma che potesse permettermi di fare tutto questo. Ho deciso che la funzione principale dello "Slot allocation" ora sia quella di determinare il numero di clients che voglio in coda, aMule poi suddivide, nel limite del possibile, equamente la banda.
Ora ho notato che scambio dati con chi ha ottimi giudizi nella mia coda con frequenza maggiore. Riesco a fornire loro un intero chunk e quindi ad ottenere sicuramente un giudizio migliore rispetto a prima.
In poco tempo ho ottenuto dei miglioramenti, se quello che ho supposto e' vero, allora man mano che recuperero' crediti verso quei clients ai quali avevi inviato briciole, la situazione dovrebbe continuare a migliorare. Almeno ora ho un modificatore che inizia a pendere verso la D e non sulla U ;/

Vorrei fare alcune precisazioni; questa modifica, in teoria, dovrebbe "favorire" lo scambio con quei clients che realmente ci interessano. Cioe' quelli che ci inviano dati.
Va sottolineato che in nessun modo gli altri clients vengano esclusi. Diciamo solo che noto scambi, con clients che hanno giudizio alto, con frequenza maggiore.
Inoltre giocando con la velocita' massima di upload e variando il numero di clients da accettare in upload e' possibile fare varie prove e cercare la migliore soluzione osservando le statistiche.
Esempio: si puo' scegliere un numero di clients tale da dare il tempo a quelli con giudizio positivo che sono in coda di scalare la coda stessa. In pratica quelli con giudizio positivo tendono ad ammassarsi in testa alla coda.

Non ho idea di quali siano le regole di questo forum, cioe' se vìolo qualche regola del forum postando la modifica. In caso qualcuno e' interessato per testare non ho alcun problema a condividere questa modifica.
Potrei aver fatto un buco nell'acqua, ma anche no. Piu' ne siamo a testarla meglio e' credo.

Ciao.
Logged

Nerofumo

  • Jr. Member
  • **
  • Karma: 2
  • Offline Offline
  • Posts: 59
  • Just an old sysadm & dba
Re: aMule lento in download
« Reply #5 on: August 27, 2007, 02:02:41 AM »

Non credo che esista un problema di violazione di regole, anzi.

Io personalmente non ho notato il verificarsi di questo problema ma effettivamente ho settato in slot allocation 5 kB e normalmente ho 5 client in upload con qualche punta a 6 se uno di questi non sfrutta lo slot. L'unica cosa che mi viene in mente, per discutere una proposta relativa al codice, e' che il posto corretto sia comunque nel forum di lingua inglese magari sotto "Development".

Intendiamoci, io non sono di sicuro un moderatore ma un utente qualunque e quindi vado assolutamente a naso.
Logged
Nowadays you have to think like a hero just to behave like a merely decent human being.

vking

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 5
Re: aMule lento in download
« Reply #6 on: August 27, 2007, 08:55:51 AM »

Mmm non sono praticissimo con l'inglese, comunque posto qui la "prova", tanto e' molto semplice; volendo si puo' sempre tornare alla configurazione precedente.

La modifica va fatta nel file UploadQueue.cpp nella directory src. Bisogna commentare nel metodo bool CUploadQueue::AcceptNewClient() tutto il codice tranne il primo if che sarebbe il seguente:

Code: [Select]
// check if we can allow a new client to start downloading from us
if (::GetTickCount() - m_nLastStartUpload < 1000 || uploadinglist.GetCount() >= MAX_UP_CLIENTS_ALLOWED) {
return false;
}

una volta che si e' commentato tutto il codice della funzione bisogna aggiungere questo if alla fine:

Code: [Select]
if((uint32)uploadinglist.GetCount()<(float)thePrefs::GetSlotAllocation()){
return true;
}else
return false;

una volta compilato il codice basta rimpiazzare solo il binario con il vecchio senza la procedura di installazione. Se si conserva il vecchio binario si puo' ripristinare la configurazione precedente.
In questo modo si ha la possibilita' di aprire un numero di slot a piacimento. Tanti o pochi a prescindere dalla capacita' di upstream.

Nerofumo tu usi la versione cvs?
« Last Edit: August 27, 2007, 08:58:24 AM by vking »
Logged

Nerofumo

  • Jr. Member
  • **
  • Karma: 2
  • Offline Offline
  • Posts: 59
  • Just an old sysadm & dba
Re: aMule lento in download
« Reply #7 on: August 27, 2007, 08:41:04 PM »


Nerofumo tu usi la versione cvs?

Yes!

attualmente sta girando quella del 23 agosto, non ho avuto il tempo di fare grandi prove ma il suo lavoro lo fa compreso il famigerato protocol obfuscation.
Logged
Nowadays you have to think like a hero just to behave like a merely decent human being.

vking

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 5
Re: aMule lento in download
« Reply #8 on: August 28, 2007, 09:40:03 AM »

nella versione cvs l'if da aggiungere e' il seguente se interessa:

Code: [Select]
if(m_uploadinglist.size()<(float)thePrefs::GetSlotAllocation()){
return true;
}else
                return false;
Logged