| Anonymous | Login | Signup for a new account | 2025-10-28 22:50 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 - 2025 MantisBT Team |