Slashdot Mirror


Can .NET Really Scale?

swordfish asks: "Does anyone have first hand experience with scaling .NET to support 100+ concurrent requests on a decent 2-4 CPU box with web services? I'm not talking a cluster of 10 dual CPU systems, but a single system. the obvious answer is 'buy more systems', but what if your customer says I only have 20K budgeted for the year. No matter what Slashdot readers say about buying more boxes, try telling that to your client, who can't afford anything more. I'm sure some of you will think, 'what are you smoking?' But the reality of current economics means 50K on a server for small companies is a huge investment. One could argue 5 cheap systems for 3K each could support that kind of load, but I haven't seen it, so inquiring minds want to know!"

"Ok, I've heard from different people as to whether or not .NET scales well and I've been working with it for the last 7 months. So far from what I can tell it's very tough to scale for a couple of different reasons.

  1. currently there isn't a mature messaging server and MSMQ is not appropriate for high load messaging platform.
  2. SOAP is too damn heavy weight to scale well beyond 60 concurrent requests for a single CPU 3ghz system.
  3. SQL Server doesn't support C# triggers or a way to embed C# applications within the database
  4. The through put of SQL Server is still around 200 concurrent requests for a single or dual CPU box. I've read the posts about Transaction Processing Council, but get real, who can afford to spend 6 million on a 64 CPU box?
  5. the clients we target are small-ish, so they can't spend more than 30-50K on a server. so where does that leave you in terms of scalability
  6. I've been been running benchmarks with dynamic code that does quite a bit of reflection and the performance doesn't impress me.
  7. I've also compared the performance of a static ASP/HTML page to webservice page and the throughput goes from 150-200 to about 10-20 on a 2.4-2.6Ghz system
  8. to get good through put with SQL Server you have to use async calls, but what if you have to do sync calls? From what I've seen the performance isn't great (it's ok) and I don't like the idea of setting up partitions. Sure, you can put mirrored raid on all the DB servers, but that doesn't help me if a partition goes down and the data is no longer available.
  9. I asked a MS SQL Server DBA about real-time replication across multiple servers and his remark was "it doesn't work, don't use it."

7 of 653 comments (clear)

  1. Re:Why are they running Windows then? by Anonymous Coward · · Score: 4, Funny

    Right. Small businesses want to stay small, and sending all their money to Redmond is one way of doing that!

  2. Re:Why are they running Windows then? by tomstdenis · · Score: 4, Funny

    No matter what OS you run you do need people to keep tabs on it. Most users are very stupid [re: running all email attachments] and are prone to damaging computer systems.

    Even if they were using Linux they would need someone around to make sure everything runs smoothly.

    The trick is to multi-task. Once the system is running, a small business sysadmin is not a full time job. They can also program or PR or ...

    Also the benefit of not using MSFT tools is the weaker propagation of acronymedics. E.g. I can code DOM SOAP .NET ASP super programs. oh yeah

    10 print 'hello world'

    L33t!

    Tom

    --
    Someday, I'll have a real sig.
  3. Re:Why are they running Windows then? by PhrostyMcByte · · Score: 3, Funny

    Windows is only one burnt CD, redhat is like 3. thus, linux costs more!

  4. oxymoronic by aminorex · · Score: 3, Funny

    scalable? .NET? This is a troll, right?

    --
    -I like my women like I like my tea: green-
  5. Re:Ignorance is no excuse. by abigor · · Score: 4, Funny

    Since you are a Windows command line expert, I need to ask you some questions.

    Could you please show me how to do a multi-file search and replace from the command line? That is, multiple files in arbitrary directories where I need a certain string replaced with another string.

    Also, I'd like to count the number of lines in all the files in a directory tree (with nested directories, of course). Please show each file, with its line count, on a separate line.

    Finally, I need to know how to kill processes that were started by a certain user - but not just any process. Just the ones that are currently using 0% of the CPU.

    All of these should be able to be done in a single command line - no scripts - sorry, batch files.

    Thanks!

  6. Re:What's your major malfunction? by Billgatus-of-Borg · · Score: 3, Funny

    It's a damn simple question: can .NET really scale? With the proper cortical implants, .NET can scale across entire Galactic subsectors. The implants provide an ongoing link to the Collective, providing direction and guidance, while the .NET software adds in random glitches, forcing the .drones to occasionally initiate independent action, strengthening their independent programming subroutines.

  7. Why worry about this problem... by tomq123 · · Score: 3, Funny

    chances are your job is going to get outsourced to India in a few weeks. They can accomplish this task for you and a fraction of the cost.