Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have Comcast internet for residential service, and I can upload a file at 10Mbps, but when I open the port 80 and run Apache, and use my other PC on DSL to download the file, it was only at 20 to 30 kbyte/second.

The DSL can download at about 3Mbps, so it should be at least 300kbype/second. Does anybody know why it is 20-30 kbyte/second running an apache server?

share|improve this question
up vote 3 down vote accepted

You say that your cable connection can upload at 10Mbps, and if that's true then the asymmetry of the connection can't be to blame for getting what sounds like a 256Kbps upload speed. However, I assume you've actually tested this, as opposed to just assuming it - many ISPs won't give those sorts of upload speeds, even on the high-end cable packages. If you've actually seen real upload speeds to read sites of 10Mbps, then that rules out one option.

The same goes for your DSL link - I'm assuming you've seen real download speeds of 300KB/s. Never assume your ISP's advertised speeds are correct without real-world testing, they can't guarantee the quality of DSL lines (and some of them just plain lie through their teeth).

That said, Comcast is infamous of being one of the worst ISPs for traffic shaping and blocking - they use Sandvine network monitoring equipment to prevent BitTorrent seeding, for example. They always used to deny this, but it's fairly conclusively been demonstrated that they do.

So, it's possible that Comcast are also doing something nasty to incoming connections on port 80, in an attempt to stop people running high traffic websites on their home connections. Some ISPs just plain block it, but it sounds like perhaps they're just throttling. I would suggest reconfiguring Apache to listen on an alternate high-numbered port - something unassociated with any existing service, like 4477. If you want to test this, you need to put the port number after the domain name, separated with a colon.

If that still runs slowly, you could try making it a HTTPS connection on a random port, but SSL is a bit of a pain to set up in Apache if you haven't done it before.

share|improve this answer

Try a different port (say port 81) and see if you have the same performance problems. If you don't your ISP is throttling that port.

share|improve this answer
Or your router has trouble proxying the same port its web interface is on. – David Schwartz Nov 9 '11 at 14:18

Since you're on a residential connection, you probably have an asymmetric line... ie the upload speed will be significantly slower than the download speed.

The reason is that this reflects what most typical home users do... download a lot more than they upload. Watching videos / downloading email etc takes a lot less bandwidth than the few http/whatever calls necessary to retrieve it.

share|improve this answer

The 'A' in ADSL stands for 'Asymmetric'. More bandwidth on an Asymmetric DSL connection is allocated for download than upload so you cannot upload as quickly. Symmetric DSL connections are available, but (typically) not through residential programmes so they are much more expensive.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.