Results 1 to 15 of 15
  1. #1
    Join Date
    Jun 2004
    Location
    Hyderabad India
    Posts
    1,103

    tcp/ip tuning for better speed

    hello everybody,

    i have this couple of windows 2003 servers, colocated in data center, i need to improve download speeds to our customers who are at least 200ms away, the end user is not using download accelarator,

    is there a way that any settings to be done on server so that per thread speed can be increased, this case the server and client both have the ability to make a connection at more than a megabit speed. i did some search but all the articles point to end user and not the server saying to increase tcp window size etc.. not sure if those articles relate to server side changes.

    thank you

  2. #2
    Join Date
    Jun 2006
    Posts
    1,027

  3. #3
    You could also take a look at the download here, if you don't want to do too much registry editing: http://www.speedguide.net/downloads.php
    478east
    High Bandwidth Servers
    Custom Hosting Solutions

  4. #4
    Join Date
    Jun 2006
    Posts
    1,027
    I just did what it said on the link I sent you.
    And with 140ms latency I almost doubled performance.

    I stuck a 500Kb file on the box, before I made the modifications the best download time I could get was 2.4-3 seconds. I ran the test using httpwatch in IE several times

    After applying the modifcations I got it down to 1.1 seconds, be warned though that at times it has taken 5seconds. So I suppose it depends on how large the file is. Maybe if they are downloading larger files you might want to have a box setup dedicated to the large files. As I suspect on smaller files with a bit of network congestion its going to be worse.
    Mind im just guessing at that

    When downloading a large file, (I used an old backup) I got about 600KB/sec rather than 200-300 like I normally get.
    Damien

  5. #5
    Join Date
    Jun 2004
    Location
    Hyderabad India
    Posts
    1,103
    cristibighea , that url did come up on my search, but was afraid what the software can change without me knowing,

    thanks for the url djorgensen , iam gonna put this to a test on my box

  6. #6

    You can just ask me...

    Hi,

    I saw that you had read my posting on my website (www_marknmel_com/blog/index.php?entry=entry061010-203418) regarding tuning the TCP/IP stack along with increasing the buffers for http.sys. (Google Alerts are handy...)

    I work for a software company that does medical imaging. There is a concern with country wide high speed health networks, that latency will be an issue. These WANs are generally private networks 100Mbit or 1Gbit, but may have latency up to 10's of ms.

    The info you saw on my website is the stuff that I can talk about .

    Now to address some of your concerns/observations.

    1. "It almost doubled performance" - It can be, provided the network is reliable, no packet loss, retries, etc.

    What you are really doing is ensuring that more data gets to the client before you require an ACK back from the client. This is the black art here. Kinda like the "Cheque being in the mail", the cheque being the ACK in this case.

    2. "1.1 seconds...sometimes 5 seconds" - sure this can happen. The problem here is packetloss/retransmit. You may need to reduce the window size/buffer size a bit. It's a balancing act.

    3. Run it in the lab. Not sure if you folks have used Imunes before. It is a network simulator. Try it in VMware, or from the bootable .iso.
    www_tel_fer_hr/imunes/
    www_tel_fer_hr/imunes/dl/limunes-20051219.iso.gz
    This thing is great, since you can see the direct relationship between latency and bandwidth changes, against the tcp/app tuning that you are working on.
    It is based on FreeBSD, and you don't need to know much unix to get it running. Basically, you just need to know the device names for your network cards. After you have it running, you can model bridged networks, trans-continental networks with high latency, local routed networks with low latency. Think - drag and drop networking.

    Just ask if you have any questions - I really don't mind. It's been a while since I've researched this - and I may need to go back to my notes.

    PS - This silly website - since I'm a newbie here - I can't use smilies or URLs. The astute will notice that I am smiling and have replaced the . with _ in the urls above. Sigh...

    Have fun!

    /M

  7. #7
    Join Date
    Jul 2007
    Posts
    38
    Anything to tuneup a Linux box?

  8. #8
    Join Date
    Jan 2004
    Location
    Oztrayla Mate!
    Posts
    572
    Yes i would be interested in a similar Linux tweak if its possible also.. But i dont think so.
    Great Host = WiredTree.com Managed VPS Hosting

  9. #9
    Join Date
    Sep 2006
    Posts
    158
    same here, would be interested for speed improvement for linux (centos 5)

  10. #10
    Join Date
    Oct 2006
    Posts
    76
    Quote Originally Posted by marknmel View Post
    Hi,

    I saw that you had read my posting on my website (www_marknmel_com/blog/index.php?entry=entry061010-203418) regarding tuning the TCP/IP stack along with increasing the buffers for http.sys. (Google Alerts are handy...)

    ...

    Have fun!

    /M

    Remarkable first post, thank you

  11. #11
    Join Date
    Nov 2005
    Location
    Minneapolis, MN
    Posts
    1,648
    Quote Originally Posted by marknmel View Post
    1. "It almost doubled performance" - It can be, provided the network is reliable, no packet loss, retries, etc.

    2. "1.1 seconds...sometimes 5 seconds" - sure this can happen. The problem here is packetloss/retransmit. You may need to reduce the window size/buffer size a bit. It's a balancing act.
    It's worth noting that Windows XP and beyond have implemented SACK, so augmenting your TCP window size shouldn't be a problem as long as you enable that feature. (though it should already be enabled by default)

    Quote Originally Posted by Joel Smit View Post
    Anything to tuneup a Linux box?
    Any kernel after 2.6.16 automatically tunes the TCP stack for optimal performance. No special tricks required, it's already built in.
    Eric Spaeth
    Enterprise Network Engineer :: Hosting Hobbyist :: Master of Procrastination
    "The really cool thing about facts is they remain true regardless of who states them."

  12. #12

    Apache Tuning

    Quote Originally Posted by spaethco View Post
    Any kernel after 2.6.16 automatically tunes the TCP stack for optimal performance. No special tricks required, it's already built in.
    I suppose that is true. It may require apache to be built with a larger buffer though. It will probably only send 32K at a time too (similar to iis). I'd need to look.

    Any apache geeks here?

    /M
    Last edited by marknmel; 04-13-2008 at 08:02 PM. Reason: Typo

  13. #13
    Join Date
    Nov 2005
    Posts
    1,224
    Quote Originally Posted by marknmel View Post
    I saw that you had read my posting on my website
    Code:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters]
    "MaxBufferedSendBytes"=dword:__VALUE__
    "MaxBytesPerSend"=dword:__VALUE__
    This tip is worth its weight in gold. I've been looking for this answer for several years. I've done all the TCPIP stack tuning tricks a hundred times, but never knew about the IIS limit and have pulled my hair out over poor HTTP download performance (even when FTP download performance on the same box ran at near full port speed). I experimented with the HTTP tuning this afternoon, and the results are miraculous.

    Thanks!!

  14. #14
    Quote Originally Posted by Ecompro View Post
    Code:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters]
    "MaxBufferedSendBytes"=dword:__VALUE__
    "MaxBytesPerSend"=dword:__VALUE__
    Tell me about it. I spent two weeks on the phone with Microsoft to get it. Once I had it - I figured I better write it down. The other devil was:
    Code:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTPFilter\Parameters]
    "DefaultAppReadSize "=dword:__VALUE__
    Once I had spent 2 weeks back and forth with Microsoft, they couldn't explain why HTTPS was slower. They called it "overhead". What a load of crap! I had to show them traces from Ethereal, to show the acks were different between http and https.

    Tootles!

    /M

  15. #15
    Join Date
    Nov 2005
    Posts
    1,224
    Quote Originally Posted by marknmel View Post
    Once I had spent 2 weeks back and forth with Microsoft, they couldn't explain why HTTPS was slower. They called it "overhead". What a load of crap! I had to show them traces from Ethereal, to show the acks were different between http and https.
    As good as their folks can be, sometimes it just isn't good enough (and THEY are the ones who wrote the OS). I've been waiting a couple months for them to patch an undocumented memory leak in the DNS service. They know it's there, but so far no patch. I have a script running to restart the service at 3:00 a.m. Left unchecked, DNS will gobble up more than 1 GB of memory within a week.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •