Anonymous | Login | Signup for a new account | 2024-11-23 10:34 CET |
My View | View Issues | Change Log | Roadmap |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||
0001209 | aMule | Transfer | public | 2007-11-25 17:35 | 2008-02-17 02:39 | ||||||||
Reporter | kubrick | ||||||||||||
Assigned To | |||||||||||||
Priority | normal | Severity | block | Reproducibility | always | ||||||||
Status | acknowledged | Resolution | open | ||||||||||
Platform | OS | OS Version | |||||||||||
Product Version | SVN | ||||||||||||
Target Version | Fixed in Version | ||||||||||||
Summary | 0001209: amule doesn't use all the brandwidth | ||||||||||||
Description | I'm using amule CVS 20071125 on a server with a 100Mbps connexion to the internet. amule and amulecmd don't use the whole upload brandwidth, even if I set max UL rate to 0 or 12000kBps. It uploads data at a 1~2MB/s rate and queue clients even if there is still free brandwidth. | ||||||||||||
Additional Information | At that rate amule is consuming about 30% of cpu so CPU is not limitating. Still at that rate the ping time is good, so I don't think that amule "detects" that the line is full.. | ||||||||||||
Tags | No tags attached. | ||||||||||||
Fixed in Revision | |||||||||||||
Operating System | Debian etch amd64 with wxGTK 2.6.8 | ||||||||||||
Attached Files | |||||||||||||
Notes | |
(0002468) kubrick (reporter) 2007-11-29 11:16 edited on: 2007-11-29 11:17 |
In src/UploadBandwidthThrottler.cpp, for each packet sent, we have a minimum sleep time of 1ms because of : const uint32 TIME_BETWEEN_UPLOAD_LOOPS = 1; [...] uint32 extraSleepTime = TIME_BETWEEN_UPLOAD_LOOPS; [...] uint32 sleepTime; if(allowedDataRate == 0 || allowedDataRate == _UI32_MAX || realBytesToSpend >= 1000) { // we could send at once, but sleep a while to not suck up all cpu sleepTime = extraSleepTime; } else { // sleep for just as long as we need to get back to having one byte to send sleepTime = std::max((uint32)ceil((double)(-realBytesToSpend + 1000)/allowedDataRate), extraSleepTime); } So we can only send a maximum of 1000 packets each second. 1 packet weighing about 1,5kB, the max upload rate should be 1,5MB/s. This is exactly what I am having. So I guess the problem must be here. Am I wrong? modifié le : 11-29-07 11:17 |
Issue History | |||
Date Modified | Username | Field | Change |
2007-11-25 17:35 | kubrick | New Issue | |
2007-11-25 17:35 | kubrick | Operating System | => Debian etch amd64 with wxGTK 2.6.8 |
2007-11-29 11:16 | kubrick | Note Added: 0002468 | |
2007-11-29 11:17 | kubrick | Note Edited: 0002468 | |
2008-02-17 02:39 | Xaignar | Status | new => acknowledged |
Copyright © 2000 - 2024 MantisBT Team |