Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Can .NET Really Scale?

Cliff posted about 11 years ago | from the putting-it-to-the-test dept.

Microsoft 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.

  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."

cancel ×


Sorry! There are no comments related to the filter you selected.

fp (-1)

penis fish (671987) | about 11 years ago | (#6474955)

you all suck cock. thx.

Re:fp (-1, Troll)

Anonymous Coward | about 11 years ago | (#6475008)

yes please. i love to. gimme more.

frostyness (-1, Offtopic)

Anonymous Coward | about 11 years ago | (#6474957)

oh, frosty piss!!! ever, ever so frosty! []

duhNet no skaylee

Re:frostyness (0)

Anonymous Coward | about 11 years ago | (#6475045)

No frosty piss here. Move along! Nothing to see, here!

Why are they running Windows then? (1, Insightful)

corebreech (469871) | about 11 years ago | (#6474960)

If they're that strapped for cash they should be looking at open source.

What's your major malfunction? (4, Insightful)

Anonymous Coward | about 11 years ago | (#6475013)

It's a damn simple question: can .NET really scale?

Why on earth did you bring open source into it? If the man wanted to know about Linux & BSD, he would've asked.

If you don't have any experience with the scalability of .NET, I advise you to keep your mouth shut. The signal/noise ratio is bad enough already.

Re:Why are they running Windows then? (0)

Anonymous Coward | about 11 years ago | (#6475018)

You have obviously never dealt with open source in a SMALL business environment. People in SMALL business do not want a system which requires them to hire someone to constantly keep tabs on it. They want ease of use and simplicity, niether of which are offered by open source.

Re:Why are they running Windows then? (4, Funny)

Anonymous Coward | about 11 years ago | (#6475040)

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

Re:Why are they running Windows then? (4, Funny)

tomstdenis (446163) | about 11 years ago | (#6475062)

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'



Re:Why are they running Windows then? (5, Insightful)

ThatDamnMurphyGuy (109869) | about 11 years ago | (#6475101)

People in SMALL business do not want a system which requires them to hire someone to constantly keep tabs on it.

What?#$#@ I don't care who this "SMALL" business may be, but if you put a server on the internet, and plan on not having someone to "keep tabs on it", please, get off of the f-ing internet. It's that type of mentality that yields the servers out there that STILL are spreading Code Red and Nimbda, because nobody has kept tabs on these infected servers in years.

Re:Why are they running Windows then? (0)

Anonymous Coward | about 11 years ago | (#6475187)

so why not buy an application with proven performance metrics on a given set of hardware and taylor it to their needs, rather than hiring a developer to do custom work?

a COTS system would (generally) require the same maintenance regardless of the development model.

Re:Why are they running Windows then? (4, Insightful)

KrispyKringle (672903) | about 11 years ago | (#6475028)

Based on what?

A) This consultant, it sounds like, is largely or exclusively MS. He's not going to suggest Open Source software to his client because that will mean a loss in business. You can hardly blame him; you gotta go with what you know.

B) Oftentimes a commercial solution to some problems exists where a free one does not. The cost of development and maintanance means that the balance is not strictly in terms of free and non-free; after all, your developers' time costs quite a bit as well and home-grown or open source solutions may need more time taken in administration.

This is a pretty complex issue; different analyses have been done with different results. I myself am partial to Open Source, but this does not mean that the obvious answer is, "Hey, go Open Source! It's free!" Get real.

Re:Why are they running Windows then? (1, Insightful)

autopr0n (534291) | about 11 years ago | (#6475147)

A) This consultant, it sounds like, is largely or exclusively MS. He's not going to suggest Open Source software to his client because that will mean a loss in business. You can hardly blame him; you gotta go with what you know.

Sure you can. If he's not smart enough to figure out how to do what what these people want using the Microsoft 'suit' of software (windows, sql server, ASP) or the OSS one (Linux, apache, PHP, whatever), or the Java one (some servlet engine, jsp, etc) or whatever he really doesn't deserve the contract, IMO. That stuff isn't that hard to figure out.

The amount of money they'd save using OSS would be enough to buy at least one more whole box (SQL server ain't cheap)

Re:Why are they running Windows then? (4, Insightful)

Atzanteol (99067) | about 11 years ago | (#6475161)

If this guy is a consultant, sometimes clients have specifications for what type of hardware/software is used. Especially if their own IT group will be maintaining the systems.

Re:Why are they running Windows then? (3, Funny)

PhrostyMcByte (589271) | about 11 years ago | (#6475076)

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

Re:Why are they running Windows then? (1)

TheJZA (580025) | about 11 years ago | (#6475112)

Windows is 1 operating system.
Redhat is 1 operating system + 1000+ software packages.

Re:Why are they running Windows then? (0)

sig cop (661590) | about 11 years ago | (#6475217)

You are such a tool.

Re:Why are they running Windows then? (5, Insightful)

nvrrobx (71970) | about 11 years ago | (#6475215)

Argh, I hate to give up moderation rights but I have to chime in here.

A small business CANNOT afford to employ a full time UNIX administrator. Open source solutions just do not have the ease of administration of the Windows GUIs. Until they do, they will not be small business friendly. Windows Small Business Server provides you with one installer that will basically set you up completely (Exchange Server and all).

Now, before you flame me out for being pro-Microsoft, you should know that almost all my machines at home run Gentoo Linux, and I prefer to use Linux myself.

I had a long discussion with a good friend who is not terribly computer literate. Linux drives him _crazy_ because he can't just, "point, click and go" as he said it. Until these issues are resolved, we won't see small organizations without dedicated IT staff rolling out Linux installs.

Buy more systems (0, Troll)

gwernol (167574) | about 11 years ago | (#6474967)

the obvious answer is 'buy more systems', but what if your customer says I only have 20K budgeted for the year.

If your client has budgeted 20,000 systems this year, I'm sure they can spare a couple of them for your project.


Re:Buy more systems (0)

Anonymous Coward | about 11 years ago | (#6475026)

The good news is, the client has budgeted 20,000 systems.

The bad news is, their budget assumes they will be on a single Pentium-90 running VMWare.


Linux is the answer (1, Redundant)

LordoftheFrings (570171) | about 11 years ago | (#6474970)

Everything windows will cost you. The setup you are looking at will be about $1200/box for the software alone. Look into an open source solution. Also, wherever you can, make a beowulf cluster. It doesn't have to be the most efficient solution, it just has to be beowulf.

Re:Linux is the answer (0)

mbadolato (105588) | about 11 years ago | (#6474990)

It doesn't have to be the most efficient solution, it just has to be beowulf

You just have to imagine it... ;-)


Anonymous Coward | about 11 years ago | (#6474999)

This is pure flamebait.

swordfish, you fucking moron (-1, Troll)

Anonymous Coward | about 11 years ago | (#6474971)

The obvious answer isn't to "buy more boxes", but to avoid .NET.


Why one server? (1, Interesting)

Anonymous Coward | about 11 years ago | (#6474972)

I don't understand how one $20k server could be faster than $20k worth of normal desktop computers? Why not just sell the server and buy $15k or whatever you get back worth of desktops?

Re:Why one server? (1)

nomel (244635) | about 11 years ago | (#6475002)

I actually never understood this either. Maybe it's the support and software that makes it worth it.

Re:Why one server? (0)

Anonymous Coward | about 11 years ago | (#6475070)

Support + software + air conditioning + real estate + electricity...

If you're planning to use a lot of systems, you may even need to upgrade the power substation, which will really run up the costs.

Re:Why one server? (1)

justsomebody (525308) | about 11 years ago | (#6475197)

That I can answer you from my experience with some of my customers.

People are filled with scepticism about technology they don't know well. And cluster is not a common thing to imagine for some common IT, which is more or less uneducated (based that the same ITs have been there from VAX times). Mostly they can imagine up their own level of understanding and talking them out is very hard thing to try. I tryed that, but now I just don't bother, if someone want's to be hammered, well... let him be.

Server vs. desktops, and other issues. (1)

markv242 (622209) | about 11 years ago | (#6475126)

Bus speed bandwidth, more efficient processors (Xeon vs whatever P4 desktop chip), more efficient memory access, faster disks, there are all sorts of reasons not to buy desktops.

However, I will give this advice: under no circumstances should you be using only one machine. You should have at the very least some level of failover built into your application.

I'm guessing the consensus will be "no" (-1, Troll)

Anonymous Coward | about 11 years ago | (#6474973)

This is Slashdot. Anyone who claims that any Microsoft software is good will quickly be modded to Score:-1.

Re:I'm guessing the consensus will be "no" (0)

Dthoma (593797) | about 11 years ago | (#6475021)

"Anyone who claims that any Microsoft software is good will quickly be modded to Score:-1."

And anyone who spouts that kind of stereotypical "slashbot" anti-Microsoft bullshit will get modded up Insightful.

And then I'll get slapped with Offtopics and Flamebaits for daring to disagree with the anti-anti-Microsoft zealots. Go ahead and mod me down, it'll just prove my point.

Re:I'm guessing the consensus will be "no" (0)

Anonymous Coward | about 11 years ago | (#6475100)

> And then I'll get slapped with Offtopics and Flamebaits

how wise of you to invoke the "reverse psych" mod clause.
But since I've now called you on it, you stand a pretty good chance of getting modded down like you'd deserve to.

Of course, nobody will mod me down. I'm an AC, and that would be a laughable waste of points. right? right?

I know this is a troll, but I'll bite. (0)

Anonymous Coward | about 11 years ago | (#6475156)

"Of course, nobody will mod me down. I'm an AC, and that would be a laughable waste of points. right? right?"

You mean like how your grandparent post didn't get whacked at all with any negative moderations?

GNAA EARLY POST! (-1, Troll)

Anonymous Coward | about 11 years ago | (#6474974)

Join GNAA Today! GNAA (GAY NIGGER ASSOCIATION OF AMERICA) is the first organization which
gathers GAY NIGGERS from all over America and abroad for one common goal - being GAY NIGGERS.

Are you GAY?
Are you a NIGGER?
Are you a GAY NIGGER?

If you answered "Yes" to any of the above questions, then GNAA (GAY NIGGER ASSOCIATION OF AMERICA) might be exactly what you've been looking for!
Join GNAA (GAY NIGGER ASSOCIATION OF AMERICA) today, and enjoy all the benefits of being a full-time GNAA member.
GNAA (GAY NIGGER ASSOCIATION OF AMERICA) is the fastest-growing GAY NIGGER community with THOUSANDS of members all over United States of America. You, too, can be a part of GNAA if you join today!

Why not? It's quick and easy - only 2 simple steps!

First, you have to obtain a copy of GAY NIGGERS FROM OUTER SPACE THE MOVIE [] and watch it.

Second, you need to join the official GNAA irc channel #GNAA on EFNet, and apply for membership.
Talk to one of the ops or any of the other members in the channel to sign up today!

If you are having trouble locating #GNAA, the official GAY NIGGER ASSOCIATION OF AMERICA irc channel, you might be on a wrong irc network. The correct network is EFNet, and you can connect to or as one of the EFNet servers.

If you have mod points and would like to support GNAA, please moderate this post up.

P.S. To keep this post on topic, the GNAA (GAY NIGGER ASSOCIATION OF AMERICA) thinks that sattelite driven farm equipment is cool because it keeps Gay Niggers from having to work

This post brought to you by a proud member of GNAA
| ______________________________________._a,____ |
| _______a_._______a_______aj#0s_____aWY!400.___ |
| __ad#7!!*P____a.d#0a____#!-_#0i___.#!__W#0#___ |
| _j#'_.00#,___4#dP_"#,__j#,__0#Wi___*00P!_"#L,_ |
| _"#ga#9!01___"#01__40,_"4Lj#!_4#g_________"01_ |
| ________"#,___*@`__-N#____`___-!^_____________ |
| _________#1__________?________________________ |
| _________j1___________________________________ |
| ____!4yaa#l___________________________________ |
| ______-"!^____________________________________ |
` _______________________________________________'

Hmm so Linux is cheap (3, Insightful)

christoofar (451967) | about 11 years ago | (#6474977)

... but Unix/Java programmers aren't. Wanting to write the code for free, too?

Re:Hmm so Linux is cheap (3, Interesting)

wfberg (24378) | about 11 years ago | (#6475055)

... but Unix/Java programmers aren't. Wanting to write the code for free, too?

Seems to me swordfish is going to be coding it anyway. I'm sure he can figure out how costly it is to retrain him to program Unix/Java.

Having said that, colleges/universities are churning out Java programmers at an alarming rate. And seeing how unemployment is only rising (lots of experienced people on the market) newcomers are really, really cheap! (They're used to living like.. well.. like students!)

Also, is programming for this new-fangled .Net thingy really that much easier than programming for "Unix/Java"? Or is that a delusion caused by smoking crack? Surely coding for platforms that have been around for years upon years is a no-brainer moreso than programming for, from the way swordfish describes it, a hideously unstable inefficient platform?

Now, I agree that finding reasonably adept administrators for windows is much easier, and cheaper, than finding ace Unix admins. But that doesn't say anything about coders.

If swordfish is doing a feasibility study on this, for Pete's sake, suggest an alternative with less Microsoft in it! Any reason why that server should be .Net if all it spews out are more or less standard webservices messages?

Re:Hmm so Linux is cheap (4, Insightful)

the eric conspiracy (20178) | about 11 years ago | (#6475239)

newcomers are really, really cheap!

LOL. Newcomers are the most expensive programmers there are because they draw a salary, but don't write usable code.

Re:Hmm so Linux is cheap (0)

Anonymous Coward | about 11 years ago | (#6475094)

you must be a PHP developer... I've seen this additude before.

Solution (3, Insightful)

Synithium (515777) | about 11 years ago | (#6474988)

Apache, FreeBSD and a cluster of 10 or so $1k servers and a nice DB server running PostgreSQL.

Works for me.

Any more information? (1)

JohnDenver (246743) | about 11 years ago | (#6475044)

What language/libraries do you use to develop applications? What kind of performance is typical for you?

Re:Any more information? (3, Informative)

Synithium (515777) | about 11 years ago | (#6475210)

We have switched from Windows Svr 2k and ASP to Apache 2 and PHP 4 on the front end. On the back end we use java 1.4 and broke our application apart to run multiple master/slave processes in a tree system (Process A, Master I, Machines a-d. Process B, Master II, Machines e-h...) to do data analysis for the requests. (This is a data mining sort of thing with analysis and a search). The DB starting becoming a bottleneck after we got up to 200 concurrent processes, which we fixed by breaking apart the DB and placing half on another server and running 2 simultaneous DB connects per slave process and this could continue for some time i'm thinking.

If that gets too goofy we may end up partitioning the requests in the beginning and mirroring two seperated complete systems, but we're not really envisioning it ever getting that big.

Of course, most of the problem is simply the back end keeping up because the front ends don't do much at all except call the java app and return the data it gets...

Re:Solution (1)

lyberth (319170) | about 11 years ago | (#6475221)

does it run .net?

GNAA LATE POST (-1, Offtopic)

Anonymous Coward | about 11 years ago | (#6474991)

The Gay Nigger Association of America (GNAA) is the group that represents the world's Gay Nigger population as well as those non gay, non nigger patrons that support it. Its mission is to foster a gay and free-loving climate that supports and promotes our members' creative and financial vitality. Its members are the gay niggers that comprise the most vibrant national gay nigger conglomerate in the world. GNAA members create, manufacture and/or distribute approximately 90% of all legitimate pro-homosexual propaganda and blue, rubber dicks produced and sold in the United States.

We strongly urge you to join the GNAA and support our cause. Gay Niggers everywhere need your help!




Join #GNAA on the EFNet IRC Network today!

| ______________________________________._a,____ |
| _______a_._______a_______aj#0s_____aWY!400.___ |
| __ad#7!!*P____a.d#0a____#!-_#0i___.#!__W#0#___ |
| _j#'_.00#,___4#dP_"#,__j#,__0#Wi___*00P!_"#L,_ |
| _"#ga#9!01___"#01__40,_"4Lj#!_4#g_________"01_ |
| ________"#,___*@`__-N#____`___-!^_____________ |
| _________#1__________?________________________ |
| _________j1___________________________________ |
| ____!4yaa#l___________________________________ |
| ______-"!^____________________________________ |
` _______________________________________________'

Christ, those machine figures! (5, Interesting)

abulafia (7826) | about 11 years ago | (#6474993)

I hate to say it, I've been too long out of the MS development world. That kind of overhead managed to amaze me.

I'm deploying systems right now (some buzzword compliant, some (more efficient ones) on lowly little open source, that scale to an order of magnitude higher transaction volume at a fraction of the cost. No, none of them are windows.

No wonder my company has been doing well in a downturn. (Oh, sorry, we're "recovering" now.)

Re:Christ, those machine figures! (1)

Synithium (515777) | about 11 years ago | (#6475039)

That's how i've done it historically. I've found that most web-based stuff benefits from multitudes of systems vs. 1 giant system...and it's hella more stable and hella more reliable after clustering/balancing.

You can run up to a point where you need to get a giant system to do backend transactional work, but by that point your site should be helping make enough money to support the purchase....

Re:Christ, those machine figures! (4, Informative)

gmack (197796) | about 11 years ago | (#6475067)

I hear you.. one of my previous employers had a php/apache system on a dual CPU pIII 500 system with 256 mb ram that easilly handled 500 customers at any given moment.

Not even a hiccup. then the bright guy tried to do that on windows 2000 for another customer.. choked at about 100.

I'll take good performance with low spec hardware over the ability to scale on 10+ CPU systems anyday.

Can .NET Really scale? (-1, Troll)

metatruk (315048) | about 11 years ago | (#6475000)


Re:Can .NET Really scale? (0)

wolfbane01 (648611) | about 11 years ago | (#6475017)

.NET scales so well that Microsoft has quietly dropped it's name from their upcoming product lines.

Not even Microsoft thinks that .NET will succeed...

tell them... (0)

Anonymous Coward | about 11 years ago | (#6475003)

the obvious answer is 'buy more systems', but what if your customer says I only have 20K budgeted for the year.

tell them "php+mysql"

Not a programming site (1)

okigan (534681) | about 11 years ago | (#6475006)

Everything has its time and place. This is not news this more of a programming question.

"Can .Net really scale" now if that was backed up by articles of so and so, benchmarks of such and such, that would be cool.

Lets keep programing questions in programing forums, so when i have programing question i know where to go, because looking for answer for (agh) programming questions on news sites just does not sound right.

Re:Not a programming site (0)

GreatOgre (75402) | about 11 years ago | (#6475138)

Then edit your preferences and remove the "Ask Slashdot" articles from your homepage! It is perfectly reasonable for someone to ask a programming/system design question in this section.

Less OS $ = more Hardware $ (1)

ThatDamnMurphyGuy (109869) | about 11 years ago | (#6475010)

While spend all that ony on an OS, when you could double your hardware with the money you save but not buying windows?

Hell, you can build a P3/P4 1U rack box for ~$800, probably cheaper now a days. Ditch windows and buy a 1U six pack.

LAMP is your solution. (0)

Anonymous Coward | about 11 years ago | (#6475011)

Get rid of the MS expense and poor performance:


That is a solution.

Inquiring minds want to know... (1)

Rohan427 (521859) | about 11 years ago | (#6475014)

...why companies insist on using products that are not robust nor Enterprise ready and continue to buy in to the marketing B.S. of those who are marketing the crap and making many bucks off the sale of it.

Yes, I know that if a client wants it, then you either provide it or find other clients, but my question not only applies to solution providers, but solution requesters as well.


Re:Inquiring minds want to know... (0)

Anonymous Coward | about 11 years ago | (#6475073)

Because idiots like you dont take into account that hiring a geek who is compatible with their business to write custom software and configure endlessly complex packages under linux is more expensive in the long run than paying to use windows.

Sorry to burst your bubble but most people could care less if OSS is free because OSS maintenence is VERY VERY EXPENSIVE!!!

What the web app doing? (2, Interesting)

ThatDamnMurphyGuy (109869) | about 11 years ago | (#6475020)

100 concurrent users isn't a lot.

What is the web app going to do? All the hardware in the world, and even open source won't help you much if you're trying to do the wrong things on a single machine. Database driven site? Commerce? HEavy read, heavy write, or both?

well... (4, Insightful)

confusion (14388) | about 11 years ago | (#6475025)

My first inclination is to recommend throwing that $20k at an ASP that can provide the server infrastructure to give you support for 100 concurrent connections.

Barring that, my recommendation would be to split the web front end and database, spending about $10k on each (using dell or hpq). I can almost gaurantee that you aren't going to get 100 concurrent connections for less that $80k to $100k without doing some sort of load distribution. If you strip down the amount of dynamic content and say script a refresh of a static page, you might be able to do it, but we don't really know what the app is going to be doing.


Not a really good answer (2, Insightful)

valkraider (611225) | about 11 years ago | (#6475030)

I don't really know an answer but I will throw in my tidbit.

But first let me apologize for all the nutheads who say "drop MS - use Linux" and all the derivitives thereof. That doesn't help anyone, and doesn't answer the question. Might as well say "use a dustmop, works great on my floors!".

My advice would be to *try* and use a cluster of some sort instead of the one server approach. Sure, you can get some great big reliable iron - that is wicked fast... But what I have found is that scaling really needs more *bandwidth*. Not network bandwidth but memory, disk, I/O, that sort of bandwidth. Of course, the more machines - the more licenses... Good luck!

Re:Not a really good answer (1)

Synithium (515777) | about 11 years ago | (#6475109)

.NET will scale if it's just hardware you want to add to it. I think it's so new that the efficiency simply isn't there from what my programming friends have done. (Seems bloated, things that were in regular old ASP take twice as long in ASP.NET that sort of thing.)

Anyway, I agree with your statement but you're going to really pay in licensing in the long run. Of course, if the scalability is in terms of DB's a matter of buying large equipment up front in hopes that it will last long enough to justify an upgrade to another huge box...which is real tough to guage and can come back and bite ya in the buttocks later.

What does this mean? (0)

Anonymous Coward | about 11 years ago | (#6475037)

We can't even define .Net so how can we say if it scales or not? What does this even mean?

"but the commercial said!" (2, Funny)

SuperBanana (662181) | about 11 years ago | (#6475047)

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)

Um, like everyone says (0)

Anonymous Coward | about 11 years ago | (#6475048)

there are plenty of open source or even java based solutions that you would not have to ask this question for.

You've got bigger issues. (5, Informative)

Anonymous Coward | about 11 years ago | (#6475050)

First, you didn't really specify anything except in generalities, but there's a few things that pop out from my experiences:

1. Why are you wed to C#, especially in regards to triggers? How many tiers exist, and are you pumping a lot of data back-and-forth.

2. Your scaling numbers are low already, especially under ASP and static HTML.

3. You never really define concurrent requests. For some people, it means simultaneous requests, and for others, it means simultaneous transactions. But you really are looking at fairly low numbers there, in either case.

4. Scaling this should involve looking at where you choke. One common choke point that keeps killing people is in open database connections. Are you running a pool? How large? How many connections does a page take? The single most common problem I've seen in scaling is poorly implemented connection pooling, thereby causing a ton of stuff to wait. Check this, check, then check again.

5. Sync versus Async shouldn't really be coming into play yet on the db.

6. When designing for light-weight systems, you want to minimize the tiers, and minimize the data passed back and forth. Just by reading this, I'm worried that you created a very elegant, but impractical, system that isn't suited to the hardware limitations.

Does X scale? (1)

Halloween (145124) | about 11 years ago | (#6475054)

This is always the most generic performance question. Chances are it can scale. It's like people saying can j2ee scale? Of course it's the the right situation. The other consideration is if the code sucks booty, then it's never gonna scale either. So saying 100+ concurrent requests is vague. You answered your own question with the asp performance benchmark. It can get there assuming what you're doing in the code and architecture is tight and well-written. If you're doing transaction intense, IO intense, synchronous calls, then chances are you won't hit the highest benchmarks out there.

Building a Large-scale E-commerce Site with Apache (1)

ThatDamnMurphyGuy (109869) | about 11 years ago | (#6475056)

Any time someone asks me that question, one of my first response to the "is such and such scalable" is to read this article [] : Building a Large-scale E-commerce Site with Apache and mod_perl

Some of the number in there are damn impressive, compred to most Windows setups I've seen.


Anonymous Coward | about 11 years ago | (#6475057)

goddam bill gates son-of-a-bitch motherfucker cocksucker asshumper fudgepacker dicklicker fucktard piece-of-shit! use LINUX MAN! oPNE sRource ruLeS the WOlrD man DOOD!

you're so screwed.. (1)

mysterious_mark (577643) | about 11 years ago | (#6475061)

I suppose you're PHB saw a full page Ad in 'Time' by M$...

Can my car go really fast? (5, Insightful)

SamBeckett (96685) | about 11 years ago | (#6475065)

This entire story is lacking units.. I am so confused, it is like this...

"I bought a 400 car from my dealer, who said it could go 0-1200 in 57, but I talked to an auto mechanic and he said that the rpm throttled at 4.5 billion, so I don't know if I should get a turbo charger which would at least boost the speed to 1295!!"

If you are talking about 100 concurrent request per second: Any DB worth its salt should handle that IFF the database queries aren't too complex. If they are, your schemas suck. This is doubly true on a 3 GHz machine.

Re:Can my car go really fast? (2, Funny)

quakeroatz (242632) | about 11 years ago | (#6475243)

"I bought a 400 car from my dealer, who said it could go 0-1200 in 57, but I talked to an auto mechanic and he said that the rpm throttled at 4.5 billion, so I don't know if I should get a turbo charger which would at least boost the speed to 1295!!"

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.

Bill Gates has a Corn Cob up stuck his Ass (-1, Troll)

Anonymous Coward | about 11 years ago | (#6475066)

My Theory about Microsoft is that Bill Gates has a Corncob stuck up his ass and that .NET is a steaming pile of horse manure. Bill really needs to fix that shit. Good Night.

Hey! Let's save this guy the cost of MS support! (2, Troll)

pyrrho (167252) | about 11 years ago | (#6475068)

Why don't you just ask MS this question... what? huh? You can't? It's too expensive? They lie? They don't know?

Then why are you using .NET.

A big Nelson HAHA ... (0, Troll)

xmedar (55856) | about 11 years ago | (#6475071)

Using a dual Athlon box with 1G RAM, and a combination of MySQL and an OSS XML-RPC library from Sourceforge we've managed over 1000 concurrent requests without a problem, like the song says, don't beleive the hype, has everyone forgotten how to craft fast, elegant, cheap, well documented solutions, or have I slipped into a parrallel universe where slashdot has been replaced by slashdolt?

.NET is very young (1, Interesting)

Anonymous Coward | about 11 years ago | (#6475072)

The sad truth is that .Net is very young and will have serious issues scalling on the application side.

Java and JSP had this problem early on and still are not overly fast performers.

I would recommend that you spend $10k on a database server. Then get 5 $2k machines, run two as web servers and 3 as aplication servers running your .NET application.

Besides that nothing more then tweaking the code and OS is going to get you to 200 connections.

Are you asking about .NET, or something else? (5, Insightful)

Brento (26177) | about 11 years ago | (#6475077)

2. SOAP is too damn heavy weight to scale well beyond 60 concurrent requests for a single CPU 3ghz system.

It doesn't sound like you're talking about .NET specifically, but just SOAP in general. Make sure you separate out the platform from the product. Saying web services with SOAP won't work is a long way away from saying .NET doesn't scale.

3. SQL Server doesn't support C# triggers or a way to embed C# applications within the database

Embedding applications in the database violates basic scaling principals: you need to separate out into n-tier, right? You don't want the database server doing anything but serving databases. Now, having said that, Yukon (the next version of MS SQL) will indeed let you do certain things in the database with .NET languages, but that's rarely going to be a way to make your system run faster and scale more. Plus, I'm confused - what's your alternative? What database are you going to recommend that allows you to embed C# (C++, whatever) programs in the database itself?

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."

Sounds like it's time to get a more informed consultant who can demonstrate failure or success beyond a throwaway line. I'm not saying replication does or doesn't work, but you can't base your enterprise plans on a single line from a single guy - let alone strangers like me on Slashdot. Furthermore, this isn't a .NET question, it's an SQL question.

It's easy to make big decisions if you break them up into a series of smaller ones. Look at each of your questions and decide if it pertains to .NET, or just a particular product. You might go with .NET and not use MS SQL Server, for that matter.

I KNEW IT! (-1, Offtopic)

Anonymous Coward | about 11 years ago | (#6475082)

I knew it, the sky is falling. We'll never survive this! It's all your fault! Go that way, you malfunctioning little twerp.

The costs here aren't about software. (0)

Coreigh (185150) | about 11 years ago | (#6475083)

It seems to me from reading not only this thread but many similar articles about performance that the related costs have little to do with the software platform and everything to do with hardware expense and the technical expertise to manage the software. Perhaps the end client could benefit from an open source solution and save enough to afford a second or third production class server but this question is not coming from the end client it is coming from a solution provider for the end client. Judging from the question the solution provider's technical expertise is with Microsoft software. I don't have the answer he is looking for but I will offer this suggestion: Maybe you should look in to expanding your services by acquiring some new skills or adding to you team with alternatives to Microsoft.
I work on a university campus where we are "officially" a Microsoft shop but we are making huge strides in integrating Mac and Linux solutions into our MS infrastructure. By making these additions an integration to our infrastructure and not alternatives to it we are creating an extremely robust and useful computing environment for our end users, the staff faculty and students.

Re:The costs here aren't about software. (0)

Coreigh (185150) | about 11 years ago | (#6475144)

I should have added that we are a Microsoft shop out of convenience. We get pressure from UW systems to use MS, but in reality because it is what most student are familiar with it is just easiest to support. Also many of the third party softwares that faculty want to use in the classroom are MS based. To be fair about 10% - 15% of our system is Macintosh and roughly 5% Linux/Unix based.

Each platform has its use.

Java is a DOG (0, Troll)

jrothlis (223342) | about 11 years ago | (#6475089)

I don't have any experience rolling out .NET applications of any size worth mentioning, but I have installed a few Java ones, and let me tell you: what a dog! Users are complaining about the performance, and I'm talking about 5 concurrent users. Not to mention the crap that has to go on the machines in the first place (Oracle IAS or IBM WebSphere) or the time it takes these applications to actually start up. I have yet to understand what the fascination with servlets et al is.

Example configuration is a Windows 2000 box with dual Xeons and 2GB of RAM, running Oracle IAS, connecting to an Oracle db running on Tru64 (Digital Alpha boxes).

Re:Java is a DOG (4, Insightful)

the eric conspiracy (20178) | about 11 years ago | (#6475200)

Example configuration is a Windows 2000 box with dual Xeons and 2GB of RAM

I wrote and administer a J2EE application that supports online rebate offers for a very large company. We have over 350,000 registered users and typically 500 simultaneous sessions on a dual 1 GHz PIII Linux box with MS SQL Server on a similar dual CPU W2K box for the database.

Whatever you are doing with your application (probably misapplication of EJB) is wrong.

Re:Java is a DOG (4, Interesting)

phnx90 (208011) | about 11 years ago | (#6475231)

I got to tell you its probably not java more the actual application server and/or the application. We use ATG [] Dynamo, and for that we get what we pay for: More than 4000 concurrent users ( active sessions ) per Dynamo instance with out any problems). Although with Version 6, they've decided to go all J2EE Buzzword compliant and complicated the entire setup.

Re:Java is a DOG (0)

Anonymous Coward | about 11 years ago | (#6475248)

Wow.. your developers must really suck... I've been writing/deploying java on Orion (basically OAS/OC4J) and it's smoking with hundreds of connections...

The biggest major problem companies/developers have is going too far. they feel due to pressure to have the latest and greatest that even the simplest applications must be programmed using EJB's .. When in fact simple beans and servlets will whoop the crap out of them in speed on a non-distributed object application architecture..

Extended stored procedures (1)

autopr0n (534291) | about 11 years ago | (#6475097)

SQL Server doesn't support C# triggers or a way to embed C# applications within the database

Actualy, SQL lets you embed actual binary code in the database, using 'extendedstored procedures'. You load up a DLL and the code runs inside MSSQL's memory space. (using a dll) Obviously its risky, but probably pretty fast. You could probably write a .net dll and use that in an extended stored procedure.

.NET Benchmarks (5, Informative)

fine09 (630812) | about 11 years ago | (#6475114)

I have been Developing a .NET Portal Application for the past few months. I ran a quick Test on our application just to see how it would run.
Specs Are as Follows:

App Server:
Duron 800
512 MB RAM
40GB HD 7200RPM

DB Server:
Celeron 500
640 MB RAM
20GB HD 7200RPM

As you can see, these are not server class machines, but they seem to run the app alright. I ran a simulation of this application based on the IBS Portal [] running 150 Concurrent Requests Per Second:

The average Requests per second on this app were 98.51. So, IMHO on low quaility hardware, the .NET platform can handle about 100 Requests per second before it starts to get hot.

Ask Microsoft (0)

Anonymous Coward | about 11 years ago | (#6475133)

That's what you paid your shitload of licensing fees for, so why not take advantage of their support and ask them?

Scale the Requests Down (5, Insightful)

mmurphy000 (556983) | about 11 years ago | (#6475134)

You're bound to get lots of responses of how to scale the system up. I'll focus on scaling the requirements down.

Unless the transactions are really long, "100+ concurrent requests" as a sustained rate is a lot of activity for a small business. So, that begs questions:

-- What percentage of these Web service requests are read-only "query" style, and can you use application-aware caching to return results out of RAM instead of having to hit disk for each one?

-- What is the client to this application, and can there be ways to help induce a smoother load from them (e.g., discount rates if the application is used in off hours or on weekends)? Or is the 100+ concurrent requests going on 24x7?

-- Do all the requests have to be filled by the server, or can you blend in some P2P concepts so the clients can absorb some of the load?

-- Can you increase the amount of data handled per transaction (perhaps by switching to document-style SOAP or REST instead of RPC-style SOAP) and thereby reduce the number of requests and excessive message parsing and marshalling?

There's probably a bunch other things to do as well, but those came to mind off the top of my head.

The options are fairly simple... (1)

jorange (634414) | about 11 years ago | (#6475136)

1.) Get more/more effecient hardware.
- A Cluster of some sort.
- Maybe not high end servers but remedial cheap boxes.

2.) Change what you are doing, or what you are doing it on.
- Move to a different perhaps more effecient platform/language/ etc...

3.) Outsource it.


More detail please. (1)

rafael_es_son (669255) | about 11 years ago | (#6475142)

Hello Cliff.

Maybe you could offer more detail on the data volume, complexity of queries and overall complexity of the solution you're planning to offer. The .NET Framework (far, far from perfect) and MS SQL Server (far, far from perfect also) offer offer a wide variety of ways to enhance performance (in-memory caching, all depending on what you want to do. It's not the same to offer a single-one-parameter-off-a-single-field-web-servic e for consumption than to offer a plethora of web services sending over pre-processed serialized BLOBS on request.

Your client *might* be able to pull these off on his 20K budget. It will all depend on what he/she wants to move and how much you need to process it before you do.

Tell us all about it.

Re:More detail please. (0)

Anonymous Coward | about 11 years ago | (#6475235)

for the record "Cliff" is the "Ask Slashdot" editor; "swordfish" is the guy asking the question.

mug, (0)

Anonymous Coward | about 11 years ago | (#6475151)

i was interested in this topic. I was hoping to see some real comments from real developers on how they handled such a problem. but it seems the geeks in here really do not know how to solve the solution. You guys have just gone off and rambled on about he should use this.. he should not be using that.... Why can't you guys/girls answer the question with some technical discussions?!? Or is it because some here are really not geeks........ open source your knowledge about such topics... and for those that are helping out i respect.

You gotta pay to play (0, Troll)

mbullock (623257) | about 11 years ago | (#6475152)

Good luck developing a massively concurrent and highly dynamic application in any enviroment for 20k. Regardless of whether you go open source or the ms route you are only going to afford couple of nice boxes, a decent raid. If you scale off of these machines you better have a fat pipe and a load balancing scheme as well. All this costs dollars. Please justify the complaints about ms sql server. Granted there are the functional limitations listed, but name a cheaper database solution that is more robust that ms sql 2k. We run some pretty large database where I work- couple of oracle deployments on quad risk 450 machines. Sure oracle is better, but you pay big time for the improvements that oracle offers. My experience so far is that .NET is not dramatically more or less scalable than the open source alternatives. I'll agree there a lot of good reasons to go open source, but lets all be honest and admit that complex highly dynamic j2ee based applications are challenging tune as well. I'd suggest a thorough code review and some quality time tuning the application. Or just throw more hardware and more dollars at the problem.

I doubt your client (1)

Just Some Guy (3352) | about 11 years ago | (#6475164)

So, the customer demands the ability to serve 100 concurrent users. I can imagine two scenarios:
  1. They have 100+ employees and will be using it for internal services. At minimum wage, that means they're paying at least $515/hour in payroll. A $20,000 server will cost them a workweek's worth of capital.
  2. They're running an ecommerce site and expect a lot of traffic. At 100 simultaneous users, assuming a 1% sell rate after 10 minutes of shopping, you're looking at 6 sales per hour. If the item costs $.00 or less, then your client is an idiot for throwing so much money at the sale. If the item costs $50 or so, then you're making $300/hour in revenue. Your client can't part with $20,000 to sell $300 per hour?

Either they're throwing a tremendous amount of resources down the drain by trying to hang a picture with a nailgun, or they're just plain cheap and don't want to commit the money to make the project a success.

Any other takes on the situation?

What are you planning on doing? (2, Insightful)

binaryDigit (557647) | about 11 years ago | (#6475172)

You don't really describe the kind of apps you will be running to know if your observations matter in the slightest. You say that you get poor performance when your app does a lot of reflection, why is it doing reflection? Is this really a need, or are you just doing it "because you can"? Are you using this app when you further state that your performance drops by a factor of 10 vs static html? Why would you be comparing the two anyway? If you're serving static pages you shouldn't be looking at a webservice anyway, so no real sense comparing the two.

You mentioned db issues, what type of access are you doing with your databases? Are you thinking replication to deal with scaling across a server farm? Is this data being constantly updated by the servers, or is it mainly static? If you have simple primarily read only data, then something like mysql would be a far better choice, you just don't need the overhead of a full blown db server (like sqlserver, or oracle or even postgres).

Really what you need is to identify what your requirements are and tailor the end result to the systems that best meet those requirements. This also includes support and things like backups (e.g. can the db you choose do online backups if that's a requirement, etc).

Cache till your eyes pop out (1)

Percy_Blakeney (542178) | about 11 years ago | (#6475181)

You need to implement as much caching as possible. Avoid as many recalculations of the same data as you can and save the results in temporary files on the disk.

Of course, caching may not be a viable option for you, depending on your specific situation. I wouldn't know .NET if it hit me in the face, so I don't have a clue as to how it works in the Microsoft world. If you can pull it off, though, you'll get near static-HTML performance for a lot of your hits, saving you the cost of another server or two.

Small performance increase, but try it (1)

harryk (17509) | about 11 years ago | (#6475192)

I remember back from an MS SQL class I took (back at SQL 6.5), and one of the things we did in the class was put the database on a drive without a partition. Now I know what you're saying, "shutup, you can't do that". But you can. I don't recall the specific way, but it was well documented at the time. Look under file systems, or the like for details.

Additionally, look at solid state devices for use as swap. I've seen a PCI based RAM Drive, that was essentially a PCI card with dimm slots on it, you load it up with RAM (1gb max i think) and use it as a swap device.

Just some thoughts

Probably, better question is how much do you need? (3, Insightful)

AndersDahlberg (525342) | about 11 years ago | (#6475194)

1, Buy *a lot* of memory for the box
2, Cache as much as you can of the dynamic content
3, try to stay away from bloated protocols

1: Java, .NET is the same but different - they both require a hefty amount of ram to operate at best performance (and atleast java just gets better the more memory that is available on the server ;)

2: Maybe doesn't help much with scalability, performance will go up though - and maybe you might get good enough scalability too. Database access is always slower than a hashmap lookup (if said hashmap can stay in ram ofcourse)

3: Web-services etc etc are maybe good in theory but at the moment those technologies are a duck in a pond when it comes to scalability and performance. Use a highperformance .net remoting implementation instead - you can probably find a few with a quick google search (IIOP comes to mind, good way to make future interfacing with other technologies available just a easy as with webservices/soap and gaining better performance in the bargain).

Also investigate how much you can make your site use asynchronous notifications, more is better - even if ms messaging client is too bad, you can write your own asynchronous "protocol".

On any properly implemented system... (5, Insightful)

rcw-home (122017) | about 11 years ago | (#6475206)

...the overhead of the framework for your code contributes only a small percentage to the total system load.

In other words, it's not what you're using to do it, it's how you're doing it. If you're just pumping out files to clients on modems, 100+ concurrent requests isn't much. If those requests are all CPU-bound, I hope they're all niced or set to a low priority, otherwise you won't be able to log into the machine in a reasonable amount of time. If it's 100+ concurrent connections, but those connections aren't necessarily waiting for a response (just idle until the user does something) then you might not even care.

How many whatevers you have must always be qualified by knowledge of what those whatevers are doing. Otherwise your whatevers won't fit in your $20k thingamajig. And then Mr. Bigglesworth gets upset.

Of course, whether .NET is a properly-implemented system is a separate debate...

scaling: memory, serialization and web services (0)

Anonymous Coward | about 11 years ago | (#6475216)

my experience on a single machine was that it doesn't scale well at all. firstly, when you look where the processor cycles really go, you'd be wondering. secondly, the underlying system takes so much memory (and one under load, processor cycles too) that your machine looks much smaller before you even got to process a single request. and finally, on some critical tasks, it is even quite a bit slower than java (even though ms would want you to think otherwise and even though java is really slower in most cases). On memory intensive requests, you'll regret having .net. And the more requests you get, the worse it gets. It clearly was designed for multiple servers doing smaller tasks via webservices, but you lose lots of speed that way because of the way .net serializes and deserializes the data (which is extremely slow, even for smaller structures, but it takes all the programming work that the developer would have to do otherwise). So the point is: The only way .net scales is by scaling up the hardware (mucho). and because of stability issues, you guess yourself that if you distribute large tasks to smaller webservices like ms says you should, you increase the probability that the whole system is down.

Must be doing something wrong (1)

Coward the Anonymous (584745) | about 11 years ago | (#6475244)

"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?"

Well, we scaled way over 200 concurrent requests on dual P3 (around 1Ghz per proc) and 1GB ram with W2k and SQL 2k.
You should really evaluate you schema and what you are trying to do with it. Also look at your memory and I/O usage.
There is no reason you shouldn't be able to scale well over 200 users with SQL 2k on a dual proc box with a decent amount of memory.

Ackward Worries, Threading and Responsiveness (4, Informative)

metacosm (45796) | about 11 years ago | (#6475245)

Well, first of all -- you really didn't give us enough information to give a good answer, but -- it is a slashdot question, and getting all the info would ruin half the fun!

Anyway. If you can't support 100 requests a second on 50k of modern hardware, you have huge design issues and other problems. Just from your short description of the project, I fear you have crawled into over-engineered land because alot of the technologies are much more useful on seperate boxes/distributed enviroments.
  • #1. MSMQ is mature. I have seen no evidence that it won't scale. How many messages are you planning on piping through it per request? Why do you need MSMQ for an application running on a single box?
  • #2. SOAP is "heavy-weight" -- I guess I would have to ask what "light-weight" item are you comparing it too? The number you dropped is utter bullshit, but their is going to be an upper limit to it.
  • #3. Yes, SQL Server doesn't support C# triggers or embedding C# apps -- WHY THE HELL WOULD YOU WANT THAT -- seperate your database from your application. Lots of the technology you mentioned in your question are for seperating layers, and then you wanna do something SILLY like cram C# into the database.
  • #4. All requests are not even close to equal, it totally depends on the quality of your requests/stored procedures, how normalized or denormalized your data is -- and how intelligent you DBA is.
  • #5. Very fuzzy question, but on 50k of hardware for a custom develop internal app -- you should be able to scale. Again, how stuff scales depends on how it is written.
  • #6. Uhh, ok, not really a question. Maybe avoid reflection. :)
  • #7. Ummm, just ran a local test on an MS box (2k3) and my numbers didn't drop nearly as much -- check you settings. I went from around 290 rps to 180 rps.
  • #8. Good DBA, optimize stored procs, get the data cached, use sync calls.
  • #9. It used to not work, I have recently got it working, but I still don't trust it, and most DBA's I know don't trust it either. But, test it out, in most of the cases were this is needed/used -- work arounds a very human-work intensive and often work like crap.

Good Luck. Remember that C# Web apps can be multi-threaded, and remember to optimize the parts of your application that MATTER. A wise man once said "Premature optimization is the root of all evil". Find the slow parts, fix them, get the most bang for buck. Also, remember to keep those pieces loosely-bound to each other, no C# code in the DB!

P.S. I hope you haven't over-engineered this tool as badly as it sounds like you have :)

/, my server and i'll post perf results (1)

GiorgioG (225675) | about 11 years ago | (#6475246)

All that's there right now (as of yesterday) is a review of my new laptop (Compaq Presario X1000) []

It's an app/site (.net 1.1 framework) running on a Win 2003 server, the backend db is MySQL 4.0.10.

H/W specs:

1GHZ Athlon

This is a new dedicated server at ServerBeach and I'm really curious to see how well this server does under a /. load, so bombs away.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?
or Connect with...

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>