Can .NET Really Scale? 653
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.
- currently there isn't a mature messaging server and MSMQ is not appropriate for high load messaging platform.
- SOAP is too damn heavy weight to scale well beyond 60 concurrent requests for a single CPU 3ghz system.
- SQL Server doesn't support C# triggers or a way to embed C# applications within the database
- 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?
- 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
- I've been been running benchmarks with dynamic code that does quite a bit of reflection and the performance doesn't impress me.
- 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
- 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.
- 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."
Re:Why are they running Windows then? (Score:4, Funny)
"but the commercial said!" (Score:2, Funny)
I can see it now- after commanding the drones to switch to Windows 2.003k, they look at the price tag- the jump in overtime, the additional hardware for that "faster" version, the new software licenses...
President:"But...but...that commercial said it would be cheaper, and it had lots of pretty people doing neat things, with nice music in the background! And the nice representative at the golf tournament said I'd get to have employees walking around with little handheld things that showed our inventory! And..."
CFO:"...You mean to tell me you bitched and moaned for months about how we needed to switch, and you based the decision on TV COMMERCIALS?"
President:"DUUUUH, of course not! I SAID, I talked to a MS rep too!"
(sound of 12 hands slapping 12 foreheads)
Re:Why are they running Windows then? (Score:4, Funny)
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
10 print 'hello world'
L33t!
Tom
Re:Why are they running Windows then? (Score:3, Funny)
Re:Can my car go really fast? (Score:3, Funny)
theres no way a 400 can do that in 57, i slapped a new module in my 400 and i could barely do it in 35. you may need to replace your module, just grab it by the flat side and push it your right, your right, not mine.
oxymoronic (Score:4, Funny)
Re:Ignorance is no excuse. (Score:4, Funny)
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!
Re:What's your major malfunction? (Score:3, Funny)
Why worry about this problem... (Score:3, Funny)
But first; (Score:1, Funny)