-1

My server is serving files to client and requires high speed in sending output. Currently my dedicated server located in france promises 1Gbps port with SLA of 100Mbps which means that my server maximum output would be 12MB/s

However using Capsa and bandwidth freemeter I detected that my server only output at 3MB/s for sum of all client, which is 24 Mbps which is not even reaching half of what I was promised.

I am thinking thinking could it be because of my source code written in ASP.NET MVC? The code is using 3MB buffer size and allow partial download which when I use download manager and uses 3 section, it would still only gave around 80KB/s

How do I optimize windows 2008 server to maximize network power and send large output? My server is Intel Xeon and that couldn't be less processing power, and the RAM is 8GB.

Bla Anima
  • 1
  • 1
  • 2
    Hardly. Given a specific set an 80kb/second - this is not "planning" it is "what the heck is wrong". At least in my world (called earth, year 2013) there is no capacity planning needed with 80kb/second on a 1gigabit line. – TomTom Aug 08 '13 at 07:07
  • You're asking us to solve an unknown problem: You have no idea why your site is "slow", so we have no way of knowing what you should optimize to fix the problem. Perform some load tests and determine where your bottlenecks are, then respond accordingly. If you can provide more detail we can provide you more useful answers. – voretaq7 Aug 09 '13 at 22:10

1 Answers1

1

which means that my server maximum output would be 12MB/s

Ah. No. Rather like 10MB/S. There is some protocol overhead - it is not like the data travels without any checksums etc.

which is 24 Mbps which is not even reaching half of what I was promised.

Ok, so what do you do here? Seriously, this is not a technical issue. Raise it with your hoster, show them your SLA, Trigger the penalties embedded in it.

I am thinking thinking could it be because of my source code written in ASP.NET MVC? How do I optimize windows 2008 server to maximize network power and send large output?

OK, other angle. What do you do here? Crappy programming is hardly a server admin issue. Fix your code.

Start by finding out how bad it is. Put STATIC file into the server. Use that for speed testing. THen you have the baseline - that is what your server is calable of delivering. Anything less is your issue.

The code is using 3MB buffer size and allow partial download which when I use download manager and uses 3 section, it would still only gave around 80KB/s

LÖet's get serious - 80kb is a comical number, something is VERY wrong. 3mb buffer is ok IF you use async load to load the next slice while a transfer is in progress - not totally junior progrmaming, not really complex (i.e. load the next 3mb while the first are sent). .NET 4.5 has a nice async keyword for that, older versions please use tasks.

Oh, and consider how goot it is to run outdated server OS - 23008 is OLD. 2008 R2 would be "old", but 2012 is current.

As I said - validate it is your code, then fix it. Put up a repro case in your lab, run a profiler, find out where it hangs. Could be a totally crappy disc subsystem - but then, 80kb/s is REALLLLLLLY little.

Whatever it is, it is not a serverfault.com case - outside the analysis. Either you write terrible code (stackoverflow.com) or it is a SLA issue (legal, handle with providers support). Nail it down with a static file test case - your code not involved then.

TomTom
  • 50,857
  • 7
  • 52
  • 134