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

653 comments

  1. Why are they running Windows then? by corebreech · · Score: 1, Insightful

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

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

      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.

    2. Re:Why are they running Windows then? by KrispyKringle · · Score: 4, Insightful
      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.

    3. 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!

    4. 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.
    5. 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!

    6. Re:Why are they running Windows then? by ThatDamnMurphyGuy · · Score: 5, Insightful

      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.

    7. Re:Why are they running Windows then? by TheJZA · · Score: 1

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

      --
      The JZA
    8. Re:Why are they running Windows then? by autopr0n · · Score: 1, Insightful

      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)

      --
      autopr0n is like, down and stuff.
    9. Re:Why are they running Windows then? by Atzanteol · · Score: 4, Insightful

      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.

      --
      "Ignorance more frequently begets confidence than does knowledge"

      - Charles Darwin
    10. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      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.

    11. Re:Why are they running Windows then? by nvrrobx · · Score: 5, Insightful

      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.

    12. Re:Why are they running Windows then? by sig+cop · · Score: 0

      You are such a tool.

    13. Re:Why are they running Windows then? by rafael_es_son · · Score: 1

      Those who actually do some work on the biz know that this kind of reply is overly simplistic. A score and half of times the client simply does not want anything but Microsoft, period. It's a support issue.

      Of course, you say: buy RedHat or SuSe + support. But who will offer 24/7 support for MySQL, Apache, JAVA JRE, etc. when the application's deployed?

      At other times, Microsoft is the one to find the deal and offer it to you as a partner, no need to guess a Microsoft-based solution will be required. Unless of course, you're rich and don't need the business or you work on imaginary text-book solutions from your dorm.

      Peace.

      --
      HAD
    14. Re:Why are they running Windows then? by Anonymous Coward · · Score: 2, Insightful

      "IT group"? In a company whose total budget for a new machine running a mission-critical service is $50k?

    15. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      You are one dumb motherfucker!

    16. Re:Why are they running Windows then? by Jayjay75 · · Score: 1

      He didn't say it would be on the Internet. He just said "web services". Intranet? Thin client?

    17. Re:Why are they running Windows then? by meme_police · · Score: 3, Insightful
      Come on. Small businesses don't need to employ a full time UNIX administrator if the consultant does his project and training right. If the consultant has Windows experience then he should provide a Windows solution, if the consultant has open source experience then he should provide a Windows solution. Once the complexity for the user moves beyond a simple click or two then the training issues are going to be the same whether it's Windows or UNIX, GUI or CLI.

      And since he's talking about web services I would think he would be providing a web administration interface. If something breaks on the backend it's going to take a consultant to fix things whether it's Windows or UNIX.

      I agree with the one poster that if this guy has low budget clients then he needs to be reducing costs in software so he can spec better hardware. If that software is open source then he needs to start learning open source stuff or find richer clients.

      --

      The meme police, They live inside of my head

    18. Re:Why are they running Windows then? by JCMay · · Score: 0, Offtopic

      I don't know about that; I've found Red Hat 9 most impressive.

      * My winprinter (Samsung ML-1210) works right out of the box; it's a menu pick in the printer setup program!

      * My USB scanner worked the first time (once I figured out which was the proper firmware file).

      * Nautilus' built-in CD creation facility beats the pants off (my experience is admittedly limited) Windows CD creation products.

      * The included version of Wine actually *prints*! I was never able to get it configured properly to use my printers; now it works right out of the box!

      Gotta give those guys credit. I downloaded the ISOs for 9 (I bought 7.1), but I think I just may have to get the box for it so they'll keep going.

    19. Re:Why are they running Windows then? by ThatDamnMurphyGuy · · Score: 1

      The same applies to internal machines as well. If you don't keep up with them, and some nut comes to work with a trojan on his lappy, or get's one at work, then your Intranet server is owned.

      Six of one, half dozen of the other. Don't even get me started on Egress filtering of internal machines.

    20. Re:Why are they running Windows then? by mickwd · · Score: 2, Interesting

      There is a valid point behind what you're trying to say.

      But reading comments like this, is it any wonder that businesses, "small" and large have stopped spending so much money on IT recently ?

      As far as businesses are concerned, computers are just tools to do jobs, to help those companies generate money. If they don't help make them money, there's no reason for them to spend money on IT.

      And here we are telling those companies they don't just have to buy the equipment, and the software, they have to continuously spend time and money on people to protect them, look after them, and update them.

      No wonder companies are beginning to ask "what's the benefit ?", "why should I spend this money ?".

      And no wonder IT people are beginning to ask "where are all the jobs ?".

    21. Re:Why are they running Windows then? by zulux · · Score: 4, Insightful

      A small business CANNOT afford to employ a full time UNIX administrator.

      They can't affor NOT to: We service many small compaines who use Windows desktops connected to UNIX (OpenBSD firewalls, FreeBSD servers). The savings in time alone are staggering:

      Real example:
      One office of ten accountants has been managed by me lasst year for under $3000.
      They have offsite backups, a PostgreSQL databe, Samba file serving, 56K nat, Firewall, email filtering.

      If (and its a BIG if) one of the servers has a problem - I can remotly fix it over my cell phone connection, and I don't have to charge them travel time. If it was Windows - I'd have to drive there.

      Windows is expensive because it requires full time baby-sitting. UNIX, once deployes is usuall fire and forget.

      --

      Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

    22. Re:Why are they running Windows then? by digidave · · Score: 5, Insightful

      A common misconception is that anybody can administer an MS server, but the truth is that it's not a whole lot easier to do than administer a Unix box. What's scary is that it looks easier and most IT managers think it's easier. That's why most Windows admins are grossly incompetent, especially when it comes to security.

      A good Windows admin costs the same as a good Unix admin.

      --
      The global economy is a great thing until you feel it locally.
    23. Re:Why are they running Windows then? by Alioth · · Score: 5, Insightful

      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.

      Windows systems need an administrator every bit as clueful as a UNIX sysadmin if they are to have any reliability at all. If the Windows 'sysadmin' has to be able to point-click-go to be able to function, in all probability the Windows system will be unreliable and insecure.

      It is a false economy to think that "It's Windows. I can hire a junior reboot monkey to admin the system" - a Windows system really does require a sysadmin every bit as competent, skilled and clueful as a Unix system. A Windows system can be very reliable with a clueful admin - but it *needs* a clueful admin. Companies are shooting themselves in the foot if they think otherwise.

    24. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      Fuck you, stay off the god damn Internet if you aren't going to admin the box. Fucking shithead nimda spreading mother fucker.

    25. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      I like the way you obfuscate your email address! That way, none of the harvesters will be able to send spam to you at PhrostByte@socal.rr.com ( PhrostByte@socal.rr.com ) ! Super clever, phrosty!

    26. Re:Why are they running Windows then? by j3110 · · Score: 4, Insightful

      Actually, we supply a lot of small businesses in our area with whatever tech support they need. Kind of an outsourced IT staff. Paying us to fix things is as cheap as paying an MSCE monkey to spend 8 hours to fix a 5 minute job. We support OSS, so they save on licensing too. We even have a software team to make custom software, then release it open source.

      The point is, they should be looking for the right service. You don't need dedicated staff with open source software. We get a call maybe once a month about an OSS product gone bad (usually something silly that can be fixed in 5 minutes if you know what you are doing), and we ssh in and fix it. We get calls about MS products and idiots that don't turn on things before they want to use them from 8AM till close every day. I'm pretty sure that most of our clients have spent more money on MS related tech support than OSS related tech support. I can calculate right now that the TCO for a pirated MS product would still be greater than a OS product by a significant factor. The speed at which MS products have to be fixed/patched is very much greater than a properly configured Linux system, and you're paying for that hell to boot.

      If you want to shoot yourself in the foot by jumping on the .Net train before you can see where the tracks are going, then you go ahead. As for me, I plan to use as much cross-platform programming (mostly Java because the GUI is the same everywhere) and free/open source software that I possibly can, mostly because the products I use like JBoss (Free J2EE), Samba, MySQL/PostgreSQL/SAP/Firebird, etc. are more stable than .Net, Windows, MSSQL, etc.

      Before those of you that say the SQL Server is actually good start flaming me, that's where a lot of headaches come from. SQL Server drops records and corrupts more than MySQL before transaction support. (There, now I'll get flames from both ends.) Also consider the price you are paying. (Per connection last time I checked.) Spend more money on the hardware and get RAID-1 on good disks and a good UPS, and you will have a faster, more reliable RDBMS.

      --
      Karma Clown
    27. Re:Why are they running Windows then? by ThatDamnMurphyGuy · · Score: 1

      Well, that's a good point too. I can certainly understand business wondering where the benifit is. I just think it's either strange, or very naive of a company the purchase an OS and a server and think that it requires no extra effort; ever.

      If the company DOES think that, then I think we need to do our best at point to educate them otherwise. They may understand $, so I bet they can unserstand that if they don't have someone take care of these things, it will cost them ever more $ to fix/reinstall them. THat's assuming that nothing else happens; live a trojan just mailed your accounting to your clients.

    28. Re:Why are they running Windows then? by 4of12 · · Score: 5, Insightful

      telling those companies they don't just have to buy

      TANSTAAFL.

      No matter what you'll have to layout cash to buy the three essential ingredients:

      1. hardware
      2. software
      3. people to support and maintain the hardware and software

      Microsoft marketing would have you believe that their software solves all your problems and that lots of cheaply available people can do the job. They'll still charge you for their software and you'll find out that hardware still costs something and that getting good people to support and maintain your software and hardware is more expensive, but worth it.

      Linux advocates will tell you that the software costs zero and that any competent sysadmin can do the job. You'll find out you still have to buy reasonable hardware. And you'll find out that getting good poeple to maintain and support your hw and sw costs more, but is worth it.

      Any way you go you're gonna pay.

      --
      "Provided by the management for your protection."
    29. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0
      what kind of small business hires a developer to write a custom .NET application needing a high level of scalability, but without any thought into training and maintainability?

      it does take skill to successfully run and maintain a server with the kind of workload he's talking about; trusting that custom solution to work just by "point and click" is just fucking retarded.

      i can't believe someone would advocate going with a solution just because the installation process is easy (Exchange Server and all!). what about the process of installing and maintaining the custom solution?

      if i were a small business owner and plopped down $50k, i'd make goddamned fucking sure there's some kind of maintenance agreement included, that covers not only the code but the system administration tasks like maintenance and hardware upgrades, tasks that i wouldn't trust to just any ape capable of "pointing, clicking, and going".

    30. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      I can remotly fix it over my cell phone connection, and I don't have to charge them travel time. If it was Windows - I'd have to drive there.

      Right. Ever heard of terminal services/remote desktop?

      Windows is expensive because it requires full time baby-sitting. UNIX, once deployes is usuall fire and forget.

      So Unix does not require patching? Funny. Real funny.

    31. Re:Why are they running Windows then? by nathanh · · Score: 2, Informative
      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).

      Yes, the Windows GUIs are significantly better than the UNIX GUIs. No, I don't think that matters. I've found that the Windows admins need to be every bit as clueful as the UNIX admins. Those GUIs hide the details, but they don't hide the concepts, and the concepts are still hard. There's no value in somebody clicking on the GUI buttons these days; modern systems are far too complex to get right by chance. The installer you mention is only 5% of the job.

      At the end of the day your Windows admins are going to cost just as much as your UNIX admins. Quickly looking through the newspaper proves that point neatly; the salaries are within 10% of each other.

    32. Re:Why are they running Windows then? by sootman · · Score: 3, Insightful

      Sorry, I've got to go with the poster who says "If you don't have time to take care of your box, get the fuck off the Internet." I run a Linux/Apache site and my logs are full of requests for "default.ida?XXXXXXX..." and other viruses that came out (and were fixed) *years* ago. With UNIX, you pay a bit more in the beginning and then you hardly need to touch the box. Anything that needs to be done, a competent admin can do with nothing more than SSH. As opposed to MS boxes that just sit around, get owned, and fuck up everything. Sorry, but you can not have security and ease of use and low cost and easy to use all at once. Security is *not* fire-and-forget. Security is ongoing *work*. Work: not fun and not easy. You can't have your cake and eat it too. learn your way around, or pay an admin. Otherwise, someday you'll get owned and you'll become one more idiot contributing requests for 'default.ida' and 'root.exe' to my Apache logs.

      And I'm sick of this attitude that always seems to come from SB owners, like they are *owed* something and *exempt* from working just because they're a small business. What would we do if they said "I don't have the time or money to learn the rules of the road or how to care for an automobile, I just want to blast down the road at 130 mph, trailing a could of oily smoke, because I'm a SMALL BUSINESS OWNER and I'm in a hurry, dammit!" Would we allow that kind of behavior? HELL NO. I'm sorry, it costs time and money. ACCEPT IT.

      --
      Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
    33. Re:Why are they running Windows then? by GoofyBoy · · Score: 1

      "IT group" = one guy who originally hired to do something related to the company's core function.

      --
      The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
    34. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      ...then why don't you employ yourself as the full time Unix admin?

    35. Re:Why are they running Windows then? by neuroxmurf · · Score: 1

      You're absolutely correct, "A small business CANNOT afford to employ a full time UNIX administrator." Nor can they afford to hire a full time NT administrator. The difference is that the Unix machine has some small chance in hell of staying (a) up and (b) secure with intermittent contract maintenance, and the NT system has none.

    36. Re:Why are they running Windows then? by neuroxmurf · · Score: 1

      In fact, my experience has been that to keep a windows box up and secure, you need one extremely competent (ie, $150k/year with overhead) admin per one to two machines; with Unix you can usually get 50 to 100 machines per admin if they're fairly homogenous.

    37. Re:Why are they running Windows then? by dabootsie · · Score: 2, Insightful

      Right, and those specifications sometimes push a project outside the realm of possibility, as seems to have happened here.
      Either work with the client to get the specs changed to something feasible (which consumes time you can't bill for), or pass on the job and look for another client. Them's the breaks.

    38. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      Well maybe I've just been very unlucky, but at the various companies where I've worked as a *nix admin/software developer, the Windows admins really are "point'n'click" monkeys who have no idea what goes on outside of their cosy little GUI! MCSEs seem no more clueful than the self-taught variety, indeed I often wonder if there's any challenge at all to obtaining that certificate aside from walking into a room and pressing a power button.

      Really, it's frightening how little someone has to know to assume the role of "Windows network administrator" (I'm posting this anonymously as I have to sit next to one ;-). Virtually every other support call from the users is "fixed" with "shutdown and reboot", that's when the guy next to me isn't in the server room rebooting one of the NT servers as a process has died, taking the whole ship down with it. Major problems are "fixed" by re-imaging, or just replacing the PC. Great eh?

      Luckily for myself and 2 other developers, we get to use Linux on our servers and desktop... well, it would be great if the manager wasn't also a Windows wally, who loves us to write all our documentation in Word (including all the shell scripts nobody else actually ever needs to use - so a 1 line shell script requires 10 pages of documentation), and store all sorts of crap on Access databases all over the place. This despite 3 of the Linux machines loaded up with Apache, PostgreSQL, MySQL, Samba, PHP and everything else that would easily handle the "tasks" he needs Access for. Luckily for us however, he seems to feel the need to print out everything he finds on the file system/databases, so he might end up buried in the huge piles of paper surrounding him one day ;-)

      No, from my experience, if you can install Windows onto a machine, you're already on par with most Windows "experts" operating in the field... The way I see it, the MCSE commands about as much respect as a Trabbant badge on a car.

      (I'm an RHCE BTW ;-)

    39. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      We've got a small company and run redhat. Our admin is a newbie when it comes to linux but he learns fast. There are usually not THAT much problems and with the help of the web he seems to be able to solve most of them. Sometimes he asks me for help - i'm certainly no expert, but have somewhat experience with it. So far we got the problems solved and it's really nice to watch a system getting better over the time. We've reached the state where the server is running smooth and we're adding now step-by-step new features. Actually it's hard to slow down the admin since he figured out how tar and ./configure work :)

      So far linux is really nice for us... the system growing together with our company, and uptimes getting longer all the time.

    40. Re:Why are they running Windows then? by KrispyKringle · · Score: 4, Insightful
      I think you're missing the point. First, nobody said he wasn't smart enough. He was just comparing options. My point was that the comparison is worth making; there is no valid way to say, "OSS is always better and cheaper."

      Furthermore, and I don't know much about .NET, he was also looking for an SQL backend. You mention "Linux, apache, PHP, whatever" and "some servlet engine, jsp, etc" without seeming to really understand a couple of crucial points: the "Java one" would still need an OS and webserver, and all three still need a database server. Really fancy, high-volume DB servers such as Oracle cost a lot. So then we end up comparing, say, MySQL, MSSQL, mSQL, and PostgreSQL? Or Perl, PHP, ASP, and JSP/servelets? I'm sure I'll get flamed by zealots, but those aren't always easy comparisons.

      Write it off as ignorance if you like. It doesn't sound like you're a professional in this field. But so what if he is ignorant? That was my point; if he is best with MS, it's not going to be profitable for him or his client for him to be mucking about with Unix instead.

      As for the amount of money you'd save, well, I already commented on that. Sometimes the figures aren't necessarily what they may appear to be; the initial layout is certainly greater with commercialware, but support, time spent on maintainance and deployment, and so forth, is sometimes a lot less.

    41. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      did some moderator hit informative becuase they missed they the offtopic button, or what?

    42. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      Let me teach you the four REs of Windows administration.

      Retry.
      Reboot.
      Reinstall.
      Repeat.

      Note that "retry" is for the operation that failed, and "repeat" applies to the whole RE process.

      Those four words will solve just about any problem on a Windows system, and can really piss off some MCSEs. What fun!

    43. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      >>Windows systems need an administrator every bit as clueful as a UNIX sysadmin if they are to have any reliability at all

      yea but microsoft is not selling that.

      they are pushing "it's so easy monkeys can run it"

      you can't swing a dead cat without hitting unqualified people running windows server/workstation.

    44. Re:Why are they running Windows then? by archen · · Score: 1

      A small business CANNOT afford to employ a full time UNIX administrator.

      A small buisness probably doesn't need a full time unix administrator in my opinion. From what I see small businesses are in a bind. They get a solution (linux, windows or whatever) then end up really gouged with support costs. Thus enter me (hello, I'm sort of a Linux admin). I was hired mainly because I was pretty familiar with Linux. I seriously don't have all that much stuff to do with the Linux box either as it never really breaks. I also spend my time asemmbling computers, adding features to the company intranet, or just fixing general computer problems. Small businesses don't need one particular thing, they need someone who has a fair ammount of skills in a lot of areas (but probably isn't uber in any of them either). In the end it's a lot cheaper to hire me (especially considering I don't get paid a whole lot compaired to a Unix or NT Admin) then pay continually for external support.

      It's also a nice feeling that my job wont be going to Inda either =)

    45. Re:Why are they running Windows then? by ccarr.com · · Score: 2, Insightful

      While I don't disagree with you, comments like this make me sad. It's too bad that Internet publishing has become an experts-only club. Much of the early optimism about the Internet (especially the web) centered around empowering ordinary people to get their message out without having to own a printing press.

      --
      I don't know half of you half as well as I should like, and I like less than half of you half as well as you deserve. BB
    46. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0
      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.

      So then, he isn't really doing much consulting. He is just telling them what they want to hear.

    47. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      Really? At my place of work, we have 13 Windows admins per box, and each Unix admin handles seventy jillion fairly homogenous machines. We also have nekkid fairy princesses and Free Heroin Fridays.

    48. Re:Why are they running Windows then? by neuroxmurf · · Score: 0, Offtopic

      Mmm, heroin.

    49. Re:Why are they running Windows then? by ThatDamnMurphyGuy · · Score: 1

      That's why we have things like ISPs and ASPs. You can publich anytime you want in either of these situations. Let someone else take care of the hardware, software, and connection.

      But you never know. Maybe IBM will have the right type of pixie dust and enough totally reliable, give-it-a-triable hands off servers so anyone can be the pinnacle of web presence. :-)

    50. Re:Why are they running Windows then? by phliar · · Score: 1
      A small business CANNOT afford to employ a full time UNIX administrator.
      How small is this "small"?

      Unix administrators aren't expensive because Unix is somehow magical. It's because becoming one entails a certain amount of training. If you're a web-oriented company (as in, you run a web-app that is the main source of your revenue) and hire a cheap admin because any monkey can point and click that Windows interface, ... I wouldn't want my business dependent on untrained MSCEs. And your "not terribly computer literate" friend should not be running a commercial web site so it doesn't matter what "makes him crazy." Competent system administration is not cheap, and that doesn't change with the OS.

      But if you just need to handle a little info web site and email for five people, sure, your cheap part-time Windows sysadmin may be fine for that.

      --
      Unlimited growth == Cancer.
    51. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      Remote desktop over a cell phone? I want more animated puppies and paperclips!

    52. Re:Why are they running Windows then? by ccarr.com · · Score: 1

      Yeah, that's a good point, but when someone else owns the server, you have to comply with their terms of service which often limit what you can do or say.

      --
      I don't know half of you half as well as I should like, and I like less than half of you half as well as you deserve. BB
    53. Re:Why are they running Windows then? by b_e_o_w_o_1_f · · Score: 1

      From what I remember from my senior economics class (high school, this was only a year ago), it's TINSTAAFL. There is no such thing as a free lunch. Or do you use different words?

    54. Re:Why are they running Windows then? by Pinball+Wizard · · Score: 1

      s/ain't/is

      --

      No, Thursday's out. How about never - is never good for you?

    55. Re:Why are they running Windows then? by ThatDamnMurphyGuy · · Score: 1

      Good point. I'm all in favor of not having to answer to an ISP. It is nice to run your own stuff and do what you want.

    56. Re:Why are they running Windows then? by pivo · · Score: 1

      Um, I'm a Linux advocate and I will tell you that the software is indeed free. If you disagree, you'll need to provide some proof that Linux is not available for free. Sure, people cost money but good admins for either OS cost about the same.

      In case you haven't noticed, Microsoft's operating systems cost many thousands of dollars when you buy the licence that let's you run an unlimited connection internet/intranet server. That's many thousands of dollars more that zero dollars, and often as much or more money than the hardware it runs on.

      Yes, you're going to pay to run Linux too, you just don't have to pay for the software, unless of course you want to.

    57. Re:Why are they running Windows then? by monsterzero2003 · · Score: 1

      The client is ignorant, but he is paying you good money to treat his ignorance as wisdom. If he wants Microsoft he has to be right because he is paying you for it. But it is unethical to have the client persist in the delusion. Are you willing to be unethical for cash? His "requirements" are evidence of the "dream state" he lives in - Plato's cave dwellers. Actually this guy is living in the cave too...

    58. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      Since I bought RedHat 9, my winprinter can run embedded C# triggers! (karma++)

    59. Re:Why are they running Windows then? by rve · · Score: 1

      Studies show that the total cost of ownership of a windows server is about the same as a unix one, as you _do_ need a system administrator for a windows server. Having the accountant do the system administration on the side is going to cost you more than you save, in decreased uptime, loss of data, lost customers and the need to hire an extra accountant as the one you had no longer has enough time to do his job.

      I don't think the price of the OS is an important factor, compared to the cost of custom(ised) applications and service contracts, so money is not a reason for a business to choose linux.

    60. Re:Why are they running Windows then? by iendedi · · Score: 1

      A small business CANNOT afford to employ a full time UNIX administrator.

      Well, sure, except the article talks about database performance. This leads me to believe that this business needs to hammer their database, in which case they REQUIRE a database administrator (at least). Once you are there, it is already cheaper to administer if you switch to Unix/Linux. Administrating a Windows server platform is much more expensive than a simillar Unix/Linux platform primarily because of all the graphic interfaces. What you want is good console control and scriptability.

      --

      It is your personal duty to fight for what is right on a daily basis. Ignoring injustice is identical to approving
    61. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0
      That's impressive?! I expect this of Windows. Take the latest Windows, Windows XP, for example:

      * My winprinter (Samsung ML-1210) works right out of the box; it's a menu pick in the printer setup program!

      Plug your USB printer into Windows XP and it prints just fine.

      * My USB scanner worked the first time (once I figured out which was the proper firmware file).

      Plug your USB scanner into Windows XP and it scans just fine.

      * Nautilus' built-in CD creation facility beats the pants off (my experience is admittedly limited) Windows CD creation products.

      Drag and drop files in Explorer onto your writable CD drive, then click 'write to CD'.

      * The included version of Wine actually *prints*! I was never able to get it configured properly to use my printers; now it works right out of the box!

      Windows prints.

    62. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      Why so they can be asked to donate. All the open source project have their hand out. If it is so damn much fun hacking, build me enterprise software for free and put up with my demands.

    63. Re:Why are they running Windows then? by pHDNgell · · Score: 1

      Um, I'm a Linux advocate and I will tell you that the software is indeed free. If you disagree, you'll need to provide some proof that Linux is not available for free.

      Linux, by itself, does not solve any business problems. You almost always need something custom on top of it, which will cost in one way or another.

      --
      -- The world is watching America, and America is watching TV.
    64. Re:Why are they running Windows then? by Anonymous Coward · · Score: 1, Insightful

      People need to realize that IT is not a "cost center" or a "profit center" it's a "business enabler".

      Keeping machines running is a form of insurance. Haven't any of these companies had to spend 10K's of dollars after a security breach? They'll start paying a few hours per month for security pretty quick after that.

      Nobody complains about the ROI of insurance do they?

      True, certain VENDORS like to take advantage of folks and charge $100,000 for a $1000 job, but let's not throw out the whole IT department because of this.

    65. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      Huh. I'm a really competent Unix, Windows and Netware admin. I guess I should be shooting for $450k then?

      You're dreaming if you think admins, even really competent ones, make anything close to $150k. How much experience did you say you had?

    66. Re:Why are they running Windows then? by Foofoobar · · Score: 1
      Exactly. Apache, MySQL, PHP, Java... they work on all platforms and I should know; as Microsoft is a big supporter of where I work, my company won't let me run on Linux so I just run cross platform compliant stuff on windows.

      Never trust development languages that only work on one platform...

      --
      This is my sig. There are many like it but this one is mine.
    67. Re:Why are they running Windows then? by neuroxmurf · · Score: 1

      I said $150k COST WITH OVERHEAD -- ie, a salary in the $60k range, which is high but not unreasonable.

    68. Re:Why are they running Windows then? by Daengbo · · Score: 1

      Yeah. Isn't it funny how the "Can I impliment this in .Net?" question got a shitload of "Use LAMP!" answers. I didn't even really see any Mono recommendations (not knowing anything about Mono, I assume that means it's not ready). LAMP isn't a magic elixer(sp?). You can't use it for everything. Well, OK, I use it for everything, but it's company stuff and the company is small. Everyone else should evaluate the options they have, though. Give me some .Net (or at least some Mono) answers, please!

    69. Re:Why are they running Windows then? by Foofoobar · · Score: 1
      Neither of which are provided by open source? You're kidding right. I've seen peoples mom's use Red Hat. How's that for ease of use and simplicity. Plus with the open source development community, just about anything you can imagine has been developed or is IN development... and free.

      And unlike Windows, it's more secure and more stable. Didn't 30,000 Windows machines get taken out by SQL Slammer? Doesn't Microsoft have the worst record for security? Reboot isn't the answer for open source my friend. When we put a machine up, it stays up.

      --
      This is my sig. There are many like it but this one is mine.
    70. Re:Why are they running Windows then? by vladkrupin · · Score: 1

      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.

      Dude, wake up! When was the last time a consultant had much of a say in what environment is going to be used?

      Let me re-phrase it this way:
      I've worked on a few (probably 10) small-ish (in terms of budget) projects lately. From those,
      - about 6 were restricted to a certain environment (mostly M$) because the people who would maintain that stuff knew only M$, and it wasn't worth to re-train them/hire someone else. We had no say in that.
      - about another 3 were also restricted to M$ stuff for no good reason (government had a "good" deal on M$ software, or just didn't trust open-source stuff, etc)
      - 1 was where we got to decide what it was going to be like (and we also maintain it now).

      I love open source. I adore it. I contribute to it. I am typing this post on a mandrake box (honest!). And yes, it is cheaper and simplier to maintain OSS servers. And it goes without mentioning that the price of that .NET can probably pay for a better box or for allowing some sort of a clustering solution. Open source is great, M$ sucks - we all know that... ...But that's where the reality kicks in :( I work for a consulting company, and so does the guy who asked the question. Which means, we are stuck with whatever the client wants (unless they really don't care, or you can convince them to go OSS route, which rarely happens).

      Bottom line: Unless there is (1) so much money at stake that you just can't afford not looking at the alternatives (think German Government, google, yahoo, etc) or (2) you are actually expected to innovate, you don't often have a say in what you get to implement.

      --

      Jobs? Which jobs?
    71. Re:Why are they running Windows then? by PhrostyMcByte · · Score: 1

      tis okay, spamassassin does wonders ;)

    72. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      ...then reality sets in and then he realizes that he's hemorrhaging cash as he realizes that .NOT doesn't handle the same traffic and transactions that BSD or Linux can on the same system. Then in an emotionally volatile response, he'll just fire the contractor when he realized how ignorant that he himself was. Thus goes the downward spiral until brainless CEO decides to trust consultants that know what they're doing instead of the hype about Windows Server 2003 being the easiest and most powerful server OS out there (probably as he's reading the ads from various business-oriented computer magazines such as E-Week).

    73. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      Remote desktop doesn't work if Windows is fucked, that's almost guaranteed. Plus, who the fuck exposes RDP to the net?

      I do the same type of remote unix admin to a small site with local windows clients and cifs. The gateway is slackware linux, exposed to the net is ssh and vanilla apache, and only my account is valid to login via ssh.

      Patches? None of the patches for slackware have required a reboot for the longest while. Even OpenSS* can be updated without a reboot. No thanks Windows, you don't belong here.

    74. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      So basically Windows XP does everything Red Hat 9 does and costs $300 more? Lovely. I'll download the RH 9 ISO images now. Thanks.

    75. Re:Why are they running Windows then? by realmolo · · Score: 1

      Alll the examples you give really have nothing to do with the kinds of things you want to do with a SERVER.

      That's the rub with every distro of Linux I've ever used. The desktop stuff is simple (to a point), but all the server stuff, which is what Linux is really about, isn't simple. At least, not when you want to start configuring it to fit your needs.

      The best example I can think of is something I just went through myself. I wanted to replace our current sendmail-based Redhat e-mail server with something that would do webmail, automatic spam-filtering (user-configurable), virus-scanning, and mailbox quotas.

      In Windows land, for a big-but-not-terrible chunk of change, I can buy this pre-packaged, in one cardboard box. Just install and go. With Linux, it took me weeks of screwing around and Google searches to figure out exactly how to configure Postfix, MySQL, SquirrelMail, Courier-IMAP, SpamAssassin, Clam Anti-Virus, ,Amavisd-new, and maildrop.

      I enjoyed it, cause I like doing that kind of thing. But every once in a while I would think "Is this a fucking joke? How much time have I spent on this? And it still isn't working?"

      With Windows, the only thing you ever regret is the amount of money you spent. Oh, and the fact that you don't have a bash shell ;)

    76. Re:Why are they running Windows then? by 73939133 · · Score: 2, Insightful

      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.

      That's an idiotic argument. For consultants, OSS is often at least as much of a money maker as Microsoft software. Furthermore, there are mature non-OSS alternatives (e.g., Java) available.

      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.

      Yeah, and "oftentimes" the commercial solution actually performs less well, is less reliable, requires more hardware, and requires more administration. A lot of Microsoft products fall into that category. Products like MS SQL Server and MS Exchange are prime examples of what a money pit commercial software can be.

      Face it, people use OSS not because they save on licensing costs, but because it works better and is easier to maintain.

    77. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      Then I need to talk to my HR department about my benefits package.

      There are vanishingly few employees who make $60k but have an overhead of $90k. Really.

    78. Re:Why are they running Windows then? by 73939133 · · Score: 1

      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)

      But that isn't even the main reason for using OSS. Often, the real reason for using OSS is that it is cheaper to maintain and performs better. Saving licensing fees is icing on the cake.

    79. Re:Why are they running Windows then? by Paleomacus · · Score: 1

      VB.NET isn't that bad. It's much worse.

    80. Re:Why are they running Windows then? by tomstdenis · · Score: 1

      Hehehe.

      Well my limited experience shows that often people who are proficient in these "run-of-the-week" languages are not typically well versed in computer science [e.g. how to solve problems not covered in a programming for idiots book].

      My rant was geared towards promoting well balanced languages like Perl and C [over VB or MFC based MS bs].

      Tom

      --
      Someday, I'll have a real sig.
    81. Re:Why are they running Windows then? by Paleomacus · · Score: 1

      I don't think most ordinary people can build their own web apps with MSVS.NET. You have to be a programmer at minimum. I know a lot of programmers of varying skill/l337'ness and none of them are ordinary( few are even very sane ).

    82. Re:Why are they running Windows then? by Paleomacus · · Score: 1

      With MS's security past the Remote Desktop seems like a REALLY BAD IDEA. They don't need a new app for something Outlook already does when exploited.

    83. Re:Why are they running Windows then? by Atzanteol · · Score: 1

      Requiring a specific operating system, or platform, is not delusion. Have you ignored what I said about the client possibly having already invested time and money into an existing system? Already having an inhouse IT department using said systems? If you walk in and tell them you're going to use hardware they don't own, software none of their people are familiar with, and you'll be the only one who knows anything about it after it's done, then you're going to have a hard time making any money at all.

      Besides, rarely is there something that can be done on platform 'A' that cannnot be done on platform 'B'.

      --
      "Ignorance more frequently begets confidence than does knowledge"

      - Charles Darwin
    84. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0
      You forgot the fifth RE, to be used when the other four don't work:

      Redhat :-)

    85. Re:Why are they running Windows then? by adrew · · Score: 1

      People always seem to forget about Mac OS X Server for ease of use... It's damn near idiot proof to set up, use and maintain.

      I'm the grad assistant for my university's student media department. We've gotta three-year-old G4 (a 533 MHz dualie with 512MB of RAM, 240GB of disk space and a four-port Ethernet card) for everything and it never even breaks a sweat. It's a file server for our three-day-a-week newspaper and two monthly magazines, which means that up to 20 Macs can be throwing huge graphics files at it concurrently.

      Aside from all that, it's our webserver, too. AFAIK we've never had any problems serving pages, but that's probably more a result of our ~10 mbps pipe than anything else... ;)

    86. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      who's talking administer?

      1. most people click on "next, next, next, next, finished"

      2. reboot.

      3. repeat no. 2 every 30 days or as needed.

      4. ?

      5. profit!

    87. Re:Why are they running Windows then? by sean23007 · · Score: 1

      But there are so many more bad Windows admins that you'd never know... ;)

      --

      Lack of eloquence does not denote lack of intelligence, though they often coincide.
    88. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      It's not a matter of wether it can be done. It's a matter of budget. What they want cannot be done with the budget and components they've specified (assuming they specified the components and not the questioner).
      They must increase the budget, use a system that can be implimented within budget, or abort the project. They can't wave a magic wand and make everything better.

    89. Re:Why are they running Windows then? by natmsincome.com · · Score: 1

      When I started on linux I had a similar problem. While all the tools are there thay are hard to find. What they allow though is multiple interfaces.

      If you want an EASY server for none technical people DON'T give them Linux. Give them an application server powered by linux.

      The best example I know of is E-Smith which does everthing for you. The only problem we've had is that it doesn't handle 2,000 users very well (It was only designed for
      If you want a general server then use webmin over ssl. It lets you do everything.

      Once you've set these up the users never even logs onto the terminal they just use the web interface.

    90. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      Oh come on. You *can* have your cake and eat it too (in this case).

      Just because linux is ugly as hell but stable, and windows is nice and pretty but hackable, does NOT mean that you can't have the best of both worlds (right now).

      Interface and security are not fundamentally mutually exclusive -- it's just that the linux guys can't come up with a GUI that is more than a thin veil over a command line, and the microsoft guys can't figure out how to build a secure system.

    91. Re:Why are they running Windows then? by dasunt · · Score: 1

      Tragic.

      I remember when they first had automobiles, and I heard them say that one day, everyone would be able to wide and far, and make local trips quickly.

      Unfortunately, since most people cannot build their own cars, nor the roads to drive the cars on, the dream of affordable transportation died.

      Back to walking.

      [/Old man voice]

    92. Re:Why are they running Windows then? by Slime-dogg · · Score: 1

      or pass on the job and look for another client.

      There's another option, one that is more suited to a consultant. That would be: "Take the money, write a kick-ass application that would scale on appropriate hardware, then tell the company that when they run into connection / speed / scaling prolems, they should throw in some extra hardware."

      That way, you've still done work for them. You still have that project on your resume', and you've done what you could within inflexible constraints. If the company is frugal enough to hold off on increasing the budget, they're going to have to understand that the problems they have are a result of the hardware that they are running, and the choices that they have made.

      Make them aware of other options, OSS or not, but don't reject a project just because they don't want what you want. That's bad salesmanship.

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    93. Re:Why are they running Windows then? by thegent · · Score: 1

      Uh-huh. Once the box is set up properly and secured it doesn't need a UNIX administrator to tinker with it every day (in case of a less than 100 people company). And even if they DO need to 'administer' it, there's webmin to help out webmin and this one doesn't require you to have a BAC in computer science to add a new user to the system. Get real. And if people inside that company are THAT dumb to not be able to read simple instructions on screen and to point with their mouse, the contractor can give them a quick training -- show them webmin before leaving (thus saving them the cost of a unix sysadmin)

    94. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      That's the way I've looked at it. "Pay me now or pay me later." And the problem with the Windows route is that it can provide a false sense of security and personnel expectations that can open vulnerabilities from the start.

    95. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      The original poster wasn't saying you had to own your own printing press, just that you had to be smart enough in running one of the freely-available presses that you didn't mangle the limbs of passers-by. I don't think that asking people not to endanger others by their own incompetence is too much to ask, nor do I think it breaks the dream of the web. If you're not smart enough to run a secure web server, find someone who is, and get an account from them. It's not hard to get free or cheap web hosting these days.

    96. Re:Why are they running Windows then? by packethead · · Score: 1

      I agree. My logs are full of SQL Slammer crap too. It just adds to the flavor of White Noise I see on my IDS.

      --
      .sig
    97. Re:Why are they running Windows then? by dabootsie · · Score: 1

      This is after the other options are rejected, and meeting the client's requirements are not possible.

      "Take the money, write a kick-ass application that would scale on appropriate hardware, then tell the company that when they run into connection / speed / scaling prolems, they should throw in some extra hardware."

      Then you get sued for failing to deliver the system as specified, and your reputation suffers due to your work being a failure.
      My wants are completely irrelevent. My clients get what they want if at all possible, otherwise I work with them to find a feasible solution that is acceptable. If not, I move on. I have no shortage of work, which I'd like to believe is at least partially attributable to my business ethic.

      Don't take jobs that simply aren't worth the risk or bad relations. That's bad business sense.

    98. Re:Why are they running Windows then? by Morky · · Score: 1

      The I is replaced by an A for ain't in Robert Heinlein's 'Time Enough for Love'. And ain't ain't incorrect grammar, if you look into it a bit.

    99. Re:Why are they running Windows then? by Kashif+Shaikh · · Score: 1

      Windows systems need an administrator every bit as clueful as a UNIX sysadmin if they are to have any reliability at all.

      The scope of software systems are the similar, it's the design and implementation that makes them different. Yes, people may hate Windows style or UNIX style of computing. Yet they are both complex software systems...

    100. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      "you can hardly blame him"

      oh, i can blame him 'til the cows come home. he
      needs to get his ass out of the pool and go back
      to burger flipping where he and the rest of the
      M$ "admins" belong (the 0.01% of talented ones
      i've met notwithstanding)

    101. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      I think the real question is how many times can the Linux community repeat themselves? Get Open Source because it's much better AND free you idiot. Get real.

    102. Re:Why are they running Windows then? by Mark_MF-WN · · Score: 1

      It isn't reasonable to just say "use open source". Even when budgetary pressure is high, a full analysis of options is necessary. Open source is one of those options (actually, it's a bunch of options), but it's not the only option. Design and analysis is the process of selecting among alternatives, not just choosing the first thing that comes to mind (be it proprietary or open source).

    103. Re:Why are they running Windows then? by stmfreak · · Score: 2, Interesting

      When I first started testing SQL Server using the default install "point, click and go" I was shocked to find that the performance for our application sucked.

      A quick lesson in optimization from the local DBA taught me how to tune it to use 80% of the physical RAM, keep log files on separate physical drives (and buss if possible) than the data file. If you can isolate log/data/os, so much the better. So I did that and performance immediately improved 3000% or more. I'm sure there are several other tune-ups I've forgotten and hundreds I never learned.

      Even so, IIS throughput for static and ASP apps (pre-.NET) was difficult to get above 200 and 100 concurrent connections respectively several years ago. Performance tuning is all about test, analysis, tinker... unless this guy knows where his bottlenecks are, there's not much anyone can suggest to help.

      And if he knows where the bottlenecks are, then he wouldn't be asking this question.

      The sad thing is that without analyzing the bottlenecks, people go buy faster CPUs where RAM was needed, or multi-proc systems with 15K RPM drives when moving to GigE would have done three times as much.

      Then there is the application itself. What is it trying to do? What can be cached? What is unnecessary? Can lookups be bundled together? I've seen Verity servers dragged down to 1TPS through crazy business requirements and poor development understanding. There is no such thing as a inherently fast platform. And no replacement for careful, analysis-based perforformance testing.

      --
      These opinions guaranteed or your money back.
    104. Re:Why are they running Windows then? by NoodleSlayer · · Score: 1

      They're practically handing out MCSEs these days too. Its pretty sad when you see the severely incompetent low paid end of the spectrum, ie School District employees. The guy who has an MCSE in his hand and a confused look on his face when you ask him to add a user to the server.

      Evidently its no longer a requirement to know how to add a user to a Windows box to get an MCSE.

    105. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0
    106. Re:Why are they running Windows then? by hdparm · · Score: 1
      True.

      But if you add GNU on top of it, eg install one of many freely available distributions, mosts of the 'small company' business problems can be handled (software technology wise) for free.

    107. Re:Why are they running Windows then? by Aeonsfx · · Score: 0

      why don't they just require Cisco certification instead? I've heard its more difficult. Maybe that would solve the problem.

    108. Re:Why are they running Windows then? by smooc · · Score: 1

      Actually in Holland, Small Bussinesses are looking more and more into OSS, because of the costs.

      I work for a company which does remote administration of these boxes (eg Netware, *nix, Windows) and we receive a lot more questions regarding free *nix these days.

      --
      - In Memoriam: Jeroen de Bruin (1972-2004), bye bro
    109. Re:Why are they running Windows then? by hdparm · · Score: 1
      I am now confused.

      Is Linux ready for Joe Six Pack's desktop or server?

    110. Re:Why are they running Windows then? by RyuuzakiTetsuya · · Score: 1

      Judging by the the amount of traffic the machine in question is going to deal with, a "point, click and go" solution isn't going to cut it. It needs to be reliable, stable, and not vulnerable.

      Unfortunantly, Microsoft can't keep my web browser from being constantly attacked by unscrupulous websites and other bits of malicious code. Why should anyone trust them to build a stable webserver?

      --
      Non impediti ratione cogitationus.
    111. Re:Why are they running Windows then? by arose · · Score: 1

      Sadly you will never get to Redhat...

      --
      Analogies don't equal equalities, they are merely somewhat analogous.
    112. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      You sound like a communist.

    113. Re:Why are they running Windows then? by bmajik · · Score: 2, Informative

      if you have a reproducible environment where sql server 2000 is losing or corrupting data, please email me directly with details.

      having said that, i think you are way off base. I used mySQL a lot and use SQL server extensively now. Comparing the two just isn't worth while. mySQL is a lot closer to berkeley DB than it is to SQL server, feature wise, scalability wise, management wise, and reliability wise.

      SQL server has several licsensing options - per conection or per processor are the two default ones. Given that SQL server is perf competitive with Oracle, (it infact beats it on official benchmarks) and a HECK of a lot easier to deal with, SQL server is a STEAL compared to oracle pricing and support.

      for most OLTP type work mySQL will NOT be faster than SQL server, especially as the volume of data grows, the complexity of queries grows, and the contention increases.

      Put another way - when i see mySQL displacing SQL Server in the tpc benchmarks, i'll pay attention to you again. mySQL is very cool, but its a toy compared to DB2, Oracle, or SQL server. If all you need is a toy, by all means, use a toy -- you'll be happier. When you're ready to graduate to real systems, SQL server will be waiting for you. Maybe mySQL or Postgres will evolve faster than your needs do, and you'll never need a commercial quality database (or one of those two will turn into one)

      It is unfortuneate that your experience has shown that Java+Jboss+{some db here, as you named like 5 of them}+Linux is "more reliable" than Windows + .NET. I suppose i can't change your mind and i definitely cant change your experiences, but i am highly skeptical that you're not using some rose colored lenses when you're examing how your app stack compares.. Windows + ASP.NET + SQL server works pretty well out of the box. I don't want to be too presumptuous here, but unless you've had work experience with one of a handful of simply huge internet properties, i can say that Windows + ASP.NET + SQL server is reliably running many sites bigger than you've ever dealt with. In other words, some very big places seem to think its just fine :)

      --
      My opinions are my own, and do not necessarily represent those of my employer.
    114. Re:Why are they running Windows then? by j3110 · · Score: 1

      Alright, it's time to bring out the big clue bat, because I've heard all this before, and I've tried it, and it's just bad.

      Every program a client has that uses any version of SQL Server needs constant fixing, and is incredibly slow for 7 users. I could give you a list of programs, but it's just about every program on the market. One of them has an option to use paradox database files, and we have reverted back to that because it is both faster and more stable to share the paradox file over SMB. Every week, we have to repair an Exchange database even though it has never been improperly shut down. It generally fixes it's problems, but it's slow for the 5 people that use it. There are intentional problems between NT4 and Win2K+ using NT4 as a file server with SMB. In win2k, we side stepped the problem because MS had forgot to cause problems in the IPX part of SMB, and it worked fast when we disabled TCP/IP capabilities of SMB. In XP, it seems they caught on to it, and we just switched to Samba which was much faster, plus we get to use XFS, which has never corrupted or lost a file of mine. (NTFS has eaten the entire FS to "fix" itself in the past.)

      That concludes all the problems I have with MS software, other than the fact they actually paid for the system that wasn't working.

      Now, lets move on to your short sighted software development views.

      SQL Server is a lot closer to Access than it is to a real RDBMS server. MySQL supports transactions, and has for a long time. If you don't need sub-selects, and a great majority of software doesn't, then you'll be just fine with it. I've had to use postgresql in the past as well, and other than vacuum, which can be cron'd, it's as fast as MySQL and it supports transactions. The only reason one would need to venture away from either of these two free options is if they needed real replication. Since I'm using JDBC, instead of some stupid MS recommended way of accessing the database, I can easily just change the configuration of the application and use DB2, the smartest database server available on the market. If you use one IBM prodect, like MS, you pretty much have to buy the whole lot (it's only just more economical with IBM, not a requirement like MS). My program, currently in JBoss and MySQL, can be deployed onto WebSphere and DB2 at any point. Too bad MS SQL isn't an option because replication has never worked.

      I can sell a version of my same software to a small business down the street and they don't need to spend another dime on other software. I can sell to the little people that don't need the bloat of partitioned databases. In fact, I could sell it to work on one single machine, and it will run on windows just as well as Mac or Linux. They don't even have to buy a server. I can take my same program to Mr. Fortune500 and he can go buy everything he needs from IBM or SUN or BEA or Oracle, his choice, and I can set him up with the same program, except that it can handle 1000's of users, reliably, across a cluster.

      Now, lets consider my alternative of having used .Net.

      I now have a peice of software that requires $5K or more of other software in order to run. Now when I take it to a small business down the street, I have to charge 5K less, in MS tax, because they just want it to work. Now, lets say I want to take it to Mr. Fortune500. He can't choose anything other than MS. .Net isn't set up in a way such that my application will automatically run on a cluster. So, I can't sell it to small nor large businesses because it's a more expensive and less scalable system. See previous slashdot stories for other tales of the woes of how poorly .Net performs.

      There is absolutely no way you are going to convince me that .Net was the right path. I have a larger market for my software, and it scales. MS SQL might work for some small niche of uses, but it doesn't compare to the database independance I have with Java. I choose the

      --
      Karma Clown
    115. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0
      Whyever not ? Surely the costs of employing a UNIX administrator are less than those of employing an MS consultant.

      The UNIX admin may have a higher hourly rate, but you have to offset that against the call out costs of the MS admin, for all those middle-of-the-night reboots the Windows machines will likely require.

    116. Re:Why are they running Windows then? by mydigitalself · · Score: 1

      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

      as opposed to i write PHP ZEND XML super programs on GNOME with my POSIX system and my BASH shell that I got in with PAM authentication after I had AWKED the SED's GREP...

      go cruise around freshmeat for a while and see how many OSS applications are acronyms - your blind ignorance astounds me.

    117. Re:Why are they running Windows then? by tomstdenis · · Score: 1

      Yeah but many of the core useful projects are C or C++ [mostly C].

      For example, linux kernel, gcc, gzip, bzip2, tar, [all the default userland tools], etc...

      Also people who tend to know how to use sed/byson/flex/etc tend to also be a bit more apt at software development and computer science than the typical dime-a-dozen VB hacker.

      Tom

      --
      Someday, I'll have a real sig.
    118. Re:Why are they running Windows then? by Badanov · · Score: 1
      MS people may be telling people:

      ...that their software solves all your problems and that lots of cheaply available people can do the job. They'll still charge you for their software and you'll find out that hardware still costs something and that getting good people to support and maintain your software and hardware is more expensive, but worth it.

      I run a tiny Linux network with Windows clients and my people think computers are like some goddam Ronco product: Set it and forget it. I keep telling them these servers need attention, you need to make backups and keep them; a single snap shot once a month won't get it.

      I am not educated in this. Beginning at the tender age of 44 I hacked my way through Linux and all that that entails and I have learned you just don;t set it and forget it. There are always things to do to maintain servers. Buying MS won't relieve that responsibility, but of course I have never bought a MS server product.

      --
      Dawn of the Dead
    119. Re:Why are they running Windows then? by jonabbey · · Score: 1

      No doubt he does. If Microsoft says it costs a certain amount to be able to do something with a computer, who the hell is a small business to be trying to get it done cheaper?

      I think it's pretty clear that it's just not possible to legally do anything Microsoft does for cheaper than what Microsoft wants to charge for it.

      In the real world, at least.

    120. Re:Why are they running Windows then? by eyeye · · Score: 1
      Windows land, for a big-but-not-terrible chunk of change, I can buy this pre-packaged, in one cardboard box. Just install and go. With Linux, it took me weeks of screwing around and Google searches to figure out exactly how to configure Postfix, MySQL, SquirrelMail, Courier-IMAP, SpamAssassin, Clam Anti-Virus, ,Amavisd-new, and maildrop.


      One box? Windows comes with a built in database webmail client, imap server, spam and antivirus filter etc...?
      And the big but not terrible chunk of change, the linux comparison includes a database server - do you consider £10k for SQL Server not terrible? You werent even considering Access I hope.

      In short your post is riddled with flaws!
      --
      Bush and Blair ate my sig!
    121. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      Not to flame you or anything, but try Mitel SME Server for small business. This is a linux based (Red Hat I think) small business server OS that can install - completely - in 10 minutes on a box that has generic hardware. Samba is all set up, web server, MySQL, qmail, etc. For a small business with say, 1-15 employees using file server, email, and some not too demanding database apps, you would probably need no more than a couple hours of professional admin in a month. Otherwise an employee could be trained up to manage the thing in a couple hours (make new dirs, manage users - the simple everyday stuff). Nobody seems to know it yet but it's totally a Windows Small Bus. Server killer.

    122. Re:Why are they running Windows then? by mydigitalself · · Score: 1

      i can certainly agree with that statement! but i didn't feel that your acronym comment was very true ;)

    123. Re:Why are they running Windows then? by blinkylights · · Score: 1
      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).

      An Exchange server that was set up with a wizard by someone who just wants to "point, click and go," sounds like a formula for a spectacularly expensive disaster to me. :) I'm going to have to disagree with you, I'm afraid - the implied promise of Windows Small Business Server is that you can fill your small business' IT needs without needing expensive IT employees. That's just not true. Despite the wizards and GUIs, it's no more practical for an inexperienced technician to admin a MS system than a UNIX system. Full time or outsourced, a business large enough to need a server of some kind needs a good sysadmin. A good UNIX sysadmin (and no they aren't more expensive) is a better value for a small business than a good MS admin.

    124. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      In five years of working with SQL-Server, I've never seen a dropped record. We had a minor corruption incident once, but it wasn't hard to fix. The server is for an online transactional web app that about a thousand offices use all day...performance is fine. It's a modest dual-processor dedicated to the database, with RAID-10, plus a RAID-1 for the transaction log. Maintenance time is minimal--we don't even have a full-time DBA on the project, just a couple clueful developers.

    125. Re:Why are they running Windows then? by IntlHarvester · · Score: 3, Informative

      Every program a client has that uses any version of SQL Server needs constant fixing, and is incredibly slow for 7 users. I could give you a list of programs, but it's just about every program on the market. One of them has an option to use paradox database files,

      I think I know what you are talking about.

      I'm guessing this software is mainly decade old desktop packages that were originally designed to run on Paradox/dBase/FoxPro and ported to SQL Server or Oracle because that's the trendy thing to do. (If you see "BDE", the Borland Data Engine, it's a good sign that this is what you've got.) The thing is, the apps aren't really ported to use a RDBMS design. They still use "Flat Files" and have their own key/indexing system and old style coding.

      The one I'm familar with is the very popular "Goldmine" sales package (had to get data from it's schema for an app I built). Doesn't even use Primary Keys, much less non-clustered indexes. Instead it's got these dbase-style bogo keys which look like "AAAA", "AAAa", "AAaa" and so on. But SQL Server is running in case insensitive mode, so all of the key comparison is done on the client! It also appears to do record locking on the client-side. No wonder an almost trivial application only supports 20-some users on a P4 server. :P

      Hopefully as someone targetting DB2, you aren't making the same kinds of error, because you'll see the same issues no matter the RDBMS.

      There are intentional problems between NT4 and Win2K+ using NT4 as a file server with SMB

      I'm guessing this is the "rogue master browser" problem. Sucks, but an unofficially well known issue.

      --
      Business. Numbers. Money. People. Computer World.
    126. Re:Why are they running Windows then? by jonadab · · Score: 1

      > "IT group"? In a company whose total budget for a new machine
      > running a mission-critical service is $50k?

      s/company/organization/; # Make the above fit my job description.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    127. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      I see this attitude everywhere, from not buying paid up licenses for all your software to expecting to get programmers for 1/2 price (literally in some cases).

      I assume it applies in every other aspect as well. It makes them difficult to deal with them as clients because they are always angling around to get things cheaper. Every conversation has to be very cautious because anything you say will be used as leverage to try to get the price down, or free work.

    128. Re:Why are they running Windows then? by jonadab · · Score: 1

      > A small business CANNOT afford to employ a full time
      > UNIX administrator.

      A small business doesn't _NEED_ a full-time Unix admin. Advertise
      for an entry-level computer administrator; from the stack of eighty
      resumes you get, throw out all the ones that list Microsoft Word
      as a primary job-related skill, as well as all the ones that list
      salaries outside your budget. Interview the rest; during the
      interview ask them what operating systems they've used; also ask
      them what "usenet" is. First one who says something about
      experimenting with Linux and gives you a good definition of usenet,
      offer him $10 an hour. If he turns you down, go to the next. He
      won't know everything he ought to know, but he'll be able to find
      out most routine things inside of 48 hours (hence the usenet
      requirement). For an extra one-time investment, get a couple
      hundred bucks' worth of relevant O'Reilly books to keep on the
      shelf.

      If he's any good, and if he improves his knowledge constantly,
      give him regular raises or you won't keep him. But starting at
      $10 an hour you can give him regular raises for a while before
      you hit "full-time Unix admin" salary.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    129. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      This is one of the things that really pisses me off about the MCSE program. When MS first started introducing the Win2k exams it looked like they were trying to do the right thing by making the tests more difficult and by forcing all NT4 MCSEs to either upgrade their certs or lose them.

      It seemed like a good move to weed out all of the losers. Then there was such a backlash that MS kept pushing back their upgrade deadline so that it became worthless. On top of that, at some point they did make the tests easier. When I took the Win2k Professional exam a passing score was 750 but a coworker that took the same exam a year later only had to score a 625.

      MS really doesn't seem to understand how much harm they are doing by giving out certs to practically anyone with $125. They don't seem to care that it diminishes the value of the MCSE. Of course, I never expected to get by on my MCSE alone but it would be nice to know that I wasn't being compared to thousands of morons whenever I go into a job interview. Thankfully, I have other certs and hands-on experience to balance that out.

    130. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

      well, i do not know if is the same in the so-called 1st world economies, but here in 3rd world country (Panamá), I have some clientes that pay me a fair monthly fee to managed their systems (samba servers, email servers, DS, and a few applications server) all of them running on Linux.
      The solutions is a lot more cheaper, and easily to do everyday maintenance and administration (2 users per company managing accounts and other simply stuff using webmin). The setup cost is usually set at about 50 % of what they should pay in licences for software.
      And all of them are pretty happy with the system performance and uptime. Also, I installed a dialin modem in all of my servers, so i can do remote troubleshooting in all before making the trip to my customer sites.
      Believe me, some of them have growth and are happy with the preformance.

    131. Re:Why are they running Windows then? by j3110 · · Score: 2, Insightful

      The one that is capable of reverting to Paradox does indeed use the BDE (about the only thing that uses Paradox). I happen to know quite a bit about the BDE having worked on Builder/Delphi projects in the past. If the queries are done properly, it will work in either server or client mode, but you can always try the other. I loaded up the BDE administrator, and I managed to find some set of configuration that made it a little faster, but the queries ran both server and client just fine. The sad part is, I had better results executing on client side than on server side. Running select(*) on a table should never take very long, and most of the problem, that I can tell from diagnostics, was the server just halting network traffic. It may be a bug or problem with NT4 and SQL Server, but I'm sure not going to tell them they need to spend 20K to get these applications running. I'ld much rather develop a work-alike and drive the idiots that chose SQL Server in the first place out of the market if I can. Their product doesn't work for a group of people greater than 3 despite their claims. We've sank enough debugging time into that whole thing that we could already have developed an Alpha.

      It's not the rogue master browser problem, BTW. Get out any NT4 system and any operating system built on NT since, and by default, it will be hideously slow. Pull out a Windows 98 machine and put in on the same network, and it will be instant. I'm fairly certain it's intentional incompatibility that they do all the time. Running mixed iterations of MS software will cause a lot of problems. They want you to upgrade everything all the time, because that's how they squeeze more money out of you.

      I'm targetting any RDBMS with a JDBC driver, not just DB2. DB2 is just a preferred upgrade path. Even with this kind of portability, I don't take too much of a performance hit. Stored procedures wouldn't help, and neither would sub-selects. The only thing to gain from upgrading beyond MySQL for this application is good realiable data partitioning/clustering. No matter what anyone tells you, don't believe them that the current hot-backup crap in MySQL is useful for anything but failover. There are no distributed transactions the last time I checked, so I can't imagine that it would be reliable if you were using transactions on two different servers simultaneously.

      If you are using Java, and you want to have a good abstracted database access, you should take a look at the open source hibernate project. Excellent software, much better than CMP. It supports all kinds of automatic relationship management too. It has it's own abstracted query language that it compiles into native queries for whatever features your DBMS can handle. It's the best way to get performance out of RDBMS's without spending months developing special queries for each DBMS, and still have DBMS portability.

      --
      Karma Clown
    132. Re:Why are they running Windows then? by IntlHarvester · · Score: 1

      Running select(*) on a table should never take very long, and most of the problem, that I can tell from diagnostics, was the server just halting network traffic.

      I'd expect that if the table lacks any indexes (like GoldMine). Big no-no. My guess it that the server wasn't RAM caching the table, and the stalls you saw were caused by waiting to read the data sequentially off the disk. But, I dunno, it could be the network problems you mentioned too. Or something else.

      MSSQL is fine; probably the only top-notch product Microsoft makes, IMO. A bad schema will cause terrible application performance on any RDBMS: DB2, Oracle, Postgres, you name it. MySQL is more Flat-Fileque, so perhaps it fits this use model better.

      Also, in many cases Paradox tables will be faster than any RDBMS. If the app (which can't be changed) was designed to use Paradox, I'd just go ahead and use Paradox. Just make sure to get the Samba version that supports the correct record locking.

      --
      Business. Numbers. Money. People. Computer World.
    133. Re:Why are they running Windows then? by Anonymous Coward · · Score: 0
      Your programming example makes me suspect that you are not a BASIC programmer at all. First of all it is double quotes not single quotes. But more imporrtantly the tradition in BASIC is using your name instead of hello world. Of course without end:

      10 PRINT "Tom"

      20 GO TO 10

    134. Re:Why are they running Windows then? by bmajik · · Score: 1

      you're just trolling me, i think. your experiences sound bad, but they don't really bear any similarity to the experience i've had, or the experiences of many much bigger organizations. I'm sorry you've had them, but in the process of trying to understand your greivances im receiving more noise than signal, it seems.

      i asked you to show me a reproducible scenario where SQL server is responsible for data loss or corruption. you instead go on with a bunch of "this sucks" and "that sucks", etc. I can't help you resolve issues of "suckiness"

      how can you say mySQL has _anything_ on SQL server when you think the whole issue boils down to transactions, and you totally dismiss the relevance of subselects (what databases do you design again ? for how many people ? supporting what type of business ?)

      I responded to your first message because i felt like you were disgruntled with SQL or MS or both and were simplly blowing off steam, and i was asking for some factual backing or reproducible problems. Instead, im getting another rant out of you and lots of proseletyzing (sp).

      I vouch 100% for SQL server's ability to do its job. If it fucks up, i get called in the middle of the night. I've been on an email thread with a vice president before regarding downtime of the system i am DBA of (it was a hardware issue, btw - SQL server was fine)

      before i worked here, i worked with mySQL and SyBase. An example of mySQL not being up to the task that sticks in my mine was how we watched mySQL croak over and over again trying to keep up with our custom radius server (UUNET's Ascend MAX systems would proxy radius auth requests to our radiusd, which used mySQL as a back end..)
      my experience was that mySQL worked great until you flipped the magical "go into production" switch. that doesn't mean im saying mySQL sucks. Im commenting on its architecture (ISAMs) and capabilities (not at all ANSI SQL capable).

      I can't beleive you'd suggest that i don't use products that I talk about. Quite the contrary - i use them for months (or years) before they actually ship. If you think they're bad in shipped from, you should see them before they're in shippable form :)

      --
      My opinions are my own, and do not necessarily represent those of my employer.
    135. Re:Why are they running Windows then? by j3110 · · Score: 1

      I just get angry thinking about all our problems with products built on SQL server, from Exchange to proprietary. That's why I've never actually developed any software for them. I don't intrinsically hate MS. I just hate MS products that build on products I've had horrible experiences with.

      Have you tried to use SQL Server with any application that requires direct connections to the SQL Server running on NT4 with Windows 2000 or greater? I think the slowness of SQL Server might be caused by the same intentional slow-downs that you get when you use NT4 as a server for a newer operating system as a client. There is no disk activity on the server during the delays, and we have run packet analyzers to get to the bottom of it. We know it has nothing to do with the servers connection to the network, because we eventually replaced the server with Linux running NT4 under VMWare. Amazingly, NT4 runs faster under Linux than it did on the raw hardware for some tasks.

      It's hard to say what produces the record loss problem when it occurs about once a week during heavy load(CPU maxed out). It's just a known fact to us, that we have to live with. We run integrity checks on every SQL Server in town every Friday night, and one of the two will usually find something to fix. Usually by then, the system has been brought to it's knees by the way of performance, but somehow the integrity check fixes that too. I'm assuming the integrity check reclusters the keys by recreating the tables, and then the clients don't cry on Monday morning about how slow it is. (and they do call at 8:30 about it)

      I design a lot of databases, but I will admit that only a handfull (about 3) are used widely. Cross table updates and cross table deletes would have been more handy than subqueries. I have used subqueries before, but only because they were there, and I wanted to just get it done. Everytime I see a subquery I cringe because half of the time they are used inappropriatly. 49% of the time that they are used appropriatly/correctly, a good recursive join would make the algorithm Nlog(N) instead of N^2. The 1% of the time you legitimately need them, then you can complain and choose a multitude of other stable free and fast RDBMS.

      I've developed stupid B2B software during the idiotic .Com era. I've helped design the database for Stock Option tracking systems (The database grows a few gigabytes a month with all the trackers.). I've developed massive CRM "solutions". (Using the buzzword because I can't think of a better way to describe anything with as many features: Inventory, Leads, Phone calls, Scripted dialing/answering, lead progress, customer satisfaction, web site content management, email routing, document management, time management and reports that link the peices in multiple ways, and all inclusively.) Those are the only projects that have needed a database that were used in large scale production. Never, in any of these, have I ever said "I need a subquery to do this." Until MySQL supported transactions, we had minor database corruption when the cleaners were set loose on the server room. With possible exception to the Stock Option tracking system, performance has never been an issue with MySQL. The stock option system is batch updated, then only queried. No need for subqueries or transactions, just fast data access. MySQL will win every time in performance when you don't need transactions.

      I don't even particularly like MySQL all that much(it has a purpose that I haven't seen anything else fulfill), and I don't know why I'm even arguing about it. My preferred RDBMS has always been PostgreSQL, though I've been looking a lot at Hypersonic lately (anyone have any performance or stability stories?). Their simply isn't a good excuse to use SQL Server. Why pay so much money for nothing? If you're going to buy a database server, why not DB2 (but you have to become an IBM shop pretty much) or Oracle (If you really like to pay)? What does SQL Server do that you can't find

      --
      Karma Clown
    136. Re:Why are they running Windows then? by bmajik · · Score: 1

      Re: your first question
      No. We don't host any of our SQL boxes on NT4. We use W2k or W2k3 only. While we understand that NT4 has a huge installed base, there is no reason to continue using it apart from intertia, as W2k is superior in mostly everyway. In our situation, the cost of NT4 vs W2k is of course not an issue. Given that NT4 is 7 years old and EOL, it might be worth investigating a move onto a more recent platform, especially if you are convinced NT4 is at the heart of your troubles.

      The performance counters available from both the OS and SQL itself should be extremely helpful in determining any slowdown. Additionally, SQL Profiler may help you discover what is happening in the system during the slowdown periods. Typically when we see slowdowns its because an errant client is holding onto lots of locks. I wrote a performance counter that queries master..sysprocesses and master..syslockinfo to give me lock information at a glance, so I can tell readily if there are any abnormal locking conditions before clients notice.

      re: integrity check
      please tell me more about what exactly is being run and how often. Index maintenance and statistics regeneration will of course improve performance, but if you actually notice degredation in the space of a week you should clearly try running those every night after hours and see if it makes a difference.

      I am still not sure where data loss would come from, except perhaps a query being chosen as a deadlock victim (two long running queries are competing for resources and lest they both time out, one is chosen and killed so that the other completes.. however the message reported when this happens is so blatant and verbose there is NO WAY to not realize it has happened unless you just simply don't do any return code checking anywhere :)

      I'm going to be pretty explicit about this - if SQL server is slow, you're doing something wrong. Either the hardware isn't there, or the maintenance isn't being done often/well enough, or the optimizations don't fit the real-world usage models. Have you ever run the index tuning wizard ? (or, there is an NT4 mystery problem, which seems to be your theory ?)

      What is the multitude of stable, fast, and free RDBMS ? I was under the impression if you wanted something that was SQL compliant you were stuck with Postgres. Which ones am I missing ?

      Here's a compelling argument for SQL server scalability and performance:

      http://www.tpc.org/tpcc/results/tpcc_perf_result s. asp?resulttype=all

      See #2, #3, #5, #6, #8 ? Half of the top 10 tpc record holders are SQL server. the #2 record held for nearly 2 years (IBM just submitted a score that beats it on June 30). The second place entry - the former champ - MS SQL server - was submitted in 2001 - using pentium IIIs.

      Oracle is of course at the bottom of the list.

      But here's the real reason to use SQL Server - you can have the worlds best performing database (i suspect SQL will retake the crown from DB2 very shortly) as shrinkwrapped, off the shelf software. Anybody can install it, anybody can administer it with a few wizards, and once you get it setup well, you can pretty much forget about it. Yet if you're an advanced user, there is more than enough there to keep you busy tuning and fiddling, getting that last ounce of performance. It can scale down to the most mundane tasks (MSDE) or to suitably relevant ones (Worlds fastest database, tpc council, see above link)

      Have you tried _installing_ oracle ? :)

      re: faster than mySQL - i am willing to claim that on a wide variety of larger workloads, SQL server will outperform mySQL. It is my experience that mySQL has a very narrow niche under which it absolutely excels, and outside of this all bets are off. does mySQL support blobs ? What about the TEXT type ? How is its text searching ? UNICODE fields ? Hell, last time i used mySQL extensively the backup story was "take db offline, copy ISAM fi

      --
      My opinions are my own, and do not necessarily represent those of my employer.
    137. Re:Why are they running Windows then? by sootman · · Score: 1

      Well yeah, anything *can* happen, but you just shot down your own argument--right now, you *can't* have your cake and eat it too! As you yourself said, Linux doesn't have a nice GUI, MS isn't secure. Both of these things *could* be different (and someday, at least one will be), but right *now*, they *aren't*. The poster doesn't want a system in 3-5 years, he wants one today.

      --
      Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
    138. Re:Why are they running Windows then? by j3110 · · Score: 1



      TCP benchmarks don't even include open source database servers at this point. Posting a link to that is just plain silly for comparison.

      It took me all of 5 minutes to find this link (http://www.eweek.com/article2/0,3959,293,00.asp) which shows that I wasn't completely off to say unless you are using ASP, then you shouldn't use SQL Server. I'm sure your TCP benchmarks only show ASP scores anyhow.

      MySQL has had several hot-backup options for quite some time. mysqldump is the most popular, but you can have real-time replication if you need to have a backup server incase the first crashes. MySQL supports FK constraints. The Beta versions support subqueries. Stored procs still have to be in C. Now view support. Supports blobs and text with GiST indexs. (I hate GiST indexes.)

      There are a lot of free RDBMS's to choose from, many of them supporting subqueries.

      HSQLDB:
      Stored procedures in Java
      Views
      Triggers
      Subqueries
      FK constraints
      Transactions
      Blobs, text, unicode

      McKoi:
      views
      subqueries
      Check and FK constraints
      Transactions
      blobs, text, unicode

      PostgreSQL:
      Stored procedures in many different languages
      Views
      Triggers
      subqueries
      check and FK constraints
      Transactions
      Blobs, text, unicode, geological, misc., and custom data fields
      GiST index
      Now with better security architecture

      two-phase commit and data partitioning are now under Urgent (will be in next release most likely)

      SAP:
      stored procedures (don't know the language)
      views
      triggers
      subqueries (and cursors and updatable queries)
      check and FK constraints
      transactions (and support for transactionless tables like MySQL)
      blobs, text, unicode, ebcdic
      don't know about full text indexing
      a lot of security architecture
      good performance even with 200G of data.

      Those are the ones that most people just look over for no good reason (especially the last two considering they are really great products).

      I'll start to consider TCP to not be for sale when I start to see some of these RDBMS on it. I've compared, and many independant people have compared a lot of databases, and performance per price you aren't going to find anything better than MySQL and PostgreSQL.

      I have set up Oracle, and it was a pain, but I didn't have to toy with it EVER again. AFAIK, Oracle, DB2, MySql, PostgreSQL, etc. have never had worms propogate through old servers. It does require someone too keep up with SQL Server more than it requires someone to keep up with any of the other alternatives. Especially those in the main package tree of debian, and it can be done remotely, easily.

      Unless you are going to go all MS, then there is no performance gains from it. The same can be said for IBM/DB2, but IBM supports portability standards like J2EE. In order to use a MS product efficiently, you have to tie yourself to it, and I know very few people that are willing to do that. Especially when I can set up a MySql server for 500$ (all hardware). If you think administering Windows and SQL Server is easier than Debian, then you're way off. I ssh in to clients about once a month, or when a bug is reported, and upgrade them, usually without any intervention from me. I bet I can take my product into more businesses than you without the overhead of SQL Server and NT Server licensing.

      We are upgrading the NT4 Servers... mostly to Linux. We'll probably end up buying HP's OpenMail to replace Exchange, and write replacements for the other software that requires SQL Server. It will save them money both in terms of support and licensing. ssh is much faster than Terminal Services (we use both). Our Java applications are incredibly simple to administrate. We use webstart, and put it on the server. Whenever we need to upgrade, we overwrite the files, and all the clients download it next time they need to. Since we

      --
      Karma Clown
    139. Re:Why are they running Windows then? by bmajik · · Score: 1

      No, that page says if you're using Weblogic (crap), and shitty JDBC drivers, then the perf will be shitty. Try the test again with real (ahem) JDBC drivers.

      Oh, and it also says that once you use asp.net it blows everything else out of the water. You can try and convince me that $OS + BEA + Oracle is cheaper than W2K3 + IIS + ASP.NET + SQL, but given that IIS and ASP.NET come with a Server2k3 license, all you have to buy is the OS and the database. And guess which one is faster ?

      Almost 41% faster, according to the benchmark you linked to.

      fwiw, i dont consider mysqldump a backup solution :)

      Listen. I _came_ from unix land before i got where i am now. I know time hasn't stopped still, but i still have vivid memories of what life was like. My home network has an openbsd machine, a sun machine, an OSX machine, 2 windows machines, and a Silicon Graphics machine. I "gave linux a try" years ago, starting with kernel .98. Will you tell me i need to keep trying it over and over until i agree with you ? :)

      --
      My opinions are my own, and do not necessarily represent those of my employer.
    140. Re:Why are they running Windows then? by j3110 · · Score: 1

      mysqldump does a great job backing up databases, and it does it fast. Maybe you haven't played with the CSV exporting functionality? Also, I usually write my own exporter into my own custom, more compact XML format anyhow. That way I can use XSLT and re-import the data into a massively different schema.

      By your arguement, I could say I tried SQL Server 7, and it sucks, do I have to keep trying it over and over?

      Consider the cost for the 41% increase. As I said before, I could make a machine for 500$ with JBoss and PostgreSQL using Linux. If I need to get higher performance, and maintain performance/dollar, I can go to IBM and get DB2 on a big iron server, and the same applications will run on it.

      You're not going to convince me that performance/price ratio is better with the MS stack in the low/middle end at all. You may convince me that MS has worked their asses off, and they can compete with the big guys in terms of performance. I make a living undercutting MS shops in both service and software development. I don't walk into a small business and tell them they need to spend 6K or more on software from MS before we can even negotiate my fees above that. I don't tell people that they should work over unreliable and/or expensive internet connections in order to use an application that they rely on for all their information.

      If you want to tie your application to a single vendor, that's your choice. Scalability is important because you never know how large of a market you'll end up in. Also you have to understand that making your software prohibitively expensive to the smaller people will end up costing you more money than you think. The demand for software that costs less is more (obvious economics). If I can charge 2K$ for my software, but you have to charge 7K$, and your software is 41% faster, I think I know where people will be buying their software.

      I've never had a reliability problem, en masse, out of any of my clients. I don't deny that there are some sites that have bad hardware or they put their server in the middle of a the walkway, and the disk crashes. That's what backups are for.

      How often have there been worms exploiting Windows + IIS + SQL Server? How often have there been worms exploiting Linux + MySQL + Apache? I think if you tally the numbers you'll find the truth about TCO. Don't give me any BS about SQL Server or IIS being more popular, because they aren't. More people are running Apache according to NetCraft.

      Not to mention, since I can copy Linux how I see fit, I can just use XFS's xfsdump / | bzip2 -9 > image.xfs.bz2, burn it to a CD using Debian's default kernel and installation script edited to bzcat image.xfs.bz | xfsrestore /target and have a system up in 30 minutes of socializing + configuration time (which I can also script) vs deploying an application on windows requires hours of updates through the internet and initial installation and activation (all requiring supervision) and finally configuration. If you can patch up an NT Server system, or even install one in under 30 minutes or without supervision and legally, I would love to see it. :)

      --
      Karma Clown
    141. Re:Why are they running Windows then? by bmajik · · Score: 1

      re: installing server systems quickly

      actually its funny you should ask - I designed the system where by which we throw w2k server on a few hundred boxes in parallel. it takes about 15 minutes. works for any MS OS since win95.

      they come up, rename themselves to the appropriate hostname, do the right domain joining, and start running the tests they're supposed to be running. when they're done running tests, they'll repeat the process (into some other OS, most likely) to start running some other tests. machines running XP even auto-activate themselves :)

      there are commercial systems that do some of this (Altiris comes to mind) but ours has a few advantages w.r.t what we evaluated.

      incidentally, the system i described is being replaced with something else (homegrown) that requires even less expertise setting up images and works on more different types of hardware...

      IOW, we have getting windows on lots of machines quickly down to a science. Down the hall from me is a room full of 500 machines and i can have any number of them in any combination of about 250 different localized Microsoft operating systems in less than 20 minutes.

      anyway, i think this conversation is coming to an end. its great that you've got a good business going where you can turn free software into real solutions for people. Based on my experiences, I have my doubts that any freeware rdbms system can replace SQL server in the way that I currently employ it.

      --
      My opinions are my own, and do not necessarily represent those of my employer.
  2. Buy more systems by gwernol · · Score: 0, Troll

    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.

    Sorry...

    --
    Sailing over the event horizon
    1. Re:Buy more systems by Anonymous Coward · · Score: 0

      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.

      :-)

  3. Linux is the answer by LordoftheFrings · · Score: 1, Redundant

    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.

    1. Re:Linux is the answer by mbadolato · · Score: 0

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

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

  4. Why one server? by Anonymous Coward · · Score: 1, Interesting

    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?

    1. Re:Why one server? by nomel · · Score: 1

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

    2. Re:Why one server? by Anonymous Coward · · Score: 0

      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.

    3. Re:Why one server? by justsomebody · · Score: 1

      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.

      --
      Signature Pro version 1.13.2-3 release 83.5 beta3try7 after-breakfast edition
    4. Re:Why one server? by benjamindees · · Score: 1

      I'm sure you've realized this by now and are undoubtedly flogging yourself for having made such an outrageous error on the shrine of geekdom that is Slashdot, but he was talking about actual *desktop* computers, not a cluster.

      It's okay, though, I was imagining a Beowulf too...

      --
      "I assumed blithely that there were no elves out there in the darkness"
    5. Re:Why one server? by etcshadow · · Score: 4, Insightful

      There are actually lots of reasons. Not to say that in all cases you *should* go with a big server instead of a bunch of little weeny-boxen... but the point is that "bigger server" doesn't equal "bad". Here's a few reasons:

      For one, there's reliability:

      -first of all, the more expensive systems have more internal redundancy, which is a good thing (sucks to hamstring even a cheap $1000 machine because the $5 cpu-fan dies, let alone a $3000 middle-of-the line machine because a $50 power-supply dies... or the $5 fan inside the $50 power-supply).

      -if p(c) is the probability of a cheap machine crashing, and p(e) is the probability of a single expensive machine (your entire system) crashing, and you require all N of your cheap computers to be running in order to consitute an "up" system... then your overall system crash probability (p*) is:

      p*(c) = 1-(1-p(c))^N

      vs.

      p*(e) = p(e)

      so, by buying more, cheaper servers, you're increasing your crash-likelihood, by both increasing p(c) and increasing N (unless you buy additional cheap servers to failover to... but then you have to manage and support failover which is additional $$$ as well in terms of buying/developing/implementing more advanced systems and taking on a higher administration overhead).

      Not all systems are distributable, and those that are are often more complicated and/or expensive (but not always).

      There's also administration cost:

      -Obviously its easier to manage one box than 10 (or easier to manage 5 boxes than a hundred). Not to say that there aren't nice tools for mass-administration... but it is still more work, and anyone who says different is selling something (and something you want to think twice about before buying).

      There's ancillary costs:

      -hey! if you have ten boxes talking to each other to comprise one "system", then you need a network connecting them! That's another fast switch... and again, because you don't want to lose an expensive "system" because of a failure of one cheap part, you need to buy an expensive switch.

      -power costs money, believe it or not.

      -so does rack-space.

      -so do IPs... unless you're gonna NAT your little cluster, in which case you need to set up a NATing router for them... and that's another single point of failure unless you wanna shell out $$$ of one form another (again: buy/develop/implement).

      -you're probably gonna need some sort of KVM switch.

      I could go on, but I don't want to. Anyway, the point is that it is more complicated than many of the lot in this particular audience are likely to make out. It is often still the best route (and increasingly so!), but you can't just say that the answer is *always* to buy more, cheaper machines. There are many things to consider.

      --
      :Wq
      Not an editor command: Wq
    6. Re:Why one server? by FyRE666 · · Score: 1

      This just proves you've never had to factor in hosting requirements/costs. If you can fit all your hardware into one or two 1u boxes, you're going to save an awful lot of money over a year compared to a bunch of desktops. This is assuming these small companies (mentioned in the article) haven't splashed out on fat pipes into their offices to serve from there (a security nightmare, since the OP seems to be a Windows donkey).

    7. Re:Why one server? by IWannaBeAnAC · · Score: 1
      Answer: Memory & disk bandwidth is more important than you realize. In typical desktop applications, you never notice it. In a heavy I/O bound (or memory bound - same thing nowdays) job, you notice it a lot.

      If all you care about is CPU core performance, then sure buy as many of the cheapest core as you can get. If you need to deal with large data sets, CPU performance is limited by the memory or disk bandwidth; go for the best IO system you can afford (banked RAM, mirrored disks etc).

    8. Re:Why one server? by IWannaBeAnAC · · Score: 1
      Sorry to reply to my own post....

      banked RAM, mirrored disks etc

      Why the fuck did I say that? of course, I meant "striped disks"!

    9. Re:Why one server? by justsomebody · · Score: 1

      Ahhh, yep. *thumb*

      I missed the parents post. Since main talk is about scalability for server purposes first thing I thought was cluster.

      Hell, but I still don't know what sence would 20k of desktops make with original question about services running on 2-4CPU servers and C# multiprocessor scalability.

      Well, someday you miss someday you just don't get it:)

      --
      Signature Pro version 1.13.2-3 release 83.5 beta3try7 after-breakfast edition
    10. Re:Why one server? by ADRA · · Score: 1

      Think about it:

      1. Multiply the cost of your software by number of servers (since most software is based on named user licenses)

      2. Multiply your workload from managing 1 large server to managing many smaller servers.

      After a few servers, consolidation saves major bank.

      Remember, hardware is cheap, software is kinda cheap, support is heavy. 20K may seem like a lot up front, but hey, that is 4mo. of my Salary. For a system that is probably planned for 3-5 years, hardware is a trivial cost in the lifetime of the product.

      --
      Bye!
    11. Re:Why one server? by gomoX · · Score: 1

      so, by buying more, cheaper servers, you're increasing your crash-likelihood

      You have a weird theory... Did you know that multiple servers serving the same service through round robin DNS only need trivial configuration to become downtime free, by detecting with heartbeat or something like that when they are down.
      So, by having multiple servers, its not like "one goes down were fscked", its more like "one goes down, the others hold 'til we fix it". Yes, its going to be a bit slower while the other server is up again (unless you have enough margin on your server farm capacities), but its it going to hold the load. That is not possible with one big server, that also costs MUCH more.

      --
      My english is sow-sow. Sowhat?
    12. Re:Why one server? by Cramer · · Score: 1

      And wherein is the problem with statistics... one false assumption leads to a shuttle exploding. All machines don't have to be operational for the entire system to be "up" -- the entire office doesn't come to a halt because one person's computer is broken.

      Let M be the number of operating machines:
      M=N - normal system
      M<N - degraded system
      M<<N - critical system; where that line falls depends on specifics.
      M=0 - "down" system

      As such, the more machines added to the server farm, the less likely the entire system will be unavailable.

      Ancillary costs... you don't need an expensive switch; you need two cheap switches and two nics per server -- that's two 100$ switches and an additional 10$ nic per server. Yes, power costs money... a 300W PS drawing its maximum power (which it better not be doing) at the industry average $0.07/kWh is $184.09 per year on average. KVM's are cheap. IP address space from your local ISP is also fairly cheap -- and there's really no need to give every machine a public IP address. Every router on the market supports NAT -- some of them support server load balancing (cisco "SLB"). Setting up a linux box to do server load balancing ("linux virtual server") is pretty easy and getting easier every day. Outside rack space is the only measurablly expensive part, but it's generally cheaper than plain office space.

    13. Re:Why one server? by etcshadow · · Score: 1

      Well, if you read (and understood) the whole comment, I'm not talking about failover (which you are). Iwas talking about scaling. Also, I explicitly stated that you could use the same architecture to implement failover, if you include some extra pieces (like, your application has to be able to transparently fail over to another host... not typically possible without shelling out huge extra bucks if the application you are talking about is a database server, for example).

      What I was talking about with the "more, cheaper = lower uptime" comment is the situation when you have N machines compising a "system", wherein any of the component machines failing constitutes a failure of the system. This is not in any way a rare scenario: imagine that you have (this is a fairly typical example) one machine running cgi (and by "cgi" I mean to include any kind of dynamically generated content, like ASP or whatever) processes, one machine running web serving (static, non-cgi) and maybe proxying the cgi box, and one machine running a database. Now if any of those three machines fails, then the overall system is down. Lets stick in some (hypothetical) sample numbers, just for shits and giggles:

      Let's imagine that we could have three cheap machines, and each would have a 10% chance of failing over in, I don't know, a month let's say. The other option is a single more expensive machine, capable of performing the workload of all three, and with a chance of failure of 5% over the same period of time.

      So the chance of failure for your total cheap system is:

      one minus 90% (up-probablity, or one minus down-probability) cubed (multiplying each individual machine's chance of failure). Or, (1 - 73%) = 27%!!!

      And the chance of failure for your expensive system is still only 5%.

      WOW! That's a big difference! (But I did choose ridiculously large crash-probabilities to demonstrate the point more easily.)

      Of course, you could do failover on the web content, which means that the system only fails if both of your web servers fail at the saim time. Likewise, with your cgi server (that is, of course, if it is not maintaining any kind of session-state locally. sadly, many "application server" packages do hold a lot of state in the cgi server, so failover can not be pulled off transparently). However, I'm gonna stick by my declaration that you are not going to get transparent failover in your database unless you step into an entirely different class (cost-wise, and scope-wise) of database system. So now, we're talking about a total "cheap" system failure probability of:

      first, let's define p(web) and p(cgi) as the probability of BOTH cgi's or BOTH web's failing at the same time:

      p(web) = p(cgi) = 10%^2 = 1%

      so the overall probability of the cheap system being down is:

      p(cheap) = 1 - (1-p(web))*(1-p(cgi))*(1-p(db)) = 1 - (99% * 99% * 90%) = 12%

      so your cheap system is still more than twice as likely to fail as your expensive system, AND you've had to buy additional machines, AND you've had to make sure that you can support failover in your cgi/application server, which doesn't actually come for free.

      I'll save writing out the math, but EVEN IF your cheap machines were no less likely to fail than your expensive machine... you'd still end up with a more reliable system running on one machine than several (as long as there existed any machine within your system whose failure, alone (in this scenario, the database), constitutes a failure of the total system)!

      Also, for anyone else reading, this reliability statistic is only one portion of the overall rationale for at least *considering* buying less pieces of more expensive hardware. Man, I should teach a class in this sh*t.

      --
      :Wq
      Not an editor command: Wq
    14. Re:Why one server? by etcshadow · · Score: 1

      Well, there are some assumptions that go into those statistics, certainly, and I did in fact state that one of the assumptions is that every machine in the system be up to constitute an up system. Look at my reply under the previous sybling comment (of the parent of this comment) for a discussion of a situation involving some level of failover (adding load-balancing to those statistics is not hard... you just say that a tier of the system is down (and thus the whole system) if at any point fewer machines in that tier are up than are necessary to process the through-put of that tier).

      Also, I consider it a fitting comparison because we weren't talking about architecting a system with hot-standbies, we were talking about load-balancing. The posters question was about scalability, and not failover. If you have a system comprised of ten machines, each operating capacity, and one of the machines goes down, then you are operating above capacity. What that means is that you re building up a back-log of requests... and the backlog is ever-growing. In my world, a system which takes longer to process each request (without ever recovering) is essentially a system that has failed (or at least failed to properly do its job... which is to server requests in a timely manner).

      Mostly, though, please understand that I am not trying to push the idea that single mega-machines are better than server farms... I'm just answering the question (and, I'm sorry, but I believe with some pretty rational arguments) of whether there is even any real consideration to be made in the making the choice.

      For the record, I'm currently the lead technical architect of a system that *is* running on a server farm (all linux except two small suns (nfs servers... don't ask)). However, there is a balance to be struck. The system doesn't run on the most expensive machines available, but it also doesn't run on the cheapest systems available. Some of the machines (the database servers) are, in fact, larger, more expensive, more internally redundant machines. Again, if you look at my discussion under the previous sybling of the parent of this comment, you'll see why it makes sense to "stack" the databases more than the application machines (because failover of that tier is more difficult and expensive). However, we don't run "cheap desktops" in our server farm... we investigated that issue, and there really are just compelling reasons to go with low-end "servers" even for your completely throw-away machines. Also, these days, we're moving into blades. That is really just the extrapolation of the line of reasoning that brings you into cheap, rack-mount 1-U servers.

      My system of about 50 (currently) machines, though, is somewhat outside the issue that the poster asked about. You could not buy my set-up for 20 grand. We started off with just four relatively inexpensive machines... but we did not buy 10 of the cheapest things we could find, that would have been insanity.

      --
      :Wq
      Not an editor command: Wq
  5. Hmm so Linux is cheap by christoofar · · Score: 3, Insightful

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

    1. Re:Hmm so Linux is cheap by wfberg · · Score: 3, Interesting
      ... 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?
      --
      SCO employee? Check out the bounty
    2. Re:Hmm so Linux is cheap by Anonymous Coward · · Score: 0

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

    3. Re:Hmm so Linux is cheap by the+eric+conspiracy · · Score: 4, Insightful

      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.

    4. Re:Hmm so Linux is cheap by Namaseit · · Score: 1

      Well actually there is the Mono project. A .NET for Linux thing. But not the bad parts of .NET

      --
      75% of all statistics are made up!
    5. Re:Hmm so Linux is cheap by etcshadow · · Score: 2

      So true. The only thing more expensive than clueless newbs are clueless "cheap" overseas developers who actually give *negative* input, because it takes longer to rewrite their crap than it would have to write yourself in the first place.

      --
      :Wq
      Not an editor command: Wq
    6. Re:Hmm so Linux is cheap by dubious9 · · Score: 2

      I resent that. I write good code. I only have two years of experience, but even before I graduated I was programming in an enterprise environment. I never had any critical bugs (those requiring immediate attention) and only one 'standard bug' to which there was a simple workaround.

      My code was readible. I know, poeple told me it was after they had to pick it up when priorities were shuffled. I was never over a deadline and wrote automated test cases for each method in every class, in addition to UML/diagrams before and during development and documentation (java doc) during and after.

      Don't feed me crap that says young people with work experience under five years can't write usable code. It's just not true. If I didn't write usable code, I would be fired. Plus, us entry level poeple are making 20k less than those with 7-10 years of experience. I am quite a bargin these days, and I see my friends taking salary jobs in the 35-45 range instead of the 45-65 range that those same jobs were giving just a few years ago.

      Now, I'm not saying that young poeple are a little risky, because they are when compared to people with more experience. That's what contract-to-hire is. Give me three months of work and I'll show you that I can do everything those older guys can. If I can't, don't renew me.

      There is a reverse agism for those just out of college these days and it's really starting to tick me off. I worked my ass off for my degree, and I know my shit. I didn't jump ship when the market crashed, and I'll be here ten years from now.

      My work experience is in java, but most of my schooling was in C/C++ (i was a computer engineer and thus we did alot of systems programming) plus I've done some open source python and perl development. So don't tell me I'm another java cookie cut grad.

      So get off your high horse because when the job market turns around and it becomes a job-seeker environment again, watch out because you'll have a lot of good cheap programmers waiting to take your position.

      --
      Why, o why must the sky fall when I've learned to fly?
    7. Re:Hmm so Linux is cheap by Poeir · · Score: 1

      I realize in the overall topic, this is off-topic, but I'm a CS Senior, which would make me a newcomer. Would you recommend any resources for writing usable code, or is it something that you have to learn from experience?

      --
      Sigs are like bumper stickers.
    8. Re:Hmm so Linux is cheap by Slime-dogg · · Score: 1

      I'm not even out of college and I program in an enterprise environment. I'd venture to say that most guys popping out of school now are higher quality than the ones that came out of school three years ago. The employment situation is no longer a magnetic attractor of money hungry buffoons, so the only factor of those finishing school in CS/Programming is complete love of the system.

      College guys spend ages coding up OSS projects, just so that they can build a name for themselves. That wierdo that makes comments on your favorite OSS mailing list, the one that has comments that jive with your own, he might just be 19 or 20 years old. He has to get known, otherwise he will have little hope of finding employment after school.

      One thing about code is that it gets better with practice. These guys in school are practicing their asses off, because they know that they are looked down on as "noobs" to the industry.

      I know that my code is crappy. I work hard to make it clean and keep it commented. The problem comes from trying to program in orginal ASP without a debugger. :-P It gets better over time, at least. In a couple years, I'll have a library of software to sell myself with. Until then, I'll stay where I work and whatnot.

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    9. Re:Hmm so Linux is cheap by the+eric+conspiracy · · Score: 1

      Your best resources are the experienced programmers in your department. They know what works.

  6. Solution by Synithium · · Score: 3, Insightful

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

    Works for me.

    1. Re:Solution by lyberth · · Score: 1

      does it run .net?

      --

      There isn't much like the scent of a fresh harddisk
    2. Re:Solution by Synithium · · Score: 1

      Why use a vacuum cleaner, we already have a broom? I guess to answer, what does this guy need .NET to do that can't be done somewhere/how else? I guess if the APP is already written with .NET then why even ask if it can scale? You're already fricken screwed. It scales with hardware, buy more. It scales with more software, buy more.

  7. Christ, those machine figures! by abulafia · · Score: 5, Interesting

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

    --
    I forget what 8 was for.
    1. Re:Christ, those machine figures! by Synithium · · Score: 1

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

    2. Re:Christ, those machine figures! by gmack · · Score: 4, Informative

      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.

    3. Re:Christ, those machine figures! by Namaseit · · Score: 1

      yah but linux can scale to 10+ processors too hehe.

      --
      75% of all statistics are made up!
    4. Re:Christ, those machine figures! by gmack · · Score: 2, Informative

      Actually last set of numbers Linux beat windows in the 1,2 and 4 CPU categories while windows barely managed to edge it out on 8. The lead widened more after that. The 2.6.x series kernels will probably do better but who can say?

      Linus has a policy of not allowing multi CPU improvements to lower performance on single CPU. It doesn't get the cool press releases but those of us without million dollar IT budgets thank him for it.

    5. Re:Christ, those machine figures! by sean23007 · · Score: 2, Insightful

      I think this article was asking for numbers and setup information, and probably a lot of other people would be interested in yours if your claim is true. Please elaborate.

      I'm not trolling; I'm curious.

      --

      Lack of eloquence does not denote lack of intelligence, though they often coincide.
    6. Re:Christ, those machine figures! by catfood · · Score: 1

      I don't quite have a comparable story, but I've sold several Appgen accounting systems. When the prospect asks me to spec hardware, I say something like, "Whatever you have lying around is fine if it's stable and has a backup device." The system runs great on pretty much anything that runs Linux.

      If they really insist on more advice, I sell them whatever is new and in a reasonable middle-price range. Performance is simply not a problem. Granted, I haven't needed to run Appgen with more than a couple dozen simultaneous users, but we rarely go over about 3% CPU utilization as it is.

      So does it scale to 10 CPUs/ Who cares?

    7. Re:Christ, those machine figures! by csnydermvpsoft · · Score: 1

      And systems with large numbers of processors are becoming irrelevant anyways. With the clustering abilities of almost all modern OS's, clusters are replacing traditional behomoth machines.

    8. Re:Christ, those machine figures! by pmz · · Score: 1

      Aces Hardware article about how to handle a "slashdotting" with one 500MHz UltraSPARC IIe CPU (Sun Blade 100/Blade 150 system) driving both the webserver and the database server.

      I've seen SMP Sun servers with Oracle and Weblogic choke under lower load. Basically, for the guy asking about .NET: No magic fairy is going to come in the box set for .NET to make his application scale well. He really is on his own to do it right.

  8. tell them... by Anonymous Coward · · Score: 0
    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"

  9. Not a programming site by okigan · · Score: 1

    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.

    1. Re:Not a programming site by GreatOgre · · Score: 0

      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.

    2. Re:Not a programming site by ikoleverhate · · Score: 1

      Totally. This is more something to ask on a programming forum, or maybe of the .NET marketeers BEFORE you buy into it.... Did this guy really expect anything other than "use linux joo m0r0n" replies from /. ?

    3. Re:Not a programming site by Anonymous Coward · · Score: 0

      You forgot to take into account the admins' prime directive:

      Anything submitted that may possibly turn into a Microsoft bashing party must be instantly approved.

    4. Re:Not a programming site by IWannaBeAnAC · · Score: 1
      But didn't MS prohibit publishing benchmarks as part of the EULA?

      (Of course I'm only trolling ;)

  10. Less OS $ = more Hardware $ by ThatDamnMurphyGuy · · Score: 1

    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.

    1. Re:Less OS $ = more Hardware $ by ianster · · Score: 1

      Where do you get your components from? I'm looking for good and cheap 1u parts for some new servers, but I keep hitting the $1000 mark (for P4s).

    2. Re:Less OS $ = more Hardware $ by ThatDamnMurphyGuy · · Score: 1

      Well, at the time, I think WiredZone was selling 1U SuperMicro chassis/mobo combos for about $400. In January they climbed a bit. The rest I bought wherever I could, mostly NewEgg for the CPU, mem, etc.

      I went really low tech for LAMP. 1U SuperMicro 5011EB, 2 Western Dig 20GB drives, a 1Ghz P3, and 512 MB Ram.

      For that matter, here's an excellent affordable 22U rack. They also have some decent 1U machines as well.

  11. LAMP is your solution. by Anonymous Coward · · Score: 0

    Get rid of the MS expense and poor performance:

    Linux
    Apache
    MySQL
    PHP/Perl/Python

    That is a solution.

    1. Re:LAMP is your solution. by lyberth · · Score: 1

      does it run .net?
      Hes asking if .net scales well not what you would run instead. (Do agree with you though, but would use xbsd)

      --

      There isn't much like the scent of a fresh harddisk
    2. Re:LAMP is your solution. by Anonymous Coward · · Score: 1, Informative

      While that SOUNDS nice. He probably already has an application built in that enviroment.

      So you basicly advocated redo ALL your software dev that you have been working on for the past year. Throw it out and just do it again. In the world of get it done yesterday. He would soon be out of a job. He will have to tweak till it scales.

      He is finding out that optimization is HARD. Throwing more hardware at it has been a bad answer for years.

      It sounds like he has some fairly decent hardware. He just needs to make sure that the vendor who sold it to him doesnt have some stupid junk running in the background. I have seen servers come from Dell and Compaq that have out of the box no less than 40 applications running. Thats the FIRST thing to do. Also be afraid of the 'RAID' answer. It buys you some but SQL Server has to be tuned to use it properly. Also more drives can help quite a bit with SQL Server. Just moving transaction logs, windows, the data, and the page file, all to seperate drives/arrays can give you a decent performance boost.

      His next problem is actually sitting down and finding the bottlenecks. This is time consuming and takes lots of analysis. Timings and the like. Putting in places what call is doing what. He needs log files to help him. That sort of thing. Your next best tool for this is perfmon.

      Another thing he can do if he does not like MSMQ. He probably would be better off making one. Its not that hard. A window with some threads hanging off it to pick up the workloads and a few postthread messages. He probably can get away with almost no locking that way. I have built MANY screaming apps that do just that.

      Also make sure your not using the default heap managers in visual studio. They are rather piggish with multi threaded apps.

      As for SQL server I have seen AWSOME impilmentations and HORRIBLE ones. Keep in mind ACID when making your tables. ACID

      Break the db into smaller tables. Look at the WAY you create datarows. How are you updating them. What sort of stored procedures are you using. Large table joins can help. But they can also hinder. USE the query plans to tell you HOW SQL server is trying to serve your requests.

      Do you have to scan a whole table just to find a row? Maybe that would be better as some sort of a lookup thing that is loaded once.

      Do you have tables that are 'key' tables. You probably do. These are the ones that will kill your performance if you get a few semi slow queries. You can see the locking behavior of this sort of thing. What if they were 'smaller'? Do you really need all the data in the WHOLE row all the time? Or is most of your time spent in small parts of the data. Then you branch out to the bigger pieces?

      Remove things like 'binary' data out of your tables. You are using a database why put binary data in it? How will that help you get at that data if you have to have some sort of converter just to look at it? SQL server is very slow with this sort of data. Up to 20x slower just to read/write to those tables. You may find new uses for your data if you put it in a table instead of a single column.

      2k
      IIS
      SQL Server
      VB/VC/.NET/COM/WIN32/ASP

      That is a solution also. It is a poor craftsman that blames his tools...

      Scalablity is designed into an application. Its usually is not a factor of the OS.

      For all you linux folk who are getting ready to flame me. Remember HE asked about MS stuff. Also MS DOES make some fairly cool stuff if you would stop and take a look at it.

    3. Re:LAMP is your solution. by mingot · · Score: 1

      Feel free to mod ME down for a stupid MOD PARENT UP post, but it's got to be said :P

      MOD PARENT UP.

  12. What's your major malfunction? by Anonymous Coward · · Score: 4, Insightful

    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.

    1. Re:What's your major malfunction? by Phillup · · Score: 1

      Because there is the implied question of how to solve a problem (getting x level of performance) within a certain budget?

      You are right tho about the signal/noise ratio...

      --

      --Phillip

      Can you say BIRTH TAX
    2. Re:What's your major malfunction? by dabootsie · · Score: 5, Insightful

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

      That really isn't the question being asked at all.

      This person doesn't want to know if .NET will provide a relatively non-diminishing gain in performance as more capacity is added, which would be scaling.
      They actually want to know if it will handle a large number of concurrent connections to services on small hardware.

      The real question is:
      Will it handle a lot of clients at once on very little hardware?

      The answer is: No.

      If you don't have enough capital to invest in the infrastructure you need, you have to either find something that will do what you want with less, or give up on the whole idea.

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

    4. Re:What's your major malfunction? by 73939133 · · Score: 0

      If you don't have any experience with the scalability of .NET, I advise you to keep your mouth shut.

      The question "does .NET scale" means "how much room for improvement is there in how .NET uses a given chunk of hardware"; that's a question that is most easily answered by comparing .NET performance with the performance of other systems.

      For example, since .NET has a similar architecture to Java and Java scales fairly well, that tells us that there is nothing in principle that keeps .NET from scaling. (Of course, that also naturally raises the question why Cliff isn't using Java, but that's for him to work out.)

      What's your major malfunction?

      Well, we know what your major malfunction is: you are one of those Microsoft zealots. Your support for that company is so irrational that you just don't want people looking at alternatives.

      The signal/noise ratio is bad enough already.

      Yes, and you just contributed to the noise portion of it.

    5. Re:What's your major malfunction? by Anonymous Coward · · Score: 1, Insightful

      The thread should end with parent's post.

      I'm serious. The answer is NO. Nothing else should be said...but here's my 2 cents:

      You want to maximize hardware for the money???

      WTF...linux/*bsd was born to do this.

      If you are posting on slashdot, I imagine you must read it "from time to time".

      Take the advice people have been giving out day after day, year after year.

      small outfits HAVE SO MUCH TO GAIN FROM OSS.

      sheesh.

      SLASHDOT HAS FAILED if people are posting questions like the one in the article.

    6. Re:What's your major malfunction? by Anonymous Coward · · Score: 0

      What's your major malfunction?
      Let me remind you that you are on slashdot.

    7. Re:What's your major malfunction? by pfleming · · Score: 0

      So. Can .NET scale to 100 concurrent connections? And if it can't, what can be done to reduce the number of connections? Why are there that many concurrent connections, are they persistent?

      No doubt this will melt into my OS is better than yours and never answer the question.

      Maybe Postgresql running on the Windows server will be a better choice? You still have the Win interface if that really is required, plus a better db than MSSQL.

    8. Re:What's your major malfunction? by JesterXXV · · Score: 1
      Well, we know what your major malfunction is: you are one of those Microsoft zealots. Your support for that company is so irrational that you just don't want people looking at alternatives.

      Holy shit. This person was trying to keep the discussion limited to, God fucking forbid, the actual question put forth by the author, and you decide he (or she) is a Microsoft zealot. Absolutely no qualifying statments were made with regards to Microsoft or open-source (such as "Microsoft R0x0rz! or "Linux 1z t3h $ux0r5"), and yet you are able to glean the fact that the grandparent poster is irrationally, willfully enslaved by Microsoft.

      My number one pet peeve is zealots for anything. My number two pet peeve is people who accuse people of being zealots without realizing that they, too, are exhibiting zealot-like behavior.

      --
      Yo mama so fake, she failed the Turing Test.
    9. Re:What's your major malfunction? by Anonymous Coward · · Score: 0

      You sir, have delivered a humor meme. Laughing that is outside of the user's control.

    10. Re:What's your major malfunction? by 73939133 · · Score: 1

      Holy shit. This person was trying to keep the discussion limited to, God fucking forbid, the actual question put forth by the author,

      When someone asks "does X scale", comparisons with other systems, including open source software, are completely legitimate, as I explained in my response.

      Absolutely no qualifying statments were made with regards to Microsoft or open-source (such as "Microsoft R0x0rz! or "Linux 1z t3h $ux0r5"), and yet you are able to glean the fact that the grandparent poster is irrationally, willfully enslaved by Microsoft.

      If "shut up and don't talk about open source software" isn't a bias against open source software, I don't know what is. The profanity and insults used by the post also should give you a clue.

      Unlike commercial software, which is supported by billions of dollars in marketing and PR, open source software lives by word of mouth; trying to exclude it from these kinds of discussions, where it is clearly relevant, is a direct attack on OSS.

      and yet you are able to glean the fact that the grandparent poster is irrationally, willfully enslaved by Microsoft.

      I have no idea whether the poster is "willfully enslaved by Microsoft". I suspect he actually believes what he is saying; most of the opinions like his are probably based on stupidity, not "willful enslavement".

    11. Re:What's your major malfunction? by Anonymous Coward · · Score: 0

      Well, Mono is actually a decent, open source .NET implementation. I really doubt it, but maybe it scales better than Windows with MS software? I wouldn't recommend it for production use just yet, but this could be an issue.

    12. Re:What's your major malfunction? by Anonymous Coward · · Score: 0

      In all fairness, the original parent post was expressing a valid point/idea, but phrasing it totally wrong, and obviously a troll.

      The answer to the article questino is: no, it does not scale well. But that makes a pretty boring topic, so the obvious next step is: ok, so what WILL scale?

    13. Re:What's your major malfunction? by grahamlee · · Score: 1
      The real question is:
      Will it handle a lot of clients at once on very little hardware?

      The answer is: No.

      You missed out the bit of your post where you explain why you don't believe that .NET can scale. And the answer because it's Microsoft and therefore slow and evil isn't going to be considered admissable evidence, neither is it aer not haev teh unix as this is a question of scalability not operating system architecture.

      Try again, only this time please expand on your answer, explaining why it is that you don't think the .NET platform is scalable. I'd be interested to hear your answer too; I've only used .NET so far on a test box, hosting a local user (and the beta version of the software I was using ate system resources, so I stopped) and wonder whether MS are expecting all small to medium enterprises to want to shell out lots of money on hardware as well as software.

    14. Re:What's your major malfunction? by Anonymous Coward · · Score: 0

      No explanation needed. From the list of bullet points this guy has provided MS software simply isn't going to scale to the extent he wants.

    15. Re:What's your major malfunction? by fmaxwell · · Score: 2, Interesting
      The question "does .NET scale" means "how much room for improvement is there in how .NET uses a given chunk of hardware"; that's a question that is most easily answered by comparing .NET performance with the performance of other systems.

      For Christ's sake, did you even read the question? The very first line was:
      Does anyone have first hand experience with scaling .NET to support 100+ concurrent requests on a decent 2-4 CPU box with web services?
      He didn't ask for some lame-assed "you should use open source" troll.

      Second, the open source troll didn't compare the performance of open source to .NET, didn't suggest an open source alternative to .NET, or offer an appraisal of the performance of .NET. It was one line:
      If they're that strapped for cash they should be looking at open source.
      That'a a zealot for you. He's pushing open source when he doesn't even know if there is a viable open-source alternative, whether the company has staff with experience on non-Microsoft systems, or whether there are even specific features that the company wants that only .NET currently offers.

      Well, we know what your major malfunction is: you are one of those Microsoft zealots. Your support for that company is so irrational that you just don't want people looking at alternatives.

      How the hell can you decide someone is "one of those Microsoft zealots" because he tried to get someone to answer the question rather than using it as a way to push open source? This place is absolutely unreal sometimes. I swear to God that Microsoft could release a cure for cancer and someone on Slashdot would would recommend that terminally ill cancer patients wait for an open-source alternative.
    16. Re:What's your major malfunction? by nat5an · · Score: 1

      Jeez man, I didn't know Slashdot had a mission that it could fail. I thought it was just "News for Nerds, Stuff that Matters." It's not a religion, it's just software. ;-)

      --
      Head down, go to sleep to the rhythm of the war drums...
    17. Re:What's your major malfunction? by macrom · · Score: 4, Insightful

      Quit being an idealist and live in the real world here. Linux may be born to do whatever the hell you want it to, but that doesn't change the fact that a customer needs Windows solutions. If a client comes to you asking for help with their Windows systems and you stand there and say "use OSS instead", then you're down one client probably AT LEAST 95% of the time. Maybe a small minority will want to listen to what you have to say, but more than likely they just want to roll with what they have.

      This company doesn't have money for a new beefy server. So what makes anyone here think that this company has the money to :

      1) Take down all of their current systems and install Linux or something similar.
      2) Spend the next several months learning an operating system and related tools that the IT staff may not have experience with.
      3) Spend the time and money to get rid of all of the Microsoft technologies that they use such as Exchange/Outlook, Active Directory, IIS, etc. The TCO is more than just the price of the free software. You have to make sure that you can swap out technologies without impacting your customers or your employees.
      4) Spend the money to train the current staff and/or hire new expertise to administer the new systems.

      The guy at the top that told the parent to basically STFU is right. .NET is a real world technology that TONS of companies are moving towards. Whether you Slashbots like it or not, this is the way that many of our customers are heading. Answer this guy's question to help him out as a fellow Slashdotter or keep your religious preachings to yourself.

      To close, I want someone to respond to this post that has successfully walked into a company that was strapped for cash and wanted some Windows solutions, but then suggested using OSS instead and had the company buy into it. And I'm not talking about your brother's donut shop either, I mean a REAL customer with, say, a minimum of 100 users on a Windows network using AD, Exchange, etc. I think it's only fair to hear the success stories to give some validation to this argument.

    18. Re:What's your major malfunction? by Jellybob · · Score: 1

      Well, I can't say I've been succesful yet, but I'm in the process of trying to get the charity I work for to use *nix on their new web server, instead of shelling out for another 2k license, and seem to be getting somewhere (but of course we are in an enviroment where the entire IT department uses Linux at home, and only puts up with 2k at work because we have to)

    19. Re:What's your major malfunction? by Sawmill · · Score: 2, Interesting

      > To close, I want someone to respond to this post that has > successfully walked into a company that was strapped for > cash and wanted some Windows solutions,

      This is what my company has done since 1996, and their are times we get push back. However, 90% of the time, we end up saving the company significant money. On hardware, software, maintenance, support and development.

    20. Re:What's your major malfunction? by dabootsie · · Score: 1

      You missed out the bit of your post where you explain why you don't believe that .NET can scale.

      Did you read the story? The guy has already said that the .NET app doesn't handle the desired number of users on the available hardware. He's looking here on slashdot for some kind of magical fairy dust that would force that same app to handle all the concurrent users he needs.

    21. Re:What's your major malfunction? by Paracelcus · · Score: 1, Insightful

      100 users?

      You're kidding right, I've ridden on a bus with more people than that!

      I was a sysadmin at a place that had 300 active user accounts on a RedHat 6.2 machine, a pentium 150 with 160 Megs of RAM and 2-4 Gig HD's.
      It provided the following services.
      SMTP
      POP3
      SSH
      Caching Name Service
      1 MySQL Database
      SMB filesharing.
      HTTP (frontend for the database).

      The machine was made from parts bought at Fry's for a couple of hundred dollars.

      Where are small companies going to get 50K for a machine when they have to lay off people to make the payroll? 50K is the salary of one productive inividual for a year!

      --
      I killed da wabbit -Elmer Fudd
    22. Re:What's your major malfunction? by Robert+The+Coward · · Score: 1

      I don't think he is look for fairdust but he is look for tweaks that could improve preformance. Ex. I had a linux box that had slow disk access cause me file sever to slow down. Someone sugested I turn on DMA. Hard drive speed doubled and I required less system to do the same work. He is looking to ous to see what he might be doing wrong or if his results a the same as other.

    23. Re:What's your major malfunction? by Anonymous Coward · · Score: 0

      .net is an order of magnitude too slow. No server tweaks are going to make up that difference.

    24. Re:What's your major malfunction? by Anonymous Coward · · Score: 0

      OK, so hard luck... get OSS or go out of business. It's a sad story that maybe their IT staff doesn't know Linux, but either get with the times or perish - such is the market-place.

      #1 you're wrong about customers dropping Linux over Windows 95% of the time. 95% of the time the project will produce a new service that didn't exist, therefore there's no dependency on legacy Windows systems. So if you can impliment it, it's almost guarenteed free money.
      #2 If the guy is complaining the company was only allocating $20k, then why the hell would it make sense to drop 5K on a closed source server license for something like Outlook?
      #3 For every 5 reasons you come up with as to how hard it is to switch to Linux because of current infrastructure limitations, there are people reading this post that will remember that when they setup their next network - and therefore do it correctly.

      I think I know where your Windows server issue is... it's right next to the Crimea-fuckin-River. Next time use Linux and you won't run into this.

      The point is, if you're infrastructure isn't there already and can't handle a simple task like this you're toast... infact you were toast two days ago, you just woke up today with the sun-burn.

    25. Re:What's your major malfunction? by grahamlee · · Score: 1

      Or possibly for someone to tell him how to cache certain requests, how to ensure that all code is compiled to native machine language, that the FreeBSD version of the runtime is x% faster, etc. etc. etc. The answer "no" neither confirms nor denies the possibility of speeding up .NET code.

    26. Re:What's your major malfunction? by SEWilco · · Score: 1

      50K might be the salary for one person. The employer has to pay benefits, insurance, office space/tools/staff, and there might be taxes or other government fees which are paid by employers (in the USA there are significant taxes which the employee does not pay).

  13. Inquiring minds want to know... by Rohan427 · · Score: 1

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

    PGA

    1. Re:Inquiring minds want to know... by Anonymous Coward · · Score: 0

      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!!!

    2. Re:Inquiring minds want to know... by wuice · · Score: 1

      I'd admin a linux box over a windows box any day (and I've done my share of both). Even if Linux cost twice as much as windows I'd use it for a server just because the maintenence cost (in terms of stability and man-hours to make any non-trivial changes) is so low compared to windows.

    3. Re:Inquiring minds want to know... by Rohan427 · · Score: 1

      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.

      Did I type the word "Linux" anywhere in my post?

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

      Wrong, very wrong.


      Since we're on the subject, and without getting into an intellectual argument with someone apparently not prepared for same, you apparently (based upon your post) have a LOT to learn about TCO, Linux, OSS, maintenance, and computing in general.

      I stand by my original question, and await an informed, knowledgable response.

      PGA

  14. Re:Can .NET Really scale? by wolfbane01 · · Score: 0

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

  15. What the web app doing? by ThatDamnMurphyGuy · · Score: 2, Interesting

    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?

  16. Re:I'm guessing the consensus will be "no" by Dthoma · · Score: 0

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

    --

    Note to M1-ers: a curt but otherwise insightful message is not "Flamebait" or "Troll".

  17. well... by confusion · · Score: 4, Insightful

    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.

    Jerry

    1. Re:well... by Malc · · Score: 1

      100 concurrent connections isn't the same as 100 (serialised) connections per second. If your performace is good enough that your transactions are quick, you can get a lot of throughput without so much concurrency.

    2. Re:well... by confusion · · Score: 1

      I agree, but the problem is that the story really didn't specify if it was truely 100 concurrent connections. If so and they're needing to handle potentially thousands of connections per second, he is going to have a very hard time.

      Jerry

  18. Not a really good answer by valkraider · · Score: 2, Insightful

    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!

    1. Re:Not a really good answer by Synithium · · Score: 1

      .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 transaction....it'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.

    2. Re:Not a really good answer by twitter · · Score: 1
      You say:

      My advice would be to *try* and use a cluster of some sort instead of the one server approach. .... Of course, the more machines - the more licenses... Good luck!

      What part of this did you not understand?

      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.

      Go away.

      --

      Friends don't help friends install M$ junk.

    3. Re:Not a really good answer by WasterDave · · Score: 1

      let me apologize for all the nutheads who say "drop MS - use Linux"

      And why, exactly, is this a nuthead reaction? Our original poster has hit some major problems with a lump of technology that are, essentially, entirely financial in nature. Basically he's saying "we've developed in .net but have discovered that we're going to have to spend $big PER CLIENT to roll the bloody thing out".

      Yes, they've been bait'n'switched - and he'll probably do better technology assessments next time, and as you point out that's not really the point. They need to sit down, have a look at how much it would cost to move it to some kind of hybrid approach and the long term gains they stand to make.

      Personally, I'd drop MSSQL and put Postgres on a dedicated box. Leave the .net application more or less as is and scale it across a couple of application servers via an el cheapo load balancer such as the coyote point product.

      But hey, that'd be a dustmop, right?

      Dave

      --
      I write a blog now, you should be afraid.
    4. Re:Not a really good answer by tshak · · Score: 1

      The point is the poster is asking if .NET scales. Not for a "utopian OSS is free use it always" response. Sure, there's MySQL, PostregSQL, and now SAPDB.org, but none of those come with free support, nor free dev's. Maybe the client he works for A) already has the SQL licenses and B) has developers who are familiar with MS SQL. If it takes a week or two for the DBA to learn the ropes of the new system you've easily paid for MS SQL.

      The point is that everyone's situation is unique, and in this persons it seems fit for them to run MSSQL and .NET on Win2k Server. So, the question is, can we in the community provide any anecdotes regarding our experiences with .NET scalability, not spout off about technology decisions w/o understanding the bigger picture.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    5. Re:Not a really good answer by shirai · · Score: 1

      Dude, the guy above is completely right about other types of bandwidth but think about REGULAR bandwidth. Regular network bandwidth costs will FAR EXCEED whatever the hardware costs unless you are using VERY expensive hardware, especially with ASP.net which compiles all of the code. In other words, when scaling becomes a cost problem, the bandwidth cost will be an even bigger problem.

      --
      Sunny

      Be my Friend

    6. Re:Not a really good answer by Anonymous Coward · · Score: 0

      everyone's situation is unique, and in this persons it seems fit for them to run MSSQL and .NET on Win2k Server

      Except it doesn't actually seem to be working out for them at all.

    7. Re:Not a really good answer by Anonymous Coward · · Score: 0

      While there's a lot of truth to this, by the time they're using a lot of bandwidth they'll either have a lot of customers or be out of business. If they have a lot of customers, they'll be able to afford to throw some hardware at the problem.

    8. Re:Not a really good answer by abirdman · · Score: 1

      If it takes a week or two for the DBA to learn the ropes of the new system you've easily paid for MS SQL.

      Last time I checked, an internet version of MSSQL cost more than a couple of weeks of the DBA's time. I could be wrong about this, because it's been awhile since I looked a prices, but I thought it was about $20K plus annual maintenance/support. Oracle costs even more.

      It seems like the issue in scaling is to break up the software that's running (DB, Web Sever, Transaction Processing, User Application, Backup, whatever) into their own separate boxes as much as possible, and tune them separately for their tasks. Segregating the applications will allow identifying and rectifying problems and bottlenecks within each separate process. Throwing RAM and disks at the DB will probably have a great effect, though probably not so for IIS, so why keep them together on the same box. Gigabit Ethernet will likely enhance communication between IIS and MSSQL, but most likely be useless enhancing IIS throughput if you're hooked to the internet at 1Mbs. I know, more boxes mean more MS Server licenses, but at least then you can identify and fix bottlenecks where they happen, rather than just, e.g.add more servers to a cluster. And heck, that requires more MS licenses as well.

      --
      Everything I've ever learned the hard way was based on a statistically invalid sample.
    9. Re:Not a really good answer by WasterDave · · Score: 1

      I guess it's the phrasing, and not really the content that keeps dragging me back to this. The content's good, but I don't think my reply was in any way utopian.

      I didn't, for instance, advocate ditching .net altogether and going for a mod_perl solution. Neither did I (and this will probably always make me laugh) advocate mono. All I suggested was taking the most expensive, slowest performing and most easily ported bit and moving *that* to OSS.

      So, while this isn't advice with scaling .net, per se. It *is* advice regarding scaling .net for those on a limited budget.

      And, yes, the utopian shit pisses me off too :)

      Dave

      --
      I write a blog now, you should be afraid.
    10. Re:Not a really good answer by RoLi · · Score: 1
      Maybe

      Yeah, maybe. Maybe not.

      If so, the poster should have told us: "We have gone down the Microsoft path and will either pay whatever Microsoft charges us or go out of business, whichever comes first."

    11. Re:Not a really good answer by quantum+bit · · Score: 1

      ...but none of those come with free support, nor free dev's.

      And MSSQL does? Have you ever dealt with Microsoft support?

    12. Re:Not a really good answer by valkraider · · Score: 1

      I understood perfectly. My point was that, in my *personal* experience with systems that need scalability is that 2 $10,000 boxes would *Scale* better than 1 $20,000 box. So my comment was in effect that while we don't want to use 20 of the bargain basement PC's - sometimes the big expensive ones are not much better. Usually get good reliable hardware, and several of them. Something like 4 dual processor Xeon class systems should be doable for $20k. Of course there could be more required for the $20k than just boxes. Adjust $$$ accordingly...

  19. What does this mean? by Anonymous Coward · · Score: 0

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

    1. Re:What does this mean? by Anonymous Coward · · Score: 0

      Thanks for the laugh!

  20. Any more information? by JohnDenver · · Score: 1

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

    --
    "Communism is like having one [local] phone company " - Lenny Bruce
    1. Re:Any more information? by Synithium · · Score: 3, Informative

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

    2. Re:Any more information? by realdpk · · Score: 2, Informative

      FreeBSD + Apache 1.3.x can easily do 500+ small requests per second on a pII-400 w/ 512MB of RAM. Add MySQL in to the mix, and with proper code (read: caching, so you don't hit MySQL every hit) it drops considerably, but it's still above the 50-100 hit/s range (if you do it well) :)

  21. Re:frostyness by Anonymous Coward · · Score: 0

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

  22. "but the commercial said!" by SuperBanana · · 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)

  23. Um, like everyone says by Anonymous Coward · · Score: 0

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

  24. You've got bigger issues. by Anonymous Coward · · Score: 5, Informative

    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.

    1. Re:You've got bigger issues. by ergo98 · · Score: 1, Interesting

      This whole ask Slashdot is just pure rhetoric tripe. C# triggers? Sounds like someone does something one way in one environment, so they expect to do it that way in every environment. The whole question about "scaling" is ignorant in any case: His question is really "How much can I do with X box", not a scaling question (which would be "How big of a box, or how many boxes in a cluster").

      Here would be my answers, though this chap is so clueless it's barely worth it.

      1. Says you. On the one hand this question is about bargain basement equipment and setup, but it needs to be a high load messaging server? Uh huh.

      2. This question should be "Should I use SOAP?". .NET in no way ties one to SOAP, nor does SOAP tie you to .NET (use SOAP on Apache).

      3. "I have a hammer so why can't every problem be a nail? I don't understand RDBMS'...I'm confused!"

      4. What sort of claptrap BS is this? The SQL Server numbers are not only best for the highest TPC, but also for most TPCs for the cheapest amount. Pure BS question.

      5. Uh...

      6. Uh...okay...don't use flipping reflection then. Absolutely ridiculous.

      7. Firstly this is pure, unadulterated BULLSHIT (ASPX absolutely SMOKES ASP in virtually all situations), but even ignoring that, what does this have to do with .NET? WebServices is one solution offered in the .NET grab bag, just like you can do it in Apache.

      8. Completely ignorant.

      9. I will somewhat give this. Replication on SQL Server, like on most database servers, is a bitch, however it works great when done correctly. However I suspect that someone is just digging in a bag of concepts because for what they're talking about it would be wholly inappropriate.

      How this pure bullshit got posted on the front page boggles the mind. Actually, no, I just realized that this is Slashdot...it doesn't boggle the mind at all. In fact it makes total sense.

      Next up : "Does Windows 2000 Scale?"

      "I used Windows 2000 on a Pentium 60 with 128MB of RAM, and when I call WaitForSingleEventEx sometimes it takes more than 60ms!"

    2. Re:You've got bigger issues. by quantum+bit · · Score: 1

      His question is really "How much can I do with X box"

      Well, you can play Halo... Might be able to get Linux running if you have a little bit of hardware experience.

  25. Does X scale? by Halloween · · Score: 1

    This is always the most generic performance question. Chances are it can scale. It's like people saying can j2ee scale? Of course it can...here's the key...in 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.

  26. Building a Large-scale E-commerce Site with Apache by ThatDamnMurphyGuy · · Score: 1

    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.

  27. you're so screwed.. by mysterious_mark · · Score: 1

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

  28. Can my car go really fast? by SamBeckett · · Score: 5, Insightful

    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.

    1. Re:Can my car go really fast? by quakeroatz · · Score: 2, Funny

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

    2. Re:Can my car go really fast? by Anonymous Coward · · Score: 0

      I suspect the whole question is some sort of Oracle/Java troll designed to troll Microsofties and LAMP lusers alike.

    3. Re:Can my car go really fast? by saunder3 · · Score: 1

      This entire story is lacking units...

      rpm throttled at 4.5 billion

      RPM is a unit.

    4. Re:Can my car go really fast? by Anonymous Coward · · Score: 0

      [This entire story is lacking units...

      rpm throttled at 4.5 billion

      RPM is a unit.]

      It's a freaking package format. Geez. (nods head) Windows lusers...

    5. Re:Can my car go really fast? by Anonymous Coward · · Score: 0

      atoms might be spinning at 4.5 billion rpm? i think you're missing the point...

    6. Re:Can my car go really fast? by jazman · · Score: 1

      Sounds like you're looking at the text but not reading/understanding it. There are some ambiguities, but not nearly as many as your post makes out. Taking the numbers one by one:

      100+ concurrent requests: that's fairly clear, except for "what exactly is meant by request?" - query, transaction, update etc? But your complaint is about the numbers, not the words. This number doesn't need a unit.

      2-4 CPU box: A box with between 2 and 4 CPUs in it (inclusive).

      10 dual CPU systems: 10 boxes with 2 CPUs in each. Perhaps a beowulf cluster?!!!

      20K budgeted for the year: First genuine ambiguity. Perhaps he has been reading H2G2 and means leaves. Or maybe this company uses bananas for currency? If we assume a currency, it's not likely to be lira, that would be about $5. Generally Americans who post to a world-wide system assume only Americans will read it, so this probably means dollars.

      50K on a server for small companies is a huge investment: Again this could be lira but any company that considers $11 a huge investment for a computer has larger problems to solve before it starts thinking about computers. 50,000 bananas would take some shifting/scoffing though...

      5 cheap systems for 3K each: Context suggests this means 5 computers for $3000 each. If you think this is ambiguous, what other possibilities are there? 5 computers for 15000 bananas, possibly.

      7 months: the unit is "months."

      60 concurrent requests: again 60 is a scalar value here and needs no units.

      200 concurrent requests: ditto.

      spend 6 million on a 64 CPU box: 6,000,000 bananas, wow. 64 looks like a scalar again.

      spend more than 30-50K on a server: Probably currency again. The clue is in the word "spend." Ok, you can spend time as well, so perhaps that's 30-50k minutes, and the server is connected to /., which might explain why they can only afford $5 for a new computer.

      static ASP/HTML...throughput...150-200: yes, possible ambiguity here. The OP could mean 150-200 simultaneous pages, or 150-200 pages per time period. Webserver performance is usually measured in pages/time though rather than concurrency. Regardless of what he actually means though he is comparing the performance of static ASP/HTML pages with webservice pages and notes a 90% drop in throughput. I presume you know what a 2.6GHz system is (if you don't, what are you doing here?).

    7. Re:Can my car go really fast? by Anonymous Coward · · Score: 0

      I think the author was just as asshole trolling. Many other people understand the context and units of the article, and It looks like rather resonable business requirements. There are units defaults like cost means Dollars. /. is a US centric website, (read the FAQ).

    8. Re:Can my car go really fast? by Anonymous Coward · · Score: 0

      Can you please tell what you mean by lira? There are a number of countries using lira for their currency.

      Now you blamed the poster to be ambiguous, right?

  29. Hey! Let's save this guy the cost of MS support! by pyrrho · · Score: 2, Troll

    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.

    --

    -pyrrho

  30. A big Nelson HAHA ... by xmedar · · Score: 0, Troll

    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?

    --
    Any sufficiently advanced man is indistinguishable from God
    1. Re:A big Nelson HAHA ... by Anonymous Coward · · Score: 0

      Only in America can someone telling the truth be marked as a troll.

  31. .NET is very young by Anonymous Coward · · Score: 1, Interesting

    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.

  32. Are you asking about .NET, or something else? by Brento · · Score: 5, Insightful

    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.

    --
    What's your damage, Heather?
    1. Re:Are you asking about .NET, or something else? by GoofyBoy · · Score: 2, Interesting

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

      Oracle 9i and maybe 8 allows you to use Java for stored procedures.

      It has some performance improvements over PL/SQL but I never really thought that it was useful. More like "another shiny button" added to a product.

      --
      The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
    2. Re:Are you asking about .NET, or something else? by ChannelX · · Score: 1

      Oracle 8i has java features and 9i adds even more stuff. The ability to create stored procedures in java in oracle is nice because there is lots of stuff that java can do that pl/sql cannot.

      --
      My blog: http://jkratz.dyndns.org/~jason/blog/
    3. Re:Are you asking about .NET, or something else? by gfody · · Score: 1

      you can't base your enterprise plans from strangers like me on Slashdot

      so next time you think about "asking slashdot" just forget it!

      --

      bite my glorious golden ass.
    4. Re:Are you asking about .NET, or something else? by TheNetAvenger · · Score: 1

      Oracle 9i and maybe 8 allows you to use Java for stored procedures

      In addition you get free days off when the Oracle system dumps.

      Ask, Orbitz, they love the 'unbreakable' Oracle.

      It is amazing that products with humble beginnings like MySQL can truly put a dent in the big guys in terms of reliability and performance.

      As a side note, I admit that MS SQL has down well for our clients too.

    5. Re:Are you asking about .NET, or something else? by phong3d · · Score: 1

      Probably a little late to bring this up (and I'm sure someone downthread's mentioned it) but the new SQL Server (Tahoe? Yukon? Some SUV Name) lets you write stored procedures in any .NET language you want. So, you could embed C# directly into the database without a problem. Hell, you could embed Python.NET directly into the database...

    6. Re:Are you asking about .NET, or something else? by snillfisk · · Score: 1

      What database are you going to recommend that allows you to embed C# (C++, whatever) programs in the database itself?

      PostgreSQL supports loading of functions from shared libraries, see the manual for more information. This allows you to create fairly complex functions that can be embedded into your database application. If I remember correctly, even PL/pgSQL is implemented in this way (requiring you to load the shared library for PL/pgSQL first).

      The main point is that you can separate the database logic (and small functions to support that logic) completly from your regular application (but you probably already understood that, just mentioning it for the ones who didn't).
      --
      mats
      One man's ceiling is another man's floor.
    7. Re:Are you asking about .NET, or something else? by Stu+Charlton · · Score: 2, Insightful

      No one knows the real reasons behind the Orbitz debacle, other than it being attributed in the press to oracle real application clusters. RAC runs quite a few large systems without such press debacles including a crucial one for the FAA... We don't know if it was a bug, or incompetent sysadmins, or both.

      As for MySQL being "reliable", you need only look at the history of Slashdot to see that MySQL's "reliability" is, at best, a fairly recent innovation, and still open for debate.

      --
      -Stu
  33. The costs here aren't about software. by Coreigh · · Score: 0

    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.

    --



    "Waitress I need two more boat-drinks..."
    1. Re:The costs here aren't about software. by Coreigh · · Score: 0

      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.

      --



      "Waitress I need two more boat-drinks..."
  34. Java is a DOG by jrothlis · · Score: 0, Troll

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

    1. Re:Java is a DOG by the+eric+conspiracy · · Score: 4, Insightful

      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.

    2. Re:Java is a DOG by phnx90 · · Score: 4, Interesting

      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.

    3. Re:Java is a DOG by Anonymous Coward · · Score: 0

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

    4. Re:Java is a DOG by ausgnome · · Score: 1

      Your problems not Java , its the inneficient way you have done things. Your obvious lack of knowledge is not the languages fault. Anybody using Oracle products on anything less than a 6 cpu Nix box with less than 6 gb of memory is going to end up with a dog of a system. Oracle makes MS software look efficient

      --

      I had a pet once
    5. Re:Java is a DOG by Tom+Davies · · Score: 1

      typically 500 simultaneous sessions

      How many simultaneous requests?, i.e. at one moment in time how many threads are processiong HTTP requests?

      Tom

      --
      I have discovered a wonderful .sig, but 120 characters is too small to contain it.
  35. Extended stored procedures by autopr0n · · Score: 1

    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.

    --
    autopr0n is like, down and stuff.
    1. Re:Extended stored procedures by alder · · Score: 1
      No, it's not that simple. .NET dll has just 2 things in common with all the other dlls on Windows system - file name extension and PE file format. Inside it keeps CLI bytecodes not the native processor instructions. So in order to use it CLR must be present, and even more the calling process must know how to invoke CLR and use it to load assemblies (the .NET things with DLL extensions). And even more - though .NET assemblies can be precompiled they need the entire .NET core (and more) infrastructure just to run.

      It is expected that the next version of SQL Server will know how to do this. But they cannot do this yet.

    2. Re:Extended stored procedures by theNote · · Score: 1

      You can do it now.

      Signed .NET assemblies that are loaded into the GAC are simple to register as COM components.
      This makes them usable by standard COM calls.
      Calling these from SQL Server is a snap.

    3. Re:Extended stored procedures by Keeper · · Score: 1

      Loading the CLR is very simple, though not incredibly well documented. Lookup the details on the ICORRuntimeHost and CORBindToRuntimeEx. It is simple enough that you should be able to figure out what needs to be done just by looking at the interfaces. The initial load takes about 5 seconds, but it only has to be done once. ;)

      It wouldn't be difficult to write a simple app that wraps the loading of the CLR and the assembly you want to use. Managing it inside of the SQLServer process space is the tricky part.

    4. Re:Extended stored procedures by Keeper · · Score: 1

      That's a better idea than the one I had below. ;)

  36. Re:I'm guessing the consensus will be "no" by Anonymous Coward · · Score: 0

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

  37. .NET Benchmarks by fine09 · · Score: 5, Informative

    Hello,
    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 www.asp.net 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.

    1. Re:.NET Benchmarks by HuckleCom · · Score: 1

      More to it than just hardware and applications; Data plays a role as well. Such as how much is in your database and how complex the queries are.

    2. Re:.NET Benchmarks by hellswraith · · Score: 2, Interesting

      Not really the point of the poster. The machines he is specifying are cheap, like around 500-1000 dollars cheap. WELL below the 20,000 price the poster is posting. Through another couple thousand dollars at the hardware and a few more for licenses from MS, you are only looking like 5000-10000 dollars for more than enough power to do what the poster needs to do. The problem is the poster doesn't know very much about .Net and the technologies he wants to use.

    3. Re:.NET Benchmarks by gilgongo · · Score: 1

      > handle about 100 Requests per second before it starts to get hot.

      Didn't the original post talk about 100 *concurrent* connections per second? In which case, that's one hell of different metric to simply 100 reguests per second. Each of those connections could be doing 100 requests in the second, for instance.

      --
      "And the meaning of words; when they cease to function; when will it start worrying you?"
    4. Re:.NET Benchmarks by HuckleCom · · Score: 1

      And what I'm saying is, that I _know_ the systems are cheap, but the test method isn't identical of the method used in the test mentioned in the topic...

  38. Server vs. desktops, and other issues. by markv242 · · Score: 1
    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.

  39. Ask Microsoft by Anonymous Coward · · Score: 0

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

  40. Scale the Requests Down by mmurphy000 · · Score: 5, Insightful

    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.

    1. Re:Scale the Requests Down by chiph · · Score: 1

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

      If you add enough RAM to the DB server, MSSQL will supply most of your "lookup" type values (CustomerType, US State names, ProductClass, etc) from memory. Cost as shown in a DB trace then becomes 0ms.

      To original poster:
      Are any COM+/EnterpriseService transactions involved? Setting up a DTC transaction is hugely expensive -- most apps only need database-level transactioning. The only time you need a DTC transaction is when multiple resource managers are involved (both DB and MessageQueuing must commit together, MSSQL and DB2 must commit together, etc). The rest of the time using ADO.NET transactioning is sufficient.

      Chip H.

  41. The options are fairly simple... by jorange · · Score: 1

    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.

    =o)

    --
    --jake
  42. More detail please. by rafael_es_son · · Score: 1

    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.

    --
    HAD
    1. Re:More detail please. by Anonymous Coward · · Score: 0

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

    2. Re:More detail please. by rafael_es_son · · Score: 1

      Woops. Danke schön.

      --
      HAD
  43. mug, by Anonymous Coward · · Score: 0

    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.

  44. You gotta pay to play by mbullock · · Score: 0, Troll

    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.

  45. I know this is a troll, but I'll bite. by Anonymous Coward · · Score: 0

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

  46. I doubt your client by Just+Some+Guy · · Score: 1
    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?

    --
    Dewey, what part of this looks like authorities should be involved?
    1. Re:I doubt your client by janda · · Score: 1

      Two other thoughts:

      swordfish told them to use .net, asp, etc for whatever reason, and is now discovering the error of his ways.

      swordfish got into a contract where he was told "use .net and make it work or you won't get paid, or get the bonus, or whatever."

      --
      Karma: Food Fight (Mostly affected by Date Plate).
    2. Re:I doubt your client by MrGrendel · · Score: 1

      I don't think you understand how managers work. There are many people in this world who believe that logic is optional and, unfortunately, many managers fall into that category. This becomes more extreme as you approach the higher levels of an organization. These people will agree that your argument is logically correct and that your proposed course of action seems more reasonable. But they will continue to insist that their alternative is more correct even though they can't say why. They just know that whatever bizarre scheme they have come up with will work. It may sound like I'm joking or exagerating, but I have seen this happen countless times in real life. It is no mystery to me why so many large IT projects go down in flames.

  47. What are you planning on doing? by binaryDigit · · Score: 2, Insightful

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

  48. Cache till your eyes pop out by Percy_Blakeney · · Score: 1
    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.

  49. Small performance increase, but try it by harryk · · Score: 1

    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

    --
    think before you write, it'll save me moderator points.
    1. Re:Small performance increase, but try it by harryk · · Score: 1

      Use this link to check out the Cenatek solidstate drives, now upto 4gb!

      --
      think before you write, it'll save me moderator points.
  50. Probably, better question is how much do you need? by AndersDahlberg · · Score: 3, Insightful

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

  51. On any properly implemented system... by rcw-home · · Score: 5, Insightful
    ...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...

    1. Re:On any properly implemented system... by Anonymous Coward · · Score: 0
      whether .NET is a properly-implemented system is a separate debate

      I think that's really the op's question: can .NET on a $20k machine do 100 of anything at the same time? If no, then he's fucked. If maybe, then he needs to understand what makes the difference. If yes, independant of task, then .NET is the fabled Magic Pixie Dust(tm)

    2. Re:On any properly implemented system... by Anonymous Coward · · Score: 0

      How do I install the Microsoft .NET framework without installing Internet PissSlow Explorer 5.x? I want to run Livejournal.NET on my bitch box

  52. scaling: memory, serialization and web services by Anonymous Coward · · Score: 0

    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.

  53. Must be doing something wrong by Coward+the+Anonymous · · Score: 1

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

    --
    -- Jason
  54. Ackward Worries, Threading and Responsiveness by metacosm · · Score: 4, Informative
    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!

    --MetaCosm
    P.S. I hope you haven't over-engineered this tool as badly as it sounds like you have :)
    1. Re:Ackward Worries, Threading and Responsiveness by tshak · · Score: 1

      Although I strongly concur regarding the seperation of logical tiers, I still welcome C# stored procs. I aknowledge the fact that this tempts less experienced developers to put business or application logic in the stored proc, but that doesn't take away the fact that using SQL for certain operations just plain sucks. Having the proper string handling and control flow logic that C# has will be welcome for larger stored proc's. This is why Oracle introduced Java Stored Procedures. Everything that should be done on the DB can't alwaysbe done with SQL and must be done in the application which can require unncessesary round-trips.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    2. Re:Ackward Worries, Threading and Responsiveness by Dasein · · Score: 4, Informative

      I have to pick a nit on someone and you're in the wrong place at the wrong time.

      A lot of folks are lambasting this guy because he wants to do C# inside SQL Server. Most are saying, like you, that he just doesn't get it because you should separate the database from the application. That's true but it doesn't invalidate the need to have stored procedures (in any language you want be it PL/SQL or C#).

      The idea behind a stored procedure is that your application may actually scale better by putting some of the logic "close to the data" because there is less contention for machine resources other than CPU.

      For scalability, it's *generally* true that you want no processing to happen on the database because database servers are generally more expensive to scale. However, moving selected bits of logic to the database tier can result in huge scalability improvements.

      It's not one-size-fits-all and unless you have a good working understanding of the problem, which is impossible with the data given, it's probably not a good idea to yell "WHY THE HELL WOULD YOU WANT TO DO THAT" at someone. Give the guy the benefit of the doubt.

      If you think that stored procedure in C# (or any .NET language) isn't going to happen, you haven't been paying attention.

      --
      You are not a beautiful or unique snowflake -- but you could be if you got off your ass.
    3. Re:Ackward Worries, Threading and Responsiveness by way0utwest · · Score: 1

      As a SQL DBA (11+ years) I agree with lots of what's written above. If you're getting those scale numbers you need some development help.

      MS stuff has issues. T-SQL is limited in many places (string handling, error handling to name a few), but it is a MUCH better choice for triggers. If you need some crazy trigger solution, and very, very few people do, handle it differently. Lots of silly stuff that's put into trigger should be handled outside the trigger. BTW, I dislike triggers and rarely use them. I tend to find the "it always has to happen" stuff usually doesn't and someone wants an exception at some point. Write better stored procs or use the app logic to implement a decent transaction to fix this.

      From above
      1. Agree
      2. agree (despite the spelling errors)
      3. Ab-so-lutely
      4. not sure of the other load, but 200 / sec is some fine smelling horse droppings. I've got a dual 1.4GHz with IIS and I've gotten 12,000/sec from a couple hundred connections. Acutally around 170 on average, but I've seen this multiple times. Queries are indexed and well written and avg around 50ms of duration.
      5. 50k buys a lot of hardware
      6. can't speak to this.
      7. haven't tested enough
      8. fine smelling bull remnants
      9. ridiculous. Not thrilled with replication, but a DBA buddy has 1 db running multiple tables to over 250 databases. Works like a charm in real time. I'd love to know who your DBA is.

    4. Re:Ackward Worries, Threading and Responsiveness by TheLinuxNazi · · Score: 1

      You make so many bad products mentioned, I must draw the crucifix in the air to protect me.

      MSMQ... SQL Server...

      NO LINUX FOR YOU!!!

      not for 1 year

      you write me then I let you know

    5. Re:Ackward Worries, Threading and Responsiveness by metacosm · · Score: 1

      First of all -- I did not dismiss stored procs, on the other hand, I think they are vital and key, and I personally find great database developers possibly the most valuable assest to a team due to their ability to solve complex issues with simple well-estabilished method.

      The reason I don't want C# in the DB is three fold. #1. It seems to imply that DB development should be done by non-DB people -- I believe when working with a DB, the way stuff happens is different enough that the language should be different, I don't believe the skills that make a wonderful C# programmer make a good DB Coder (be it Tsql or something else). #2. I believe that it leans towards created a tightly bound system, which I find bad. #3. I don't believe C# is going to be the "best tool for the job" -- and if you code stored procs in C# -- you are limitted the people you can hire to fix it. (Most be a DBA who knows C#)

    6. Re:Ackward Worries, Threading and Responsiveness by metacosm · · Score: 1

      I generally agree, but I think simple extentions to the existing standard are far better than drop in replacements. If you are looking for a great tSQL developer and DBA, you might find one, if you are looking for a great tSQL developer who does C# -- you limit your pool.

      I agree that C# string handling would be nice, but I think the expense and other features would be a negative, and in my mind, the balance doesn't cross the 50% mark for C# yet -- but maybe someday it will. I made more points in response to another comment.

    7. Re:Ackward Worries, Threading and Responsiveness by metacosm · · Score: 1

      Wow, I gotta admit I am shocked with your response to #9 -- you have found that on SQL Server 7 and prior (*cough* 6.5 *cough*) the transaction replication works well? I have seen it bomb out dozens of times under heavy load.

      and #8 -- huh?

    8. Re:Ackward Worries, Threading and Responsiveness by Anonymous Coward · · Score: 0
      /. does support the ol tag:
      1. something
      2. something
      3. something else
      Numberred bullets just look weird...
    9. Re:Ackward Worries, Threading and Responsiveness by f00zbll · · Score: 1
      #3. I don't believe C# is going to be the "best tool for the job" -- and if you code stored procs in C# -- you are limitted the people you can hire to fix it. (Most be a DBA who knows C#)

      I would disagree with this. What if you want to build an event driven architecture and want the ability to send out event messages with triggers, because the size of your database is terabytes. Here is a hypothetical situation.

      1. transaction inserts several rows into table A
      2. trigger kicks off some stored procedures, which results in inserts into table B
      3. if data is inserted into Table B successfully, send a message to JMS server in a async fashion

      Now obviously, you could do this with your data abstraction layer like jdbc/ejb/ado.NET or what ever you use. But what happens if you need some pretty sophisticated filtering, which is dynamic? What is the better option and which will scale better? That's a hard question to answer, since it is specific to the problem you want to solve.

    10. Re:Ackward Worries, Threading and Responsiveness by handorf · · Score: 1

      Not to get tooo far into it, but on the subject of C# being a good tool for the job, the next version of SQL Server (Yukon) will allow you to write SPs in C#.

      Personally I find this distasteful for the same reasons you do. TSQL is a BEAUTIFUL set driven language. C# is a BEAUTIFUL object oriented/linear processing language. Those are not the same problem and should not be solved in the same way.

      Oh, and #1 has to be the truest thing I've seen in a long time. I have to deal with a data model right now created by a middle-tier programmer. Violence is the only solution I can think of.

      --
      -- IANAEG - I am not an elder god.
    11. Re:Ackward Worries, Threading and Responsiveness by Malcontent · · Score: 1

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

      While this is generally a good idea you have to look at it from his perspective. When MS was comparing java to .NET they rewrote the pet shop application using .NET. When they did that they rewrote major sections of the application as stored procedures. In fact they embedded a significant amount of business logic as stored procedures.

      In the Microsoft world this is a very accepted procedure. I think most MS development shops reoutinely load up the database with business logic.

      --

      War is necrophilia.

    12. Re:Ackward Worries, Threading and Responsiveness by spybreak · · Score: 2, Insightful

      MSQL already has a stored procedure language - TSQL, why not use that?

      In my experience the object relational style mappings provided by for example Java Stored Procedures in Oracle is a real performance killer. Why would C# Stored Procedures would be any different?

    13. Re:Ackward Worries, Threading and Responsiveness by Anonymous Coward · · Score: 0

      Sorry about #8. Was reading the original post. I agree with #8 above.

      #9 has to do with 2000. 7 is better than 65, which did suck.

  55. /, my asp.net server and i'll post perf results by GiorgioG · · Score: 1

    All that's there right now (as of yesterday) is a review of my new laptop (Compaq Presario X1000)
    http://www.sharpmatrix.com

    It's an asp.net 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
    512MB RAM
    40GB HDD

    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.

    1. Re:/, my asp.net server and i'll post perf results by Anonymous Coward · · Score: 0

      i killed it:) could you post some numbers?

      Server Error in '/' Application.
      Runtime Error
      Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

      Details: To enable the details of this specific error message to be viewable on remote machines, please create a tag within a "web.config" configuration file located in the root directory of the current web application. This tag should then have its "mode" attribute set to "Off".

      Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's configuration tag to point to a custom error page URL.

  56. MS Scale? by Red+Rocket · · Score: 1

    Does anything MS makes scale? This is the kind of reverse logic that goes into MS shops. I can't tell you how many times a consultant has come in to our shop and shown off an app that runs on Windows that our management fell for. Then, when we put it into production it falls on it's face because people actually attached to it and tried to use it in more than single digit numbers. Management (not wanting to admit it's mistake) digs the hole deeper by just shouting "Buy more servers!" Not considering the creeping O&M costs as we add more and more servers. Now we have over 200 Windows servers in the server room and we're a utility company!
    It's really frustrating if you're a NetWare admin. I had 1200 users on a single processor, 200 MHz 4.11 server a few years ago and it rocked. Scaled through the roof. Then when Windows exploded into the server room (we had to expand it several times) management looks around at all the Windows servers and says, "Hey, we have too many servers. Lets get rid of these NetWare boxes." Arrgh! The Microsoft Cult wins again! Resistance is futile.

    --
    - Hail to our fearless misleader! Fool speed ahead!
  57. This works... by Invisible+Now · · Score: 2, Informative
    Not to be contrary - and I'm certainly a big supporter of Open Source - but this is what works:

    Two cheap boxes, one running the server and the other SQL server, will outperform a single box by a wide margin. SQL Server's a pig and doesn't share well with the other children. Use back to back NICs to the connect the SQL box so there's no network overhead...

    Check the check boxes when you compile your .Net components. Threading models matter. And a stateless contiuously instantiated module is the only scalable solution. Check the stats on construct/destruct overhead.

    Use an n-tier architecture. Not just for the obvious reasons but because you can build faster data access including invisible data caching (as the app grows) and avoid the problems that are driving you down to only 20 or so tps.

    Buy more memory - Doh!

    --

    "Knowing everything doesn't help..."

  58. As always... It depends... by juancn · · Score: 1
    It's very hard to give a right answer without knowing the details of your project.

    Scalability and performance usually are a side effect of the design of your application. Even when you don't have the time or money to switch technologies, and you're stuck within certain environmental constraints (such as DB engine, runtime environment, language, OS, etc.), you might still be able to improve the performance of your apps by doing the right changes to your application.

    But there is no magic bullet, all I can tell you is that you must profile your applications, and find the 'hot spots', and design around them.

    Each app is different, but without metrics, there isn't much you will be able to do.

    I don't believe that .NET will impose a huge performance penalty per-se. Mostly it's just a VM plus associated services (analogous to Java, at least at the concept level).

    What will probably will have a huge impact on the performance of your app is how you handle persistent data. The database usually becomes a major bottleneck if you are sloppy with your table design and your queries.

    Your queries should be as simple as possible, and you should avoid relying on complex features of the database, such as:

    • Referential integrity (I know I might scandalize some of you ;)
    • Triggers
    • Selects on multiple tables
    • Views
    • Etc...
    All this operations place a huge burden on the DB, and usually don't scale well.

    Multi table queries involve set operations on potentially large indexes (won't scale well).

    Referential integrity forces the DB to check the constraints on every modification (it should only be used for debugging purposes), triggers have the same effect.

    On the other hand there are many other factors that will help you improve your performance, such as caches, reducing contention in shared data, avoiding data conversions, etc.

    But as I said before: It depends...

    Sorry for the rant ;^P

  59. MS SQL replication by duckworth · · Score: 3, Insightful

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

    We are running transactional replication on several large databases (6-14 GB) on a Media Metrix top 50 website with no problems. It needs to be set correctly (batch size, timeouts, etc) but it does work quite nicely. The DB machine is heavy hardware, but it it able to keep up with 12-15 front end webservers, all with applications hitting the DB.

    1. Re:MS SQL replication by Ececheira · · Score: 2, Informative

      6-14GB is a large database? We easyily get 15GB per day of new data in one system that I'm working with; the SAN datastore is in the 15TB range. Oh yeah, and it's all running on Windows 2000 Server with SQL Server just fine.

    2. Re:MS SQL replication by metacosm · · Score: 1

      What version of SQL Server? We had some real problems with 6.5.

    3. Re:MS SQL replication by Anonymous Coward · · Score: 0
      We are running transactional replication on several large databases (6-14 GB)

      Hate to say it, but that is small. For a typical web site, that is big, but for enterprise level stuff that's considered tiny. Each person has their own idea of what an large database is.

    4. Re:MS SQL replication by pmz · · Score: 1

      6-14GB is a large database?

      Actually, it is. 14GB is more data than most people can shake a stick at.

      ...it's all running on Windows 2000 Server with SQL Server just fine.

      Well, if all you are doing is a billion inserts a day, I'd hope any database would do just fine, given enough hardware throughput. Your system is more a test of your SAN architecture than the database running on it.

  60. Proper choices by Godeke · · Score: 3, Insightful

    I find it funny to watch the war between the "why are you suggesting open source crowd" and the "open source is the only way". I have built IIS/ASP/SQL server solutions and I have built Apache/PHP/PostgreSQL solutions. There is a place and time for both solutions.

    As an aside, I have to say that I have avoided .NET so far due to the heavy memory footprint it places on a system. Yes, VB.NET is faster than VBScript, but if you were using compiled COM objects in the first place, .NET costs more memory for a slower system. (I do think that .NET's ability to do in place object updates rocks, but I hope you have a devolpment server for bouncing and PLAN your updates...)

    But more to the point, your customers don't seem to have the budget to succeed in any domain. If you can't afford more than 20K for a machine and licenses, surely you can't afford to pay the programmers an adequate salary either. So does that mean open source? Heck no... you still have to pay the programmers! I don't think I have *ever* seen a project where the programmers were *cheaper* than the hardware.

    --
    Sig under construction since 1998.
  61. some advice by linuxislandsucks · · Score: 1, Insightful

    Google regularly handles way beyond your transaction requirements why not look back in slashdot for the coverage of how google does this?

    Some hints:

    1. Google builds its own servers...

    2. Google then chooses the best OS DB combination..

    --
    Don't Tread on OpenSource
    1. Re:some advice by halfelven · · Score: 1

      3. ...profit! :-)

      Now seriously:

      3. Google has thousands of servers (or tens of thousands) to spread the load upon. That doesn't sound like a 20k project to me.

    2. Re:some advice by Anonymous Coward · · Score: 1, Insightful

      Google doesn't do any real transactions. If your search request gets lost, it's not a big deal. They use an in-RAM database, for example.

      Conclusion: Google doesn't compare to most line of business applications at all and is therefore irrelvant.

  62. Idiots by Grishnakh · · Score: 0, Troll

    Your clients are cash-strapped, but insist on the most expensive solution imaginable? They deserve to go out of business.

    This is just like all those stupid people who work at Wal-Mart or some other low-paying job, but are convinced they deserve to live like they're rich, so they max out all their credit cards and end up either bankrupt or forever in debt to Mastercard.

    The fact that there's much better solutions that cost far less, and don't depend on MS's latest buzzword technology which may or may not be around in two years, makes these people even more stupid.

  63. You're asking the wrong question by bertnewton · · Score: 3, Insightful

    I am the network admin at a large .Net website (5+ million unique visitors each month) and we often handle hundreds of tens of simultaneous requests. The entire site runs on 6 webservers and two database servers that run at less than 50% capacity during peak times.

    If you can't scale above 100 connections on a 3GHz system then you are doing something wrong. Check your code, check your databases.

    Your question is about as useful as "I have a piece of string that is not long enough, what can I use instead that is longer?"

    1. Re:You're asking the wrong question by bertnewton · · Score: 1

      Whoopsie, I meant hundreds of thousands not hundreds of tens. Bit of difference there :)

    2. Re:You're asking the wrong question by Anonymous Coward · · Score: 0
      I am the network admin at a large .Net website (5+ million unique visitors each month)

      I guess everyone has a different idea of what large is. To me large is 5 million a day. 5 million a month is medium in my mind, but that's a good amount of traffic.

    3. Re:You're asking the wrong question by bertnewton · · Score: 1

      Fair enough, but we're based in Australia where that is considered large. We're pushing out 3-4 terabytes of data each week.

  64. They don't need a full time UNIX admin by Anonymous Coward · · Score: 0

    And certainly going with Windows doesn't absolve you of administering the site.

    Have you installed Red Hat recently? They provide you with one installer that will basically set you up completely too.

    You are exaggerating Linux's downside here.

  65. J.A.S. by fedor · · Score: 1

    .NET is just another solution (J.A.S.). A solution in terms of software constists of a paradigm, a bunch of managers yelling acronyms, The Mighty White Paper, success stories and a lot of advertising to make people think that everybody uses the new solution already. In fact, stuff like .NET is like a religion, so if you believe in it, it works.

    A couple of years ago, people started believing in Web-applications. People started exploiting -tags to place buttons on the right position instead of displaying a table, the -tag was invented and after the addition of the hidden--field, everything changed everything was web-enabled. Nobody seems to remember how fast distributed software was before those bloated web-stuff which are only hacks and trics with the browser.

    If .NET wins and people go to .NET-churches, yell Microsoft-slogans and spread the Mighty Word of Solution Integration And Results Leveraging .NET-Solution Deployment Broker Technology Enablement Integration, everything will be .NET. People will forget the ancient speed of simple XML-less TCP-communication and full-duplex interprocess communication. Then, .NET is scalable, because all other things are eliminated.... By the way, another alarm-word for religion like bloatware like .NET is the word 'professional'. Large scale solutions are professional, simple solutions (a web site built with PHP, instead of J2EE with Container Managed Persistency) are always called 'unprofessional' or 'stuff for hackers' and that's just because people think everything related to computers is very complex or has to be complex.

    Because of all those stupid Prophets of Solutions and Wizards of Enterprise Integration, .NET will be scalable and it will take over everything. Within 5 years people start their cars by passing an XML-document and telephone calls are encoded and packed in XML-CDATA-tags and sent over the line...just like 100 years aho where telephone was half-duplex. :)

    --
    :wq!
  66. Faster is not the only concern for many businesses by PseudoThink · · Score: 2, Interesting

    Unless you're an ISP, you've got to colocate all that equipment. At nontrivial $$$/rack unit, a bunch of low-density (performance) desktop machines will quickly eat up their performance cost gain in additional hosting fees. Plus you have to consider extra licenses. At $1200/Windows 2003 Standard license and $3500/SQL 2000 CPU license, buying the software for the additional machines substantially boosts their actual cost, unless you're using open source stuff. Of course, this thread isn't about open source, it's about Windows and .NET.

  67. Middleware said it could. by wjsteele · · Score: 2, Interesting

    I know... flame me. But ignore taking religious sides for a moment and just look at what their numbers could produce for under $37k. They were able to exceed all of your performance requirements including using dynamically generated SQL.

    hth,

    Bill

    --
    It's my Sig and you can't have it. Mine! All Mine!
  68. No alternatives. by FreshFunk510 · · Score: 1

    I'm not too experienced with the amount of power needed for the different loads of users out there but I imagine that if you're trying to support more users than your systems can handle, and you "can't" afford any more (or stronger) machines then you're simply in the wrong business (assuming the work has been architected decently). It just doesn't make sense to try to make the hardware accomodate your financial budgets plus operational requirements when it sometimes is impossible (or very very very difficult).

    --


    "Injustice anywhere is a threat to justice everywhere." - Martin Luther King, Jr.
  69. Yes, .Net can scale--IF... by John+Murdoch · · Score: 5, Informative

    Hi!

    Executive summary:
    Yes.

    Boring details:
    I'm goofing off, perusing SlashDot at the end of a dinner break. We're shipping a big project to a customer on Monday--the project is written in .Net (mostly C#, some components in VB), including Windows forms and ASP.Net web pages. (Why both? The project incorporates multiple applications for different kinds of users.) As part of pre-shipment testing we're in the midst of extensive testing, including load testing.

    The Windows applications communicate with the data tier using SOAP/XML, using synchronous messaging. Practically every message involves a database transaction with SQL Server 2000. Across a range of loads we are seeing round-trip message responses (from receipt of the inbound XML message to return from the web service) averaging less than 90 ms per message. That 90 ms average can be misleading--some of our messages involve extensive processing and/or lots of data. Some of the transaction work we're doing with SVG images involve SOAP messages with payloads greater than 1 MB, so the average gets dragged out.

    Based on our testing, we anticipate supporting hundreds of simultaneous users--in a near-real-time environment--from a single web service. As we scale out on larger projects we may need to scale the number of web servers (although IIS on Windows 2003 is supposed to be substantially faster--YMMV), but we won't need to scale the database. Using a similar messaging architecture for a different client I have a project supporting 400+ users on a single SQL Server.

    This is SlashDot, after all...
    Obviously you're going to get a lot of "why not use...?" posts, and I'm sure I'll get flamed for having the temerity to admit to using .Net. And recommending it. But you asked, so I'll answer: .Net is scaleable in terms of the final application, and .Net is scaleable in terms of the size of the development team that is involved. This project involves 19 developers (a total of 60+ individual projects in the nightly build) and we're able to manage the entire thing remarkably well. Developing web service applications with .Net is remarkably easy to do; developing sockets apps is unbelievably simpler than using WinInet.dll. And the web developers are extremely happy working in ASP.Net--I don't know where you heard that ASP.Net is slower than ASP, but that's simply not true. ASP.Net is significantly faster.

    With regard to other comments
    I'm the data/messaging architect on the project: I can speak to the comments about messaging, reflection, and SQL Server. As with any Microsoft-based development project, you have to think carefully, and think critically, about how to design your application. Microsoft will always give you a quick! easy! fun! way to rapidly produce a prototype. You have to dig deeper, and think harder, to produce a scaleable application. The quick! easy! fun! technology du jour is .Net Remoting. Quick to prototype, barks in production. Like OLE, it's a great way to make a Pentium 4 box emulate an original 8086 IBM PC. (Far smarter to manage communication with XML-based messaging. It just takes more coding.)

    That SQL Server doesn't permit triggers to be written in C#--so? Transact-SQL is suitable for database development. We could ask for more (such as integrating stored procedures and other database code into Visual SourceSafe). There is talk that the next version of SQL Server will permit coding in .Net languages--that'd be cool, but I'll wait and see.

    The single most compelling argument for .Net
    Mono--an Open Source implementation of the .Net Framework. You might look into this particularly for clients that are choking on server pricing--but you might also pay careful attention, because a robust Mono project will encourage/force Microsoft to compete on features and functionality, instead of a take-what-we-give-you mentality. That's a Very Good Thing.

    1. Re:Yes, .Net can scale--IF... by Anonymous Coward · · Score: 0
      Ahhhh.... all this Windows Talk...

      NO LINUX FOR YOU!!!!... for one year.

      Talk to me then and I decide again.

    2. Re:Yes, .Net can scale--IF... by Anonymous Coward · · Score: 0

      All fair enough. I have 3 comments:

      1. Mature Messaging solution. If MSMQ won't do what you want (MQ is pretty simple stuff, so it should work fine), you can use MQ Series, which nobody can say isn't a mature product.

      2. SQL Server doesn't do replication... well, FYI neither does Oracle. They say it does, but then you never, ever want to read what they say it does before you've signed that purchase order.

      3. XML - this really is slow. If you can dump it in favour of a binary format, you'll see your throughput increase. In our case, quite dramatically under load. MXL is brilliant for testing and development though.

    3. Re:Yes, .Net can scale--IF... by OeLeWaPpErKe · · Score: 1

      1 megabyte of data transfer, in 90 ms, that would be 0.09 seconds, right ? That would be a sustained transfer rate of 88 meg/sec.

      A machine receiving 88 megabit from the network, that's 11 megabytes, parsing it, and resending it somewhere else (that is, without counting the actual application doing something useful with the data). That means a grand total of 176 mbit of (sustained) bandwidth.

      This is about 1/3 of the maximum pci bandwidth (maximum would mean a continuous DMA transfer from a single device without any interrupt, without any looking at the memory being transferred, without a single waitstate). A real-time application has serious problems reaching this. You're not going to get anywhere near that in an application.

    4. Re:Yes, .Net can scale--IF... by Earlybird · · Score: 2, Insightful

      He only said that those 1-megabyte messages negatively affected the average, not that they could be passed with anything approaching "near-real-time" speed.

    5. Re:Yes, .Net can scale--IF... by Anonymous Coward · · Score: 0

      He said AVERAGE 90 ms. The big transactions were obviously above the average.

    6. Re:Yes, .Net can scale--IF... by jmauro · · Score: 1

      88 Mbits is about the max actual speed of swicthed 100 Mbits ethernet. If he's getting 88 Mbits off the card, he's not going to be able to get that much more.

    7. Re:Yes, .Net can scale--IF... by divide+overflow · · Score: 1



      1. Maximum theoretical PCI bus bandwidth over a 32-bit bus is 132 Mbytes/second or 1,056 Mbits/second.

      2. 22Mbytes/second (176Mbits/second) of sustained bandwidth is about 16.7% of the maximum theoretical 32-bit PCI bus bandwidth.

      3. There are both wider and faster PCI implementations. Some motherboards (such as those using the nVidia NForce2 architecture) connect to an onboard network interface via a special high speed transport that is significantly faster than a standard 32-bit PCI bus.

    8. Re:Yes, .Net can scale--IF... by IamTheRealMike · · Score: 1
      One thing that interests me is your assertion that OLE/DCOM is slower than XML based message passing.

      As I'm working on Wines implementation of DCOM at the moment, this is surprising - I always assumed that being a binary level protocol, with native code marshallers, would mean that is was significantly faster than something that involved lots of text processing. Why isn't that the case?

    9. Re:Yes, .Net can scale--IF... by John+Murdoch · · Score: 1

      Hi!

      1 megabyte of data transfer, in 90 ms, that would be 0.09 seconds, right ? That would be a sustained transfer rate of 88 meg/sec.

      Thanks for your comment. You're right--if we were supporting 400 simultaneous users manipulating 1 MB SVG files we'd be toast. But please note that I said we're averaging 90 ms per message. We don't get anywhere near 90 ms with the really chubby SVG documents (and data transfer is only half the problem: they take eons to load and manipulate). The SVG messages are the extreme--the vast bulk of the traffic is much simpler string retrieval and other simple data requests.

    10. Re:Yes, .Net can scale--IF... by julesh · · Score: 1

      One thing that interests me is your assertion that OLE/DCOM is slower than XML based message passing.

      I don't think he actually said that. Looking through the message again, he states that .NET Remoting (something I've never looked at in detail, I assume its somewhat like Java RMI?) is slower than rolling your own XML based interface, and then compares it with OLE (the implication that I infer being that rolling your own system with similar features to OLE is likely to produce something faster than OLE itself).

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

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

    --
    -I like my women like I like my tea: green-
    1. Re:oxymoronic by Anonymous Coward · · Score: 0

      Anyone who's trying to use .NET to scale on a multiproc system should consider Websphere

  71. You have tons of money ! by Anonymous Coward · · Score: 0

    The most expensive machine that my workplace has purchased in the last year cost $350. That was because it had a DVD burner. I buy all our monitors at Goodwill Computer Works. I'm typing this on a machine I bought for $19 at Discount Electronics up on Anderson. (Of course most of my X windows are just displayed here from other places.) And of course we run only linux, except for the sys admin who makes a big deal about BSD but will probably be fired because NFS won't stay up ( Hi Robert ! When is it gonna work you fag ? )

  72. maybe .net is a dumb idea? by pigscanfly.ca · · Score: 1

    You seem to be trying to sell to the wrong market . Go for open source software with low licensing fees , that runs faster . I have personally seen 233 mhz boxes with 128mb ram handle slightly bellow those levels of transactions ; and those boxes are a lot less than 50k or whatever your budget is ($50~75) . Honestly just use linux or bsd . Plus come on this is slashdot you should already know asking for help with a microsoft solution will result in people telling you to use linux or bsd.

  73. bad analogy. by twitter · · Score: 1, Insightful

    It's more like people who don't know what they are talking about have purchased equipment that could do the job, if only they would not insist on ASP and other Microshit. It's more like someone bought a nice deisel pickup truck to haul manure, but isists on using model airplane fuel to make it go. Our hero is asking, "how can I make this alcohol based fluid act like deisel? I know that it would be silly to try to move all that manure with 20,000 model airplanes and my client really does not have that kind of money. Someone tell me it's going to work." It's funny to read astrotufers like this, recomend a fleet of 20,000 model airplanes. It'll be fast!

    --

    Friends don't help friends install M$ junk.

    1. Re:bad analogy. by Monkelectric · · Score: 1
      purchased equipment that could do the job, if only they

      I think you hit the nail on the head here :) The reason the flipping machine is so important is he put the cart before the horse and purchased it already. Now he's gotta dig himself out of a hole and steve balmers ass is holding him down :)

      --

      Religion is a gateway psychosis. -- Dave Foley

  74. drop MSMQ, use MQSeries by badfish2 · · Score: 1

    if you find MSMQ isn't adequate to handle the high messaging volume, try using MQSeries either in a standalone or cluster environment.

    --
    "On the Internet, nobody knows you're a dog!" - a dog
  75. Ask Microsoft!? by gosand · · Score: 1

    Hey, why don't you ask Microsoft? It is their frigging product.

    --

    My beliefs do not require that you agree with them.

  76. Random Comments by smccto · · Score: 1

    1. (Do you mean 100 concurrent "users" or "hits"? There's a big difference! Let's assume you know what you're talking about, as much as we can pretend anyway.) While 100 concurrent users may not be a huge load, it's not exactly a slugish business day either. I would ask this: if your clients are getting 100 concurrent users then they're getting a respectable amount of traffic and I would hope that translates into cash flow... so why the hell can't they afford the $20K?

    2. You're very vague. Apparently, this isn't just a Web site if you're also serving SOAP requests. Yes, any XML-based protocol is going to be slower simply because of bandwidth.

    3. Although SQL Server doesn't support C# triggers, its stored procedure mechanisms are quite efficient.

    4. I think you need to find a new SQL Server DBA if he's (or she's) providing poor performance numbers as you suggest and feeding you crap about real-time replication. I've done r/t repl across multiple servers, across multiple continents, using high bandwidth with no problem.

    5. Why would you want to convert an ASP/HTML page to a WebService page? If you convert them to ASP.NET pages instead, you'll see a higher performance. Use WebServices only where they make sense (to satisfy requests from remote software requests - not Internet browsers with humans behind them.)

    6. Why are you using "quite a bit of reflection"? If you don't know what your code looks like, maybe you should open up an editor some time.

  77. it doesnt get more obvious then this: by ainsoph · · Score: 0, Troll


    Just use Linux, close your eyes and pretend its .NET. You'll save a bundle.

  78. Load-balance cheap servers! by Malc · · Score: 1

    This is Windows on Intel boxes. You don't run one big server. Get a bunch of $800 servers and a loadbalancer. I'm not sure how much we paid for our Radware loadbalancer, but our Netscreen firewall was $10K. Lots of servers scale well, and it's expandable in the future. If you need a clustered (i.e. failover capable) DB server, expect to spend minimum $15K for a couple of cluster capable Dell PowerEdges. More for Win2K AS and SQL Server 2K Enterprise ed. There's a HOWTO somewhere for Linux cluster (High Availability Linux) if you want to use MySQL or something free on the backend (why when you're running .Net?)... how much is your time worth?

    You must have redundant servers. As they're Windows boxes, expect regular scheduled downtime. You will need to patch (and reboot) frequently. As they're Intel boxes, don't expect much in the way of hardware redundancy and hot swappability for a low price.

  79. Dunno about .NET by Hackysack · · Score: 2, Informative

    ...but my FreeBSD/Apache/mod_perl/PgSQL boxen are currently serving 189 Req/Sec off a realtime data driven application.

    Hardware: $10,000 USD (4x Dell servers)
    Software: $0 USD
    Bandwidth: $6,000/mo USD
    Uptime >99.99%

    64% CPU use on the single most loaded box

    Sure, .NET can do that. on the same hardware? dunno. For the same cost? Definitely not.

    ~a

  80. What?! by SlashChick · · Score: 3, Interesting

    "If one of the servers has a problem - I can remotly fix it over my cell phone connection, and I don't have to charge them travel time. If it was Windows - I'd have to drive there."

    What?! You've never heard of any of the following:

    -- Terminal Services
    -- VNC for Windows
    -- Remote Desktop commercial programs

    I am sorry, but that is just on crack (and so is whoever modded you "Insightful".) In fact, with Terminal Services and the rdesktop client program, you can even administer a Windows desktop or server from a Linux or Mac box. Yes, you can do remote reboots, remote software patches, remote software upgrades, and pretty much everything else.

    There are lots of valid reasons for using Linux/BSD/UNIX, but being ignorant about Windows certainly doesn't help your case.

    1. Re:What?! by zulux · · Score: 5, Interesting


      What?! You've never heard of any of the following: -- Terminal Services -- VNC for Windows -- Remote Desktop commercial programs


      Yes I use them all the time, but when I'm on the road I have to manage servers over my CELL PHONE coneection. Window Termmial Services is unsuable in that situation.

      Here's an example:

      With UNIX I'm in Ireland (I'm usually based in the US) and I get a call "We just got a new user, could you add them"

      I whip out my Ericcson 68i and Sharp Zaurus - and ssh into the server and run a script to add the user.

      With Windows: I have to find a "Internet Cafe" pay 10 Euros, and convince the owner of the cafe to let me install VNC. Then I get to S-L-O-W-L-Y use the gui to add the user.

      It get's even better - I can remotly manage my servers in the absolute wilderness with an Iridium satelite phone and a Zaurus with a serial cable. At 9600 baud, I can do it with UNIX - but Windows, forget about it.

      --

      Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

    2. Re:What?! by zulux · · Score: 1

      I am sorry, but that is just on crack (and so is whoever modded you "Insightful".)

      You have more patience than me, thinking you can use Terminal Services over a Cell Phone with a PDA that has a 320x200 display.

      My time is more valuable than that.

      I use the best too for the job, and for remote administration MS Windows is not the right tool.

      --

      Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

    3. Re:What?! by Anonymous Coward · · Score: 0

      How much did you pay for the Cell Phone and Zaurus? Plus the web access for the phone. It would not work in Canada that is for sure. Nice try.

    4. Re:What?! by Anonymous Coward · · Score: 0

      Why can't you just use Activestate Perl to hit a few Win32 API calls to do the job? Connect to the machine, whack the user database around with some custom programming, and then you're done.

      I have a real problem with both Microsoft and Perl, but that's how I'd handle it if I was forced to run things on NT. Just because the stock interface sucks doesn't mean you have to keep it.

    5. Re:What?! by GooberToo · · Score: 1

      Wow, this must be /. got a clue day. I can't remember the last time I've read comments by so many people on so many different topics that actually make sense!

      Congrats!

      Why is it so hard for people to finally grasp that Windows is a crappy platform and is no where near as flexible and powerful as Unix/Linux is. Remote support is one area that Unix/Linux has ALWAYS excelled at.

      Now then, don't get me wrong, I've certainly used VNC on a number of platforms (Win32, Linux, and even palm), but frankly, it stinks compared to simply being able to do something via ssh, or worst case, telnet. Both are light weight and as powerful as the underlying OS. With Windows, command line is an afterthought and downright painful. In fact, some types of remote administration can only be done via a heavy weight GUI interface. Even the lightest of remote display technology is still very heavy compared to the bliss that is ssh or telnet.

      Believe it or not, a lot of remote support should not only be able to be done via something as simple as a palm, but does happen on a regular basis.

      Congrats zulux, +1 for /. clue day!

    6. Re:What?! by zulux · · Score: 1

      How much did you pay for the Cell Phone and Zaurus? Plus the web access for the phone. It would not work in Canada that is for sure. Nice try.

      $300 for the phone, $800 for the Zaurus SL-C700. Cheap stuff.

      Canada has great GPRS / GSM coverage. In fact, I wish has a Canada Fido account, somthing like $20 for all the GPRS you can use.

      If GPRS is not available, the're always Iridum for $1.50 a minute. Or a 56K compact flash card for the Zaurus.

      Like I said, cheap stuff.

      --

      Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

    7. Re:What?! by pixelgeek · · Score: 1
      I can remotly manage my servers in the absolute wilderness with an Iridium satelite phone and a Zaurus with a serial cable.

      Which truly sounds like the average day for a typical UNIX administrator. I know I often find it necessary to administer a remote system from a bleak mountaintop in Burma. Happens all the time.

      Its an interesting example but its so far divorced from the average admin's life that it makes one wonder what the point actually was.

    8. Re:What?! by SonicBurst · · Score: 1

      Almost everything that you can do in the gui with windows you can do from the command line. The difference here is that since most people ONLY use the gui for administration, they don't know how to do it from the command line. Windows does have a built in telnet server (and you can secure telnet, contrary to popular belief) for command line access. If you don't like that, install an ssh server. I believe there are free windows ssh servers (cygwin comes to mind for some reason). Also, FWIW, I use standard terminal services over my cell phone connection (14.4 connection), and it's just fine. Citrix metaframe works even better at 14.4.

      --

      Geek used to be a four letter word. Now it's a six-figure one.
    9. Re:What?! by zulux · · Score: 2, Insightful

      Why can't you just use Activestate Perl to hit a few Win32 API calls to do the job? Connect to the machine, whack the user database around with some custom programming, and then you're done.


      Great idea, if you have to use NT.

      But if I did that for my smaler clients - I'd have to charge them an arm and a leg for each Windows Server I deployed.

      The would not like an invoice that read like this:

      Windows Solution
      Windows 2003 Server 10 CAL - $1000
      Install Windows 2003 - $300
      Make Windows Behave Like Unix - $3000

      Instead, they like this:

      FreeBSD Solution
      Install FreeBSD - $300
      Donation to FreeBSD.org - $300

      So for my smaller customers, it's not an option that makes economic sense.

      There's nothing wrong with Windows, but remote managment is VERY difficult.

      This is the important bit

      In addition, UNIX has a rich history of remote managment - there a whole books that can help me. But for Windows - wheres the "Remote Windows Management Using Activestate Perl and a few Win32 Calls for Dummies?"

      --

      Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

    10. Re:What?! by Anonymous Coward · · Score: 0

      In case you haven't realised by now, SlashChick is a fucking idiot. Clearly you had good reason to say what you did, but morons like her jump all over you and say the obvious thing ("Use Terminal Server! Whine, whine.")

      Reading posts like yours makes me happy - you obviously know your job.

    11. Re:What?! by Anonymous Coward · · Score: 0

      Remote desktop software over a cell modem? Are you fucking stupid?!
      Stop accusing people of being on crack until you get off it yourself.

    12. Re:What?! by Anonymous Coward · · Score: 0

      /. got a clue day? Fuck no.

      The guy asks a application design question, hundreds of idiotic Power lUsers fanbois on both sides of the fence crawl out and make asses of themselves.

      More like /. Is All Lamer Sysadmin Wannabes day.

    13. Re:What?! by Anonymous Coward · · Score: 0

      (and you can secure telnet, contrary to popular belief)

      WRONG. If it's not encrypted, it isn't secure; even on a LAN, let alone the Internet. If you're going to encrypt it, you may as well use SSH.

      Also, FWIW, I use standard terminal services over my cell phone connection (14.4 connection), and it's just fine. Citrix metaframe works even better at 14.4.

      More bullshit, troll.
      Unlike you, I actually have experience using both software packages (and RemotePC) on various connections from 9600baud cell to gigabit LAN. They're both completely unusable at 28.8kbps and below. They're a little more usable at 33.6-56k, but still painfully slow.

    14. Re:What?! by Anonymous Coward · · Score: 0

      Yes, you can do remote reboots, remote software patches, remote software upgrades, and pretty much everything else.
      Huh??? What you are saying makes sense somewhat but remote rebooting a machine? How in the hell can/do you make it to remember that you were connected at port X when the OS resets most everything when you reboot.

      How do you fix a problem remotely when the computer does not reboot correctly?

      I may be an idiot but when you "reboot" a wintel machine about the only thing you're sure of is that is the "recommended" procedure for (95%) of all problems with windows.

    15. Re:What?! by Anonymous Coward · · Score: 0

      Yeah, talk about being ignorant... Jesus.

    16. Re:What?! by weave · · Score: 1
      It's far easier to log into a crippled unix system, have a look around and hopfully fix it, than a crippled windows system. Once that kernel-gui running thing in windows develops problems, you can just forget it. Reboot if you can, else just power cycle and pray it doesn't happen again.

      This goes for remote or local.

    17. Re:What?! by Anonymous Coward · · Score: 0

      Ever been on crack?

    18. Re:What?! by Guido+von+Guido · · Score: 1
      So you're never on call?

      I mean, I've had to administer systems in my car and at the beach. It ain't Burma, but it beats having to drive into the office, doesn't it?

    19. Re:What?! by bestguruever · · Score: 1

      Administering from your car?????

      It may be hard to crash linux, but its not terribly difficult to crash your car.

      just a thought

      --
      if you think this is bad, you should have seen my last sig
    20. Re:What?! by zulux · · Score: 1

      Which truly sounds like the average day for a typical UNIX administrator. I know I often find it necessary to administer a remote system from a bleak mountaintop in Burma. Happens all the time.

      We'll it happend to me last week - I had my Iridium phone and Zaurus and I went hiking in the woods for 3 days.

      Every three hours or so, I fired up the phone to see if any pages came in.

      If there was an emergency, I could have (and have done repedidly) SSHed and fixed most of them.

      It's a bitch 'cause the phone and Zaurus add four pounds to the back-pack and I'm an ultralight backpacker. I'd bring the Iridiul along anyways just for safty.

      I also don't like being 'tethered' to civilistion - but with this I can escape to the woods and still be resposible.

      --

      Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

    21. Re:What?! by Anonymous Coward · · Score: 0

      I whip out my Ericcson 68i and Sharp Zaurus - and ssh into the server and run a script to add the user.

      Well, buy a PocketPC instead of a Sharp Zaurus and you would be able to VNC into the Windows machine with just your cell phone and PDA.

      Yeah, domestic cars suck because I can't work on them at all with all of these metric tools I bought.

    22. Re:What?! by SonicBurst · · Score: 1

      Troll, huh...so who's posting AC? And yeah, encryption is exactly what I'm thinking...I'm sure you heard of things like ipsec or any kind of encrypted vpn, right? RemotePC and VNC suck over any dial-up...rdp and metaframe work much better, especially if you know how to configure them...I'm sure you don't. Now why don't you go back into your corner and jerk off to your ascii porn, mmmkay?

      --

      Geek used to be a four letter word. Now it's a six-figure one.
    23. Re:What?! by symbolset · · Score: 1
      You said:
      What?! You've never heard of any of the following: -- Terminal Services -- VNC for Windows -- Remote Desktop commercial programs I am sorry, but that is just on crack (and so is whoever modded you "Insightful".) In fact, with Terminal Services and the rdesktop client program, you can even administer a Windows desktop or server from a Linux or Mac box. Yes, you can do remote reboots, remote software patches, remote software upgrades, and pretty much everything else.
      You forget that this is /. Most of these people don't need even that much software to remotely "administer" a Windows box. Or the password either for that matter.
      --
      Help stamp out iliturcy.
    24. Re:What?! by Dynedain · · Score: 1

      Guess what? There's a VNC client for my cellphone (Samsung I330)

      --
      I'm out of my mind right now, but feel free to leave a message.....
    25. Re:What?! by AnotherShep · · Score: 1

      wheres the "Remote Windows Management Using Activestate Perl and a few Win32 Calls for Dummies?"

      Here..
      CPAN is your friend.

    26. Re:What?! by Malc · · Score: 1

      WTF are you using VNC for? It's about the slowest and worst performing solution. pcAnywhere is faster, although it requires Windows only clients. RDP is by far the fastest and more than usable on a dialup quality connection. Check out rdesktop.org (or whatever it's called)... there's a Terminal Services client for UNIX, although I don't think it works with RDP 5.1 yet (Win2K is at RDP 5.0). Anyway, the point is moot: as others have pointed out, you can do a lot on the command line these days with Winders.

    27. Re:What?! by mtstump · · Score: 1

      install cygwin and do admin over ssh. most administration tasks can be done from console. With a bash shell, ssh, some basic unix utils, and your favorite scripting language (python) admining a windows box isn't half bad.

    28. Re:What?! by Malc · · Score: 1

      Huh? Remote admin of windows is hard? You're kidding me right? I live in Toronto and look after servers in San Jose. That's over 4,000 km away. I've never even seen the servers, and I've been looking after them for several years. I have to admit, it would harder without network addressable power bars, but not impossible.

    29. Re:What?! by Anonymous Coward · · Score: 0

      What about using this plus SSH ?

    30. Re:What?! by arose · · Score: 1

      So why would I want a windows machine again?

      --
      Analogies don't equal equalities, they are merely somewhat analogous.
    31. Re:What?! by jeremyp · · Score: 1

      Isn't it time your company trained somebody else to manage the servers when you're not around?

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    32. Re:What?! by Anonymous Coward · · Score: 0

      That's funny. You are totally guilty of what you accusing. With windows you can write VB scripts and add users all day long through Telnet connections. Folks, let's admit one thing, the GUIs in windows are on top of normal code APIs - any thing that can be done in a Windows GUI can be done command line and if the *nix bigots werent so damn lazy they would learn how and stop saying how their systems are superior for that reason, there are much better arguments.
      In your particular case you have just told us all how stupid your company is. They let you go on vacation with no way to adminsiter their system, either your company is too small and insigifcant to count or (more likely) you just made up that scenario and it never has or will happen.
      I can do remote admin on a Windows system as easy, or easier than any *nix system. If you can't it is because you don't know what you are doing.

    33. Re:What?! by knghtrider · · Score: 1

      There are options for remote management of Windows servers via WAP devices. One of these is a product called Serverphone. There are other solutions available as well, and I seem to recall an article some months ago in a trade mag (possibly Windows & .NET magazine) about using a WindowsCE (e.g. Pocket PC) device and (I believe) Terminal Services Client.

      The point is this: There are tools available to remotely manage a Windows network, but sometimes your physical presence is more reassuring than the fact that you don't charge travel time. I don't charge travel expenses to my clients who purchase my top contract services. But then..my clients are all less than an hour from my office. I purposely limited myself that way to prevent extended travel. There are a LOT of small businesses that I service.

      --
      In America today you can murder land for private profit. You can leave the corpse for all to see, and nobody calls the c
    34. Re:What?! by bigman2003 · · Score: 1

      OR-

      You could pick up a Pocket PC (Running what used to be called Windows CE, now they have changed it to Windows Mobile 2003) and run Terminal Services from there.

      Works great. Top end Pocket PC is about $500, and that includes a phone. It is also a very good PDA.

      The important thing to understand, is that Microsoft wants you to use their product line all the way up and down. If you do, things integrate very well. They have done a great job with that, but that is also what many people are most against. But going half-way, and not trying to use the best means to connect, cripples you.

      So, if you understand the tools that are available, and you are willing to use them as prescribed, you may find that a very good answer is out there. If you spend time looking for reasons it WON'T work, you will probably find those instead.

      --
      No reason to lie.
    35. Re:What?! by Anonymous Coward · · Score: 0

      So install OpenSSH on your Windows box and run and adduser script there.

    36. Re:What?! by afidel · · Score: 1

      That's funny, I add user in windows using ssh and the command line as well. It's called the resource kit and a bit of scripting, any decent consultant would figure this out pretty quickly. Also terminal services is usable on a 28.8 connection, not sure about 9600, but most cellular networks will get you to 28.8.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
  81. The Emperor has no clothes by Gothmolly · · Score: 1

    Look at how MS does business: Get the mindshare. The adage "Nobody ever got fired for buying Microsoft" is a reality. People are going to watch the commercials, drink the Koolaid, and belly up to the bar and buy it. And it's going to suck. Of course it will sick, it's a 1.0 release. But after pouring vast quantities of cash into Project X, based largely on past successes and current license-lockins, nobody can make the call to yank the plug. It's tantamount to saying "All along, it was bad". Look at Legato - this product hasn't worked properly in Enterprise environments... ever, but people still buy it. Nobody can afford the intra-company political suicide it would be to say "this MS product sucks, we bought it - hook, line and sinker, and it was a waste".
    Meanwhile, the extensive field testing will give MS a chance to bob, weave, re-engineer the product, so that it sucks less in version 2. (Windows for Workgroups 3.11 anyone?).

    --
    I want to delete my account but Slashdot doesn't allow it.
    1. Re:The Emperor has no clothes by The+Bungi · · Score: 1

      What does your rant have to do with the question at hand?

    2. Re:The Emperor has no clothes by jcr · · Score: 1

      The adage "Nobody ever got fired for buying Microsoft" is a reality

      No, they didn't get fired, they just lost their jobs when the company folded.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
  82. Maybe ... by dominic.laporte · · Score: 1

    ... this can help

  83. Sounds like you've already made your mind up by chicogeek · · Score: 1

    With regard to your list of shortcomings: 1. incorrect, I've used MSMQ in a situation where thousands of messages were processed every minute. You have to use non-transactional queues and make the messages non-recoverable, which keeps them from hitting disk. But with these settings I never had a problem with messages being lost, etc. 2. If SOAP is too heavy weight, then fine, use your own custom messaging format. And personally, I doubt it's SOAP that is causing the problem but rather it's what you're doing once the message is received. 3. SQL Server does not support C# for triggers now, but Yukon will. It will be nice when it does (SQL is not a general purpose language and writing complex SPs is a pain), but you need to provide more info regarding why this is a problem for you. 4. You state that you need to support 100+ users (how many does the + add?), so 200 concurrent database requests should work for you, right? 5. 30-50k leaves you with a lot of powerful iron! Check out Dell and I think you'll have no problems. Of course, Advanced Server for load balancing is not cheap...perhaps another appliance? 6. Uh, generating a lot of dynamic code or using a great deal of reflection is not the way you write high performance applications. It doesn't suprise me that you're finding this to be the case. Wrong tool for the job. 7. You can't compare an HTML page and a web service. They're apples and oranges. And let me tell you, using an ASP as an endpoint to process a post request will in no way out perform a web service. 8. Bullshit. Either your schema is the problem or you're writing bad queries. Sorry. 9. Uh, gee, yes real-time replication is expensive esp. when you have a lot of writes. That's just the way it is. Perhaps you can refactor in some way. I think we need more information on the type of app your developing before we can offer you a solution, but I don't buy into your bulleted list.

  84. Here, here. by Bun · · Score: 1

    You're going to get flamed/modded down for this and I just wanted to commend you for doing something to try and keep the discussion on topic.

    --
    "Anyone that has ever gotten an idea based on any of my work and done something better with it-good for you."--J.Carmack
    1. Re:Here, here. by Anonymous Coward · · Score: 0

      it's "hear, hear"

  85. Not long enough. by Eevee · · Score: 1

    You'll find that those ITs haven't been there from VAX times. Why? Because DEC had clustering technology working back in, well, the day of the VAX. Throw three 8800s, a couple of HSC-50s and associated racks of disks, and a star coupler together...instant VAXcluster. It's those young whippersnappers that only know Intel boxes who need to be introduced to clustering.

    And yes, I'm scared that I remember all that.

    1. Re:Not long enough. by justsomebody · · Score: 1

      Like first if I offended you (your answer souded like that), I'm sorry.

      Would be nice to throw them together as you said, but most of the companies bought one to it's money limits and ITs were learning on them (those times were real starts of comuting in our country) to have them up'n'running not to be tuned to it's limits.

      btw. I agree with your post, don't take as offence. But capable administrators in public sectors are very rare and there are limits to money spending on computers just as original poster said.

      And yes, I'm scared that I remember all that. :)) was that before or after Jesus was crucified???

      Very rare like in: most of better ones have their own company just because they vere not satisfied with salary in public sector, Don't know for other coutries, here it is like that

      --
      Signature Pro version 1.13.2-3 release 83.5 beta3try7 after-breakfast edition
    2. Re:Not long enough. by justsomebody · · Score: 1

      (those times were real starts of comuting in our country)

      computing, I'd better take some type'n'eat lessons. Even so is my english broken enough

      --
      Signature Pro version 1.13.2-3 release 83.5 beta3try7 after-breakfast edition
  86. Not a NO-programming site by SoSueMe · · Score: 1

    ...edit your preferences and remove the "Ask Slashdot" articles from your homepage!

    Or they can just go away.

  87. Yes, it can by targo · · Score: 1

    I am working on a .Net/SQL based web application that is supposed to support hundreds of thousands of users and hundreds of requests per second while delivering dynamic, personalized content (sort of like Slashdot does). And btw, it does use reflection, you just have to be smart about it. It requires some careful design but is definitely doable.
    However, the poster's problems don't seem to be so much with .Net as with SOAP and SQL. Also, he does not specify what the exact bottlenecks are, does he run out of memory? Disk I/O? Hits some built in limit in SQL or anywhere else?
    But of course, if he identified what the particular problem was then he could perhaps just fix it easily and couldn't post it on Slashdot ;)

  88. I got something that can scale good.......... by Anonymous Coward · · Score: 0

    my penis!! ^_^_^

  89. You need to find a new DBA by reverendslappy · · Score: 1

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

    Not to mention that's about the least detailed and unprofessional analysis that I've heard this week, but also his characterization isn't accurate. Transactional replication (that's the actual term... if you/he have expert knowledge of the platform you know that) works quite well. In my environment we use it in a number of applications, and though it's not as robust as, say, Oracle, it still does the job more than satisfactorily. I'd say a good first step in scaling your apps is to find a new DBA.

  90. Would it be possible ? by BlueTrin · · Score: 1

    Are you by any chance a MCSE certified engineer ?

    --
    Don't you know it is now both immoral and criminal to think beyond the next quarterly report?
    1. Re:Would it be possible ? by dubious9 · · Score: 1

      From the department of redundancy department:

      Are you by any chance a Microsoft certified systems engineer certified engineer?

      Kinda like "K.I.S.S. stupid" or "GUI interface" or " FSB bus" or "The XML Language" or "ROM memory" right? But a MCSECE?, I don't think I could've thought of a better one.

      --
      Why, o why must the sky fall when I've learned to fly?
    2. Re:Would it be possible ? by BlueTrin · · Score: 1

      So what ? As you said, when such acronyms are so widely used that they become themselves words, shouldn't they be considered as a part of language evolution.

      I thought about the redundancy in MSCE when I wrote the reply, but as MSCE is widely used as a label, I've chosen to type 'MSCE certified engineer', referring as an engineer who was certified by passing the MSCE tests. Seems like you were one of the few who cannot accept MSCE, XML, GUI be used as words.

      Anyway, it's kinda dubious =), but I can hardly imagine, that someone would argue over this fact apart if he is extremely closed-minded or apart if he was trolling

      --
      Don't you know it is now both immoral and criminal to think beyond the next quarterly report?
  91. Not sure how to help you by mingot · · Score: 1

    currently there isn't a mature messaging server and MSMQ is not appropriate for high load messaging platform.

    Can't help you there.

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

    Is it SOAP itself that's too heavy weight or Microsofts implementation? First thing I would suggest doing is doing some benchmarks between different implementations. You may find out that SOAP is the wrong way to go and decide to go with a different technology. Also, do you need the openness of SOAP or could you do with remoting which will net you immediate performance gains?

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

    I can see how this would be a handy feature. You are right, though, it does not exist. Not sure how this is an issue of scalabilty, though.

    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, you always have the option of using a different database. There are managed providers for Oracle if you decide to go that route.

    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 think this is the same question as the previous. "It's not scaling well enough on my hardware and I can't afford something more expensive".

    I've been been running benchmarks with dynamic code that does quite a bit of reflection and the performance doesn't impress me.

    Don't do that, then. Before Java and C# programmers did just fine without 'reflection'. If its performance is not what you need code an alternative.

    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

    What's a static ASP/HTML page? ASP by it's very nature is not a static page. The ASP.NET page you are comparing it to is compiled and if they are doing the same work then ASP.NET will generally outperform it's older brother. Do you have a small testcase you could post which illustrates these benchmarks?

    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.

    Again, look for an alternative DB if you can't wring the performace out of SQL server that you need. Or rethink your implementation.

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

    Different database?

    It was a good try, but I don't think you really gave anyone enough information to solve your problems. Most of them seem to be related to SQL server, so I'm not sure why the blame is getting placed on .NET (.NET as in the CLR, and the framework). My only real suggestion would be to hire a sharp developer who has experience doing nasty things to SQL server if you are going to stick with it.

  92. Two kinds of crazy: by DrCode · · Score: 1

    At home, I've one Linux box and one Windows box. Here are my experiences with a USB scanner:

    Windows: NICE install. Stick in CD, wait a little while, and we're ready to go with a beautiful GUI. BUT, after a few days, I start noticing the problems. There seems to be no way to save my preferred settings; so everytime I start the scanning program, I have to reset the options by hand. And every now and then when I'm doing something completely unrelated, the scanner starts scanning on its own! In addition, if I try to do anything else while it's scanning, (good old Windows multitasking), the scan fails, and I usually have to reboot.

    Linux: Not so easy. I had to learn about USB, recompile my kernel, install and setup the 'hotplug' scripts, and do a fair amount of reading. But now it works great. Of course, SANE remembers my settings, plus it provides a lot more features than the (admittedly prettier) software that ran on Windows. One time when a scan seemed to hang, I just killed xsane and restarted it.

    So... if I were a business, I'd probably have to hire someone to set up the scanner in Linux. Assuming that person has done it before, it's probably about an hour's work. With Windows, I could do it myself, but would then spend the rest of the scanner's life tearing out what little hair I have left.

  93. Benchmarking for dummy's by Anonymous Coward · · Score: 1, Interesting

    Want to know what .net can do on what hardware, check out this famous report for about the most complete publically available benchmark results for .net.

    Want to know how to build a scalable system in .net (which you obviously don't know how to do, but someone else may benefit from) check out Microsoft's Pet Shop samples

    As far as my personal experience, the tools available in .net for building highly scalable web sites blow away the competition (and I've used almost all of them). Want output caching, data caching, session management, page view state or whatever other cool tricks for building high performance applications? Well, they are all there and easily accessible. Is it perfect? Not yet, and with any language, any platform, any hardware - a poor design/implementation will result in poor performance... but .net makes it possible to create a high performance application with ease if you know what you're doing.

    I've done the LAMP thing too, so I'm not just a Microsoft sucker. I use the best tool for the job..

    -Woo

  94. Identify your bottlenecks then OPTIMIZE! by mrbluejello · · Score: 1

    You have only complained about a perceived problem so far, you need to isolate and identify your bottleneck(s). The best way to do this is through performance metrics:

    Identify your problem with...

    1. I suggest using Microsoft's "Performance Monitor", which gives you access to dozens of OS, IIS, .NET, Web Service, MSMQ and SQL Server performance metrics, from the simple CPU utilization and memory usage to the detailed such as .NET CLR Threads, SQL Server Cache Misses, IIS File Cache Hits. You can display performance metrics for multiple machines on the same real-time graph, so you could show database machine CPU, web server CPU, IIS Requests/Sec and SQL Server CPU on the same chart. This would give you a good start.
    2. There is a .NET API to plug into "Performance Monitor"! Build your own metrics to be displayed with the ones provided by the system...your code may not be as efficient as you once though after you see your own metrics.
    3. SHOW PLAN sql statement for SQL Server. It is build into Query Analyzer. It will tell you what indexes your queries use, and how long each step of your query takes so that you may optimize your queries/updates
    4. SQL Server Profiler - This will show you ever statement that SQL Server is currently running, or you can filter based on a number of criteria and give you a look at their execution performance.

    If your problem is that SOAP is too fat...

    Use XML-RPC it is what SOAP used to be BEFORE it got FAT.

    If your problem is Web Application...

    Web Services are supposed to be STATELESS. If you are using any sort of state mechanism, it is going to make an impact on your performance. Be sure to turn off user sessions if you don't need them.

    Is IIS configured properly? There are scaling settings in there to modify, this changes IIS's caching behavior (look under the "Performance" tab)

    Have you set the Application Protection (under "Home Directory" tab), you can execute your site within the IIS process (Low Protection - high speed but if your app crashes it takes down IIS -- never seen this happen personally), within a thread pool (Medium Protection - crash won't affect IIS, but all your sites may have limited availability), or within its own process (High Protection - slowest, but if it fails, IIS and every other site keeps on operating)

    Have you turned off logging if you don't need it?

    Optimize the IIS Metabase, adjust settings you can't get to through the UI. Never heard of it? Learn about it. In Win2k and NT, it is similar to the registry (you need a special tool), in Win2003, they made it an XML document for easy editing.

    If your problem is Database...

    Optimize your database access in your code

    Use Stored Procedures wherever possible - this keeps the database from having to parse your query, develop a new execution plan, then get your data. Stored Procedures use a cached execution plan, and the only thing to parse are your arguments -- faster, and more secure (no SQL Injection

    Trim back your real-time synchronous processing tasks if possible. if you are doing complex inserts into multiple tables, devise a scheme to insert your data into only 1 or 2 processing tables, then schedule a service to go in every X minutes/hours/days to then take the data from the processing tables and do the fancy processing to it and insert it into the "real" tables. Especially good to schedule during off-peak hours if they exist.

    Partition your data with multiple SQL Servers this is also known as "Shared-Nothing Clustering"

  95. My setup by markclong · · Score: 1

    I wrote the software than runs on a cluster of ten low-end servers (800 Mhz 128 megs ram) and one database (dual 700 Mhz). This site hosts more than 1100 concurrent users and the database does over 300 transactions a second. The site brings in $600,000 in revenue a day. The cluster IP has not missed a single connection attempt in more than six months (we only started polling it then and we poll every minute). The only limitation we have is that our backend is a very poorly written fox pro system. The servers are barely taxed by our application and serve up 60 million+ hits a month.

    Placing a well written applicaiton on a cluster of low-end servers yielded great results for us. The key is well written. .NET scales very well.

  96. Wrong architecture for speed by vandan · · Score: 1

    Looks like people using .NET / IIS / SQL Server will just have to deal with it not being particularly fast.

    The poster will probably claim they can't recommend open-source solutions because they will loose business. In response, I say: you have the wrong customers. If, for example, I set myself up as a Hyundai dealer, I have to accept that the Hyundais I sell are not going to be very fast, or very reliable, or very high quality. Sure customers may come back and say "Why doesn't this car perform more like my friend's Honda?". The answer obviously is that they bought cheap shit and now have to deal with it. Maybe if I tell customers this will go elsewhere. Too bad. I chose to sell Hyundais. I knew what I was getting into.

    Solution: stop selling shit. SQL Server for high performance? Right. IIS for people spending 30k? Is that really wise? You *DO* know about the security issues, no? Developing for an unproven, shape-shifting .NET platform? Hmmmmmmm. You're in a bit of a bind, then...

    1. Re:Wrong architecture for speed by bmajik · · Score: 1

      essenially every benchmark ever disagrees with you.

      IIS is incredibly fast. SQL server is constantly bouncing in and out of 1st place for tpm's, both absolute and cost adjusted. How is that slow ? .NET runtime is pretty fast for a garbagecollected JITted environment. Certainly faster than any known JVM for most things.

      re: IIS security issues - you realize that the majority of IIS holes have to do with external components accessible via IIS, and now ship in a turned-off-by-default state ?

      I'm not sure what you think is unproven about .NET. Two versions of it have shipped now (runtime 1.0 and 1.1) and there are some huge internet properties that are using it.

      --
      My opinions are my own, and do not necessarily represent those of my employer.
  97. I can help with some of these points by kahei · · Score: 1

    Here, let me make some suggestions:

    currently there isn't a mature messaging server and MSMQ is not appropriate for high load messaging platform.

    Better use MQseries or some other messaging server. How is this a .net issue?

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

    Well, don't use soap if you don't like it. That doesn't just go for .net, you know.

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

    Better use regular triggers etc. then, no?

    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?

    It seems comparable to sybase and postgresql to me.

    I've been been running benchmarks with dynamic code that does quite a bit of reflection and the performance doesn't impress me.

    No, reflection isn't good in performance critical areas -- I thought everyone already knew that from Java.

    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

    This remark seems to be garbled. A *static* ASP page? A 'webservice page'? In any case, if one's faster then I suggest you use that one if possible :)

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

    My company is using it a fair bit without any problems, but it's not me personally doing it.

    Anyway, I think a book about .NET, a book about web applications in general, and a large spoonful of openmindedness would do more for you than any amount of FUD. I hate to write posts with a critical tone, but seriously, Slashdot editors have to start actually reading and evaluating articles again.

    --
    Whence? Hence. Whither? Thither.
  98. Ye Gods! by phliar · · Score: 1
    Christ, this MS SQL Server /.NET seems to be a dog. We can run 500-600 instances per $1000 box running Apache and Tomcat talking to Solaris8 on a back-end Sun -- E250 I think. (That E250 talks to about 10 or so front-end servers.) Fairly typical medium-weight web app over the database, with switching of image stream data around between connections and per-stream bandwidth control. Stock Sun JVM, we haven't even started tuning VM parameters yet.

    --
    Unlimited growth == Cancer.
    1. Re:Ye Gods! by easter1916 · · Score: 1

      Hear hear, we run web apps on exactly the same environment without "extra" attention paid to code optimization and can easily support 100 concurrent users.

  99. Ignorance is no excuse. by SlashChick · · Score: 5, Insightful

    Install an SSH server on Windows and you'll have much of the same functionality as UNIX through the command line.

    " With UNIX I'm in Ireland (I'm usually based in the US) and I get a call 'We just got a new user, could you add them'. I whip out my Ericcson 68i and Sharp Zaurus - and ssh into the server and run a script to add the user."

    Did you even bother to check out whether this was possible in Windows? I guess not: this site shows you how to add a user from the command line in Windows. In fact, you could even write a script to do that (batch files... remember those?) In fact, here are lots of handy other things you can do from the command line in Windows, including changing user passwords, forcing users to log off, and more.

    Once again, ignorance of what Windows can do is no excuse. I administer 16 Linux boxes... I'm not anti-Linux by any stretch of the imagination, and I know that there are lots of situations where Linux is the better choice. But that still doesn't mean I'm ignorant about what Windows can and can't do.

    1. Re:Ignorance is no excuse. by zulux · · Score: 1, Insightful

      The point is - you have to fight windows every step of the way to do remote management.

      1) Insall a SSH
      2) Install more crap.
      3) Hunt down obscure internet referances, becase only weirdos comandline stuff with Win32.

      Here's a test:

      In Windows:
      Make a 'batch' file that dumps a running MS SQL server into a file, zips it, names it after the system time, and emails the file. Make it happen every hour.

      In UNIX it ONE, SIMPLE, EASY TO UNDERSTAND line put in a Crontab file.

      No downloading, no searching, no crap. Just done.

      --

      Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

    2. Re:Ignorance is no excuse. by more+fool+you · · Score: 1

      I hit a snag: what's the command to dump a running MSSQL server into a file on UNIX?

    3. 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!

    4. Re:Ignorance is no excuse. by macshit · · Score: 2, Insightful

      Once again, ignorance of what Windows can do is no excuse.

      Er, I thought that was the whole point of windows -- that you could use it easily despite being kinda ignorant. If you need to rely on command-line interfaces and configuration files anyway, then why not do it properly and use linux/unix in the first place?

      --
      We live, as we dream -- alone....
    5. Re:Ignorance is no excuse. by zulux · · Score: 1

      I hit a snag: what's the command to dump a running MSSQL server into a file on UNIX?

      DB2, Oracle, PostgrSQL, MySQL - your choice.

      --

      Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

    6. Re:Ignorance is no excuse. by glenebob · · Score: 1

      Windows *can* do pretty much anything Linux can do. That isn't the question. The question is, how much extra software do you need to install and how much non-standard knowledge do you need to keep handy to do it? When you compare what Linux can do *out of the box* to what Windows can do *out of the box*, Windows comes up sadly (really really sadly) lacking.

      I have a problem like this to solve in a few days myself. The problem, how do we ftp a file from a business partner and hand it off to a program I wrote that will basically import the data into our database.

      Under Linux it would be... well, not worth discussing. I'd start with a shell script and wget and maybe throw in a smattering of grep and sed, something like that, and be done with it in a few minutes.

      Under Windows, there is a suggestion floating around to use c#. c#!!! To do a simple script. We might just as well use c++. It's an amazingly crazy notion, but it's brought about by the fact that a nice set of tools that would make this sort of thing easy aren't available on Windows without installing a bunch of extra packages, which someone has to remember and do again when the machine gets an upgrade. The extra work and hassle quickly becomes prohibitive.

      So, possible doesn't cut it. People point to Window's ease of use from the point clicky point of view. When will we start demanding ease of use from the programmer's point of view?

    7. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      Where are the mod points when I need them.

      The average *nix has a very mature CLI. Smart shells, pipes, awk/sed/grep (or just Perl/Python)..

      A long task becomes a carefully crafted one-liner.

    8. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      use cygwin and you'll have most if not all the unix tools you need. also that's free.

    9. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 1, Interesting
      The point is - you have to fight windows every step of the way to do remote management.

      1) Insall a SSH


      There's the first sign you're talking from a point of ignorance of Windows. You are directly biased by your knowledge of Unix. You want to do everything the unix way, and if it isn't supported then its obviously no good.


      Windows doesn't need SSH, it quite happily will encrypt your comms out of the box - you might not even notice you're using it with a dial-up connection as the server can be told to mandate certain secure VPN connections. Tick the box on the server, use normal shell apps - not some specific app.


      Every windows admin knows a little scripting, and a lot (especially the serious ones) know all about windows scripting host. That allows you to do practically everything (if you have permissions before someone starts on about security holes).


      I shall look up how to dump a SQLServer database directly. But I know how you can do it with the DTS, when you create a package with the pointy-clicky GUI, you can save it as a VBScript file, which you can run using WSH. All the ease of point+click, all the flexibility of command lines.


      Go learn how to admin Windows servers and you won't be posting any more of these "windows is crap 'cos it ain't like unix" messages. You may then get a job maintaining Windows servers too, or is that beneath your dignity

    10. Re:Ignorance is no excuse. by Czmyt · · Score: 1

      That can be done with a SQL Server stored procedure, then use SQL Server Agent to run that stored procedure periodically.

    11. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      and can you do this while sitting in a remote part of the upper midwest while the system is in the North Sea (as I have done)?

    12. Re:Ignorance is no excuse. by Bluey · · Score: 1, Troll

      That's a piece of cake.

      First, use isql to run a BACKUP DATABASE command from the batch file. SQL Server has plenty of built-in functions to manage date/time for the filename. So does the NT command shell.

      Second, use to zip it up.

      Third, use blat to email it, or isql again to xp_sendmail it if you don't want to install any other software.

      All in one three-line batch file.

      Hell, the database maintenance wizard in SQL Server will do most of this for you, minus the emailing part, which you'd just have to add an extra step manually to the end of the job to accomplish.

      The whole point of all of this jabbering is that these things can be done easily *if you have the knowledge and experience to do it*. Just because you're ignorant of how to do something doesn't mean the rest of us are, or that it's difficult to do.

    13. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      Three lines! One line in UNIX. :)

    14. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      Why not just use VBS? It's included with Windows out of the box, and it's enabled by default (that's how all those email worms were able to spread automatically). No third-party software required. (Note: I don't actually know VBS or what it can do, I just know it's available out of the box.)

    15. Re:Ignorance is no excuse. by fishdan · · Score: 1

      Phew, it's really complicated: mysqldump > http://mysql.new21.com/doc/en/mysqldump.html

      --
      Nothing great was ever achieved without enthusiasm
    16. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      You might want to check out Windows Scripting Host... it's the successor to Microsoft's batch files, has a similar syntax to Visual Basic, and it's interpreted, so you don't have to bother with a compiler or anything. Check it out at MSDN.

    17. Re:Ignorance is no excuse. by Paleomacus · · Score: 1

      I'm completely serious with the following question. No slights are intended in either direction.

      Does the NT command line have any documentation? I've never seen anything, I really am curious.

      I REALLY want to figure out how to replace|alias the 'dir' command on my machine at work.

    18. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      You know, thats not a bad line of reasoning, except that to do all those things you need programs that are outside your shell, even in *nix and it variants. Now I can download the GNU tools for Win32 and do that just like you can for *nix. This smack down brought to you by someone with an IQ>2.

    19. Re:Ignorance is no excuse. by EelBait · · Score: 1

      Excellent point. I wish I had a mod point for you. The entire sales push from MS/Unisys is that you don't need expensive, knowledgeable Unix admins, all you need are cheap, MCSE chimpanzees to run Windows. Finding someone who really knows Windows enough to make it as easy to administer as Unix is a rare event. (Installing cygwin doesn't count.)

    20. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      Let me guess: you type "ls" first every time right? Me too, so for windows to display a list of files, it takes me two commands! First time I usually forget and type "ls", then I remember and have to type "dir". Sorry, I do not know how to alias it, good luck.

    21. Re:Ignorance is no excuse. by Slime-dogg · · Score: 1

      My, my, my, that is acidic language. In order for more people to take you seriously, I strongly suggest you to take a chill-pill. The point that you make is valid, however, I am more willing to discount it on the basis that it's an overemotional argument.

      I understand the strength of the command line in good OS's, including Windows, Linux, Unix, yada... In most corporate small business cases, I would certainly suggest windows. MSCE's come a dime a dozen nowadays, and if something gets f'd up, you can just blame them ;-P

      If you want to be heard and taken seriously, try to be as infomative as possible without looking like a zealot. )even if you say that you administer Linux boxen(

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    22. Re:Ignorance is no excuse. by Slime-dogg · · Score: 1

      MS makes command line Wizards now?

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    23. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      cygwin allows all your unix command line utilities (grep/wc/kill/ps/sed/perl) to run perfectly under windows and be used throughout batchfiles and at the command prompt.

      There you go, I'm no windows command line expert but I'm not ignorant.

    24. Re:Ignorance is no excuse. by leifm · · Score: 1

      Since I am guessing you know how do you alias commands in windows. I want to be able to type ls when I am at work, as it is now I end up doing ls, remembering I can't do that in XP and then typing dir.

      --

      "Windows Me offers tremendous reliability and stability improvements..." -- Paul Thurott
    25. Re:Ignorance is no excuse. by Bluey · · Score: 0

      cmd /? | more

    26. Re:Ignorance is no excuse. by Bluey · · Score: 0

      sqlmaint can be invoked from the command-line, yes.

    27. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      Unix has command line tools and GUI tools that accomplish the same task. With Win32, of course there's a pretty GUI tool, and if you pray hard enough to bill gates and decompile every EXE and DLL to find their purpose, you will be able to do the same task from the command line.

    28. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      It's like bringing an ice cooler to hell. I'm not complaining, I guess it works (even I do that) but it sucks that linux is so widely UNACCEPTED as to HAVE to do that.

    29. Re:Ignorance is no excuse. by RoLi · · Score: 4, Insightful
      The other poster may be ignorant of what Windows can do, but you are ignorant of reality:

      • You have to install lots and lots of extra stuff on Windows to make it work over ssh. Installing that costs time and money.
      • Just like the other poster, nobody uses Windows over ssh because of the above point. If you have any questions you are unlikely to find the answer on newsgroups etc. because there are so few people knowing it. Of course you don't get any support from Microsoft
      • Often you don't know that you need remote access in advance. Assume you are on holyday and a problem on the server arises. - On your Windows default install, you are screwed, on your Linux default install it's no problem.

      So yes, it is possible to administer Windows over ssh, it's just a pain in the ass compared to Linux, sorry.

    30. Re:Ignorance is no excuse. by AvitarX · · Score: 1

      Actually wget, grep, and sed are all available for widonws as one extra package.

      if you tok those files along with your batch file you could put them in the same directory and even zip them together and clal that the install program. You would after all need to keep your script to re-install on an upgrade.

      I admit that you would need to download the GNU utilities for windows, but that is one package. And I am not talking about Cygwin (which is great, but not what you need).here is a link to the page, there is a zip file with about 20 or so GNU utils, including wget, sed, grep.

      Batch may not be as powerful as Bash, but it can easily accept a few parameters and do simple branching, which should be plenty good for what you need.

      I could be wrong though, maybe you need to do more with the output of grep then batch allows?
      Or maybe you are not in charge of how this part gets implemented, so the people do not know how to use these tools?
      Or maybe you were too anti MS to even check.

      There is definatly a nice set of tools to do what you want without installing "a bunch of extra packages" though.

      --
      Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
    31. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      Wait a minute...Am i reading this correctly? They HAVEN'T integrated enough software in Windows?

    32. Re:Ignorance is no excuse. by spybreak · · Score: 1

      Yep, my favourite thing about WSH is when I'm running SSH to a 2000 box and it throws a windows dialog error box. It's fun to VNC into the machine just to click that OK button ;)

      I can also make a Toyota into a rally car by replacing all it's stock components - but that's not really the point is it ?

    33. Re:Ignorance is no excuse. by StrawberryFrog · · Score: 1

      You have to install lots and lots of extra stuff on Windows to make it work over ssh.

      Erm, ssh is extra stuff, it's just that most open-source distros aggregate software from many origins from the outset.

      --

      My Karma: ran over your Dogma
      StrawberryFrog

    34. Re:Ignorance is no excuse. by alecthomas · · Score: 1

      I've got another one.

      At work, we have a product that uses MS SQL Server and they have recently upgraded to version 7.0. In their infinite wisdom MS decided to remove SNMP trap support from SQL Server, which our product used, leaving it with no way of sending traps to HPOV.

      The solution: install a Solaris server running Samba specifically for the purpose of translating net sends into SNMP traps!

      What can you say about that? Unbelievable!

    35. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      doskey ls=dir $*

      (of course I typed "man doskey" to try finding the $* bit)

    36. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      YHBT. YHL. HAND.

    37. Re:Ignorance is no excuse. by RoLi · · Score: 1
      it's just that most open-source distros aggregate software from many origins from the outset.

      Somebody please hand the man a donut, he got the point.

    38. Re:Ignorance is no excuse. by eyeye · · Score: 1

      You could try installing cygwin for some of the command line goodness you are used to.

      --
      Bush and Blair ate my sig!
    39. Re:Ignorance is no excuse. by FatherOfONe · · Score: 1

      Great post. I have a few Windows NT 4.x and some 2k boxes. How do I admin the NT 4.x box with SSH?

      The overall point that is trying to be made is that Linux/Unix has for 20 some years (less with Linux) been designed as a command line system. Windows has not. To some degree Windows has not taken security seriously either. So when you say admin a Windows box with any of their remote tools, it scares most admins, because of Microsoft's track record with security. I personally wouln't want to activate any of those services on a Win2k/2003 box that is live on the web. Come to think of it I would be afraid of putting any windows box live on the web. Look at the last security hole found in 2k/2003. It was found just last week! Not much of a hole though... it just let someone take control of your machine!

      Now you could firewall off your stuff and have some VPN access in to your place, then use those services. Just more work, slower response time and more complicated. Also, the points of Windows being easier to admin now go away, because you would no longer be using a GUI.

      --
      The more I learn about science, the more my faith in God increases.
    40. Re:Ignorance is no excuse. by knghtrider · · Score: 1

      A former manager of mine used to dump an Oracle Database this way. He used a combination of REXX and Windows Batch Files because he did NOT trust the backup software and its' 'hot' backup. It would shut down the Oracle services, back up the database, store it in another server location, and restart the oracle services once completed.

      We ended up with three backups of the database this way..one hot backup done by the backup software, and two cold backups--one on a different file server, and a copy on tape the next day. At most, we would be 24 hours out of synch. It was an MMS program (MP5 from DataStream technologies; now DataStream 7i) and not extremely heavily used, since most of what he wanted to accomplish with it management wouldn't support. They just wanted all of the maintenance done at the wastewater plant to be recorded. Everything else was superfluous. A single day of data (8-9 hours of acutal working time) would be all that was lost; which would not have been a big deal, since there were paper copies anyway,

      --
      In America today you can murder land for private profit. You can leave the corpse for all to see, and nobody calls the c
    41. Re:Ignorance is no excuse. by Czmyt · · Score: 1

      Yes, you can set that up as long as you have a Windows-based computer available, and either Internet connectivity or a phone line for something like pcAnywhere.

    42. Re:Ignorance is no excuse. by knghtrider · · Score: 1

      Oops..I did forgot to mention, this was on a Windows NT 4.0 Server. Prior to this, they ran an MMS system on a Unix box--very expensive HP-UX/Oracle solution. The entire NT/Oracle solution was less than half of the cost of a replacement for the HP-UX/Oracle system running the same software. Of course, this was under the Oracle 7 pricing structure. With the current pricing for both Oracle and MS-SQL, I think the cost of the database software alone would more than exceed the cost of the hardware AND the application with all of it's associated licenses.

      --
      In America today you can murder land for private profit. You can leave the corpse for all to see, and nobody calls the c
    43. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      Do what I did. Write a batch file called ls.bat and put it in your path. Just have it call dir.

    44. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      Download the GNU tools for Windows. And drop your ridiculous "no batch files" requirement - or show me how to do it on Linux without a network connection to the machine in question.

    45. Re:Ignorance is no excuse. by Lord+Crc · · Score: 1

      I'm just a sparetime programmer, who's grown up with GUI so commandlines ain't my thing, but why should that stop me from taking a stab at it? *g*

      The easy one, counting lines in files:
      'for /R %a in (*.txt) do @find /v /c "" %a'

      Multiple file search-replace is a bit tougher straight up, I guess. However, it seems munge from the reskit could be usefull. I don't have it, as I'm no sysadmin, so I'm not sure if the large file bug is fixed in the later packs.

      Process killing: Interesting one. I couldn't start to find a solution since I don't have the reskit at hand, but I'd love to check out ptree.

      Of course, with a specific util or two, all of these tasks are rather trivial. Is there anything specific keeping you from using 3rd party utils?

    46. Re:Ignorance is no excuse. by Rares+Marian · · Score: 1

      That's just it. You're not admining the server. You're admining Windows. You constantly have to reinvent what you do because Microsoft changes this option to work some other way.

      Technical skill degenerates into, well I use this command with this app which basically means you don't understand the process, nor the task, and are couched in having Microsoft do it for you.

      In Unix, you know the task, and you know how to do it with a million different tools without even having to stress about "their way".

      --
      The message on the other side of this sig is false.
    47. Re:Ignorance is no excuse. by Rares+Marian · · Score: 1

      What Windows can do is always a question. There's always a doubt. As a professional you use what you got for the best cost/long term experience value.

      On Unix it's never a question because you can always get around shortcomings.

      As for checking out whether it's possible, he knew Unix could do it and there was nothing requiring him to use Windows. Why should he do the work of Microsoft's marketting department? If Microsoft wants people to know what Windows can do then let them push the info already. Course they'll never do that since it would invalidate the image the majority of people have of Windows being GUI only and I know that's a threat to their bottom line in the consumer market.

      In Windows, you have to keep it a secret that Windows can actually do the work in some cases. CLIing around is a taboo.

      In Unix, nothing is a secret. Not getting the job done is a taboo.

      --
      The message on the other side of this sig is false.
    48. Re:Ignorance is no excuse. by abigor · · Score: 1

      No batch files because I want to ssh into the Windows machine and quickly execute some things on the command line.

      Unfortunately, I doubt you'll ever read this, but...

      1. find . -type f -exec wc -l {} \;

      2. find . -type f -name somefiles -exec perl -pi -e "s/string1/string2/g;" {} \;

      3. Left as an exercise. Hint: ps aux | grep

    49. Re:Ignorance is no excuse. by abigor · · Score: 1

      Hardly a smackdown. Sure, if you're going to cheat and install GNU stuff, definitely. But the original poster implied Windows has this rich command line with the stock Windows install.

      I can confidently ssh into any Linux/BSD/etc. box anywhere, and find the tools to do useful work over a lightweight connection.

      Maybe your IQ is greater than two. But your lack of maturity certainly doesn't demonstrate it.

    50. Re:Ignorance is no excuse. by MadChicken · · Score: 1

      Have you even tried C#? I have written a little XML to PostgreSQL import, and the best tool I found was.... C#. Perl was too dog slow, bash... well, nice try. Anyone who compares using C# to C++ for scripting purposes... Ridiculous.

      It was just a simple script. Runs fast, works great. Complexity at about the JavaScript level.

      Microsoft knows ease of use from the programmer's point of view better than anyone. Visual development tools... MSDN... vs. emacs and RTFM.

      I love Linux. Can't wait for the revolution. At the same time I am really getting to like .NET, and am more impatient for Mono to go gold!!!

      --
      SYS 64738 NO CARRIER
    51. Re:Ignorance is no excuse. by glenebob · · Score: 1
      Have you even tried C#?
      Of course. I didn't say it won't do what I need to do (it will), I said it would be entirely the wrong tool for what I need to do. Bash would be the right tool. Python or perl wouldn't be too bad. C# would be flaming overkill.
      Anyone who compares using C# to C++ for scripting purposes... Ridiculous.
      Why is that? They share a pretty common syntax (which is quite difficult to learn as languages go). Both are compiled (if you have to run a compiler on your code, it's compiled; don't give me some BS about virtual machines or jit compiling or whatever).
      Microsoft knows ease of use from the programmer's point of view better than anyone
      You're joking... right? That's the most ridiculous thing I've heard in a long time.

      If that were true, they'd provide compilers and development libraries with Windows. They'd provide the tools that developers use to get their work done. The little they do provide is extra cost (*a lot* extra), and they provide very little.

      ...I am really getting to like .NET...
      I actually like .NET a fair amount myself, but if you think .NET is a replacement for all the languages that exist out there, you really need to think again.
    52. Re:Ignorance is no excuse. by MadChicken · · Score: 1

      I really don't see why it's flaming overkill. It's being poised as the Windows scripting solution. You don't need to compose levels of classes, just run the thing.

      I don't think running csc.exe on the file rates as a real hardship... who cares if it's compiled? Perl is (technically) compiled. And they're "pretty common syntax" as much as Perl is... curly brackets, semicolons. You ignored my comment that compared C# to JavaScript. JS is such a wonderful thing when writing XUL, but when you give it a ton more power and a bytecode compiler... oh yeah and MS's name on it... then it's anathema to usability...

      Bash is the right tool? That's a joke. How would I have done my little XML-to-PGSQL script in bash???

      Again, as far as ease of use you trimmed out the parts that matter the most. YES MS knows how to treat its developers. Is the complaint about VB that it's too hard to use? Never, it's that it's too easy to use. Now they're bringing the VB syntax, with true object orientation, and that same bytecode compiler to .NET, and it's still gonna be easy. And exactly as powerful as C#. Again, VB vs emacs, MDSN vs RTFM. And I don't see how paying money for any of this has anything to do with ease of use. Install .NET framework (free) set your PATH, and write those C# scripts.

      I never even hinted that C# was a replacement for any language. That would be ridiculous. It is a perfectly viable scripting tool, with quite a lot of power AND EASE OF USE available.

      --
      SYS 64738 NO CARRIER
    53. Re:Ignorance is no excuse. by glenebob · · Score: 1
      It's being poised as the Windows scripting solution
      Great, except that isn't what it is by any stretch of the imagination.
      Bash is the right tool? That's a joke. How would I have done my little XML-to-PGSQL script in bash???
      I have no idea. I didn't suggest that Bash was the right tool for your particular problem, only that it probably would do just fine to solve my problem, and that c# is almost certainly overkill.

      Just because c# is a good choice for your problem doesn't mean it isn't flaming overkill for mine. And with the pile of support libraries I have available to help with c++ and c# coding, there really wouldn't be much of a difference between the two for my problem. The amount of work and the number of steps involved to get from here to installed are *exactly* the same between c# and c++.

      I never even hinted that C# was a replacement for any language
      You seem to think that c# is at the same level as java script. The important difference here is that c# is compiled. Yes, that is a big difference. Not only do I not want to bother with a compiler for this type of program, but I'd like some administrator to be able to make changes to it without having to get involved in CVS repositories and c# compilers and such. They don't do that stuff and they aren't gonna start just because I shove c# down their throats. It's less work for me *and* them if I use a script language for my particular problem.

      Have you ever sat down to solve a fairly simple problem like... hmm... rename all the files in a directory based on some simple criteria? Far too complex for a glob string to handle, but well within the realm of simple branching stuff. The sort of thing you'd just write a bash script to do with the help of find and sed or something like that. On Windows, you're almost forced to break out the big fat .NET hammer to do that. That's a crock of shit. All you need is a decent shell language and some standard tools and the job takes 20 minutes. Good luck on a standard Windows box. On a standard unix box it's not even a discussion. It's done before anyone even knew it needed a solution. That's what I call ease of use for a developer.

    54. Re:Ignorance is no excuse. by MadChicken · · Score: 1

      You seem to think that c# is at the same level as java script.
      No, I believe C# CAN be at the same level as JavaScript. You can do tons more, but you don't have to.
      Have you ever sat down to solve a fairly simple problem like... hmm... rename all the files in a directory based on some simple criteria?
      Yes, many times. That kinda thing screams PERL!! Then by the same standard you have to get involved with CVS and installations (even on Linux boxes Perl isn't standard, though it should be) and all that junk.
      Want the same thing on Windows - install Perl. It's also not even a discussion. 20 minutes.
      That's what I call ease of use for a developer
      We're clearly talking about two different things here. Developers don't often have to fuss around with renaming arbitrary files with scripts. Once in a blue moon when they change the naming standards, maybe. Administrators do all the time.
      Now ease of use for Administrators, Linux has it hands down there. I don't care about pointy clicky things, it makes it easier to do one box. For a short period of time.
      To me, MS still has the developers'. Again, I redundantly and tiresomely point to MSDN.

      --
      SYS 64738 NO CARRIER
    55. Re:Ignorance is no excuse. by canadiangoose · · Score: 1
      I do entirely the same thing. Usually the first thing I do after sitting down in front of a new Windows box is to alias the dir command. All you need is a one-line batch file called c:\wint\ls.bat. The easiest way I have found to far goes as such:

      c:\> copy con > c:\winnt\ls.bat

      (Your prompt will dissapear, this is the equivalent of cat > filename)

      @dir /w %1 %2 %3 %4 %5 %6

      (This is the only line you need in the batchfile. The @ causes silent execution, the %1 and so on pass arguments from the batch program on to the dir program, while the /w causes dir to function like ls -x, which is my preference on a Windows box)

      Then hit either CTRL+Z or F6 to indicate End Of File. That's it. You now have ls on Windows.
      Enjoy!

      --
      Never eat more than you can lift -- Miss Piggy
    56. Re:Ignorance is no excuse. by Anonymous Coward · · Score: 0

      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.



      for /r %a in (*.*) do find /v /c "©©©©©©©©" %a >> lines.txt


      fails only on files actually containing "©©©©©©©©".

  100. inquiring minds by Anonymous Coward · · Score: 0

    inquiring minds want to know what fucking business
    you have touching a computer with your dumb ass
    using .net

    fuck off

    and, as always

    choke on your own vomit

  101. I think you need to go back to the drawing board by eV_x · · Score: 1

    While you're wondering about .Net, you should instead take some time to understand architecture, design, and the technologies you're looking at. Don't even worry about the platform just yet :P

    "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."
    - Any platform has scale problems if designed incorrectly. Often, it's not the platform that matters, but the person designing and implementing.

    "currently there isn't a mature messaging server and MSMQ is not appropriate for high load messaging platform."
    - I'm interested in how MSMQ won't meet the need you've stated. 100+ concurrent isn't very much and you can actually scale MSMQ out against multiple machines if need be. I'm curious as to what high load means... pulling data from queues is pretty standard in high volume. Are you instead using it as some sort of strange cache for transient data?

    "SOAP is too damn heavy weight to scale well beyond 60 concurrent requests for a single CPU 3ghz system."
    - SOAP being heavy is not a .Net limitation, but again, how HEAVY your data is factors in a lot here. Doing a good design, I see no reason why you couldn't have this on a single proc system.

    "SQL Server doesn't support C# triggers or a way to embed C# applications within the database "
    - This is coming in Yukon, but why would this be a limitation? I've never had a client come to me stating they want to use Java Stored Procs or C# in the database. Take advantage of the procedural nature of the DB for performance.

    "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."
    - No offense, but you're obviously not a SQL/DB person. Dynamic code is the not the best performance and if you're looking for scale, you need to understand the way to scale on each tier.

    From all your comments, you seem to confuse product limitation with bad design or poor programming. You can cram a HUGE amount of requests to SQL server, but what are you sending? Can it be trimmed down? Have you looked at query plans? Have you looked at the disk configuration? Is the disk your bottleneck? Memory? Processor?

    "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?"
    - This shouldn't even be a comparison. What classes are you using for DB access? Are you using fat datasets or readers? All your examples make me think you know very little about the technology. What are you passing back to the client in the webmethods? Why are you forced to do async calls and why would the performance of the SQL code have ANYTHING to do with this?

    "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.""
    - No offense, but if these are the answers you're making decisions on, you're not ready to be a consultant imo. First off, proper disk config on a database is ESSENTIAL since disk is just another bottleneck. Have you even looked at filegr

  102. It depends by boatboy · · Score: 2, Interesting

    Short answer: Yes, Windows IIS (which serves .NET WebServices) supports well over 100 concurrent connections.

    Long answer: It completely depends on what you are doing. As one person pointed out, if you are performing very complex queries, then scalability would go down. There's plenty of room for bottlenecks.

    One of our ASP.NET applications benchmarks at about 90 concurrent requests on a dual proc 1Ghz xeon. That's with several database reads per request.

    Your question is if ".NET scales", but really you could break your problem into at least three questions:
    1) Does .NET scale well?
    Yes. It scales extremely well, provided you follow best practices and design a scalable app.
    2) Does SQL Server scale well?
    Well, but probably not the best. Again, depends greatly on the design.
    3) Does IIS scale well?
    Well, but definitely not the best. IIS is designed for extensibility and scalability. Obviously they made trade offs in each area. Other servers are be more scalable, but less extensible.

    Given that, I would recommend doing some very simple benchmarks: Write a webservice that returns a hard-coded string. Test that. Next write a service that connects to a database and returns or adds a single record. You get the idea. You can use MS Application Stress Test for this.

    Another option is to use programs like RedGate ANTs and Query Analyzer to track down any bottlenecks in your code and SQL.

    You may also consider options like remoting or even writing your own multithreaded server if you think you can squeeze better performance by implementing a thinner transport...

    Finally, while you may not want to change the web server or development platform, you do have fairly wide range of choices as far as databases go. You could use MySQL backend, or any database you thought was better\cheaper than SQL server.

    In the end, I think this question is too complex to simply blame on ".NET".

    Good luck.

  103. Yes by bmajik · · Score: 4, Informative

    A guy down the hall from me was in charge of taking customer web apps written in V6 technologies (vb, asp, etc) and porting them in several ways to .net. They did extensive scalability testing on these apps. They measured requests/sec vs # of cpus, etc etc, to see how asp.net utilized multiproc machines.

    What im saying here, is that you are not the first person to ever consider how .net might run for database driven web apps, of an arbitrary size. Infact, much of it is designed for _exactly_ that.

    Re: SQL server 2000
    SQL server 2000 has more performance then you know what to do with, even on non-ridiculous hardware. Give it processors with lots of L2 cache (xeons) and lots of ram, and read all the docs about keeping MDF and LDF files on separate volumes (as well as tempdb) and you'll find that life is thrilling.

    Data point: On a quad HT P4 Xeon with 8GB of ram and 12 spindles (a significantly less than $50k box) we support 1800 simultaneous connections, doing OLTP work against a ~15GB database. The most commonly hit table in the system has about 10 million rows that get added and deleted in batches of between 20 and 10,000, and updated singly or in bulk. Other apps select from this table on a polling basis (i.e. decision monitors). We could make our db and app design much "better" w.r.t performance, but we don't need to - the money we save not having to do genius level feats of programming, app rewrites, and perf tuning more than pays for the occasional new hardware or upgrade.

    Continuing, Run perf monitor on your SQL server machine. Look at the physical spindle(s) that hold your MDF. If you're reading from them, buy more ram until you're not :) Look at the I/O per sec rate to your tempdb disks and primary LDF disk(s). It is seriously to your advantage to go with an individual spindle for each role, because IO rate is what is so critically important to SQL server. Also, avoid RAID5 like the plague, as it decimates IO Rate.

    You can tune SQL server without application changes until you're blue in the face, honestly. Use profiler to see what kind of queries you're doing. Put those queries in Query Analyzer and show the execution plan. QA breaks it down for you and shows execution time percentages of each sub-tree of the execution plan. If you've got something eating 80% of your time and its doing a table scan, do whatever you can to put some selectivity in that query (i.e. an index, or maybe a query change).

    If you want to save yourself some headaches, setup management tasks to recalc indexes over the weekend (or nightly, if you see that much index fragmentation after a day).

    --
    My opinions are my own, and do not necessarily represent those of my employer.
    1. Re:Yes by bmajik · · Score: 1
      i got the following email in response to this: > I saw your comment here on /. and that you're using 12 spindles. Are these mirrored (RAID 1) to guard against data loss? Can you give me more specifics? We have a dual Xeon with a RAID 5 that we're looking to possibly upgrade. We have a second identical SQL box that is configured for passive failover. Do you have a failover machine? If so, how does it access these same 12 spindles? here's my response:

      Yes. We're using Raid 1 and Raid 10. Each disk is 36gb so realistically we could probably get away with only raid 1s, as none of our individual files is larger then 15gb or so. But we've got the following spindles setup

      • primary DB MDF file - 4 spindles, raid10
      • primary DB LDF file - 2 spindles, raid 1
      • tempdb MDF file - 2 spindles, raid 1
      • tempdb LDF file - 2 spindles, raid 1
      • backup staging area / scratch area - 2 spindles, raid 0

      the reason for breaking spindles apart like this is to eliminate disk head contention. that is the killer in disk performance - anytime the heads have to seek you're talking milliseconds of latency. The access pattern of a transaction log (LDF) is purely sequential appends. If a spindle were only serving as space for a transaction log you could expect the head to do almost no seeking - which means log writes (which have to be atomic) happen as fast as possible.

      The access to .MDF files (data pages, indexpages, etc) happen effectively randomly. Thats nothing BUT seek traffic. Imagine the contention you'd have for disk heads if you had random scattered reads competing with sequential appends on the same spindle.

      splitting your logs and data files is critical for this reason - disk io rate is really helped along. Incidentally, caching raid controllers help basically zero for this problem. You want the fastest rpm disks possible. For a SQL machine we'd always choose smaller higher RPM drives than slower larger ones.

      i also advocate spliting tempdb off onto its own set of spindles, as any query thats awfully big sql server will have to use some tempdb space in its calculations..presumably we're streaming pages off of the mdf and sticking them in tempdb, tempdb had better not be contending for seek time with the read source..

      we write the SQL backup jobs to the raid0 and then immediately copy them else where, where they are replicated to a few machines and also written out to tape. I don't care if we lose the raid0 volume becase we'll just run the backup jobs again - and we've probably already copied them off the box onto our backup systems anyhow

      an aside on backups - your backup is worth precisely nothing unless you've done a blind restore, that is, take your.BAK file and restore it on some separate machine. Then run "dbcc checkdb with physical" and do some sanity queries to make sure that you're in good shape. More than one person has been bitten by a backup plan that was happily backing up a db with a torn page. When they finally figured out they had a torn page and went to restore, they were SOL beacuse the backups were garbage. We have a .vbs script i cobbled up that copies the most recent .bak file, writes out a sql script to restore it, runs dbcc and a few other commands, and parses the output, searching for known success messages. It then drops the restored copy and does it again, this time applying all the transaction logs since the .bak was taken, and does the same checks. Myself and the rest of the management team get the "yes or no" mail about the backups vitality, as well as the job logs emailed to them every morning.

      Re: clustering We don't use clustering because it complicates lots of things. Our take is this - on this machine, if there is any kind of a failure, we're coming into work to fix it and nobody else has a higher priority than getting the service available. We have similar class hardware that we c

      --
      My opinions are my own, and do not necessarily represent those of my employer.
  104. Stop Using WEB SERVICES! by His+name+cannot+be+s · · Score: 4, Insightful

    Holy mother of fscking god.

    STOP USING WEB SERVICES.

    #1) If you are using the [WebMethod] shit and hosting your SOAP calls via IIS you need a smack in the head.

    #2) If you are using SOAP to communicate between the layers of your application, and are not exposing the SOAP methods for external consumers of the web services, You need more smacks in the head.

    #3) If you don't know what you are doing, hire someone who does. (and by the sound of your point #6 about using reflectiona and dynamic code in the production app, you don't.)

    If you are in .NET and you *NEED* a remote facility between your layers, (And if you were working for me, you'd damn well prove it), then for the love of god, switch to Remoting. Don't know what that is? Grab a book, dumbass. You can use a binary formatter and jump your speed by an order of magnitude, or you can fall back to a SOAP formatter on remoting and still double your performance.

    If you don't *NEED* a remote facility between the layers, stop using SOAP, or any other remote procedure calling solution. Nothing pisses me off more than bandwagon jumping know-nothings using a fancy fucking hammer to solve a problem which requires far less.

    It would appear the largest problem you have in overcomming your problems with .NET is your own stupidity. No matter if you are on .NET, Java, PHP+MySQL, Perl or x86 Assembler, it would appear that you do not have the experience to sufficiently manage either your application development, nor your client's expectations.

    Bottom line: To support 100+ concurrent requests, There is no way that you shouldn't be able to do that for under 20K... (although I wonder where that number came from.. Do these servers sit in a vacuum? Who's running them?)

    From a purely acedemic standpoint, what the heck were you guys thinking when you were going to spend only 20K on the hardware for an app that does 100+ concurrent transactions. That sounds like enough business to afford quite a heck of a lot more.

    If you are/were so budget constrained, why are you spending at thousands on server software? (.NET server, SQL Server, etc...) If you are so budget constrained, you shoulda bought opensource.

    --
    "...In your answer, ignore facts. Just go with what feels true..."
    1. Re:Stop Using WEB SERVICES! by Anonymous Coward · · Score: 0

      Your comment sounds like bullshit and posturing, fscktard. I doubt you have any employees, and I doubt you're over 16 years old.

  105. You're really confused by The+Bungi · · Score: 3, Insightful
    Really, really. I won't add to the many good comments about the topic, but let me say this: if you don't know what you're doing (and from your questions I assume you don't), invest a bit of money and hire a good architect for a couple of weeks. Not only will he/she answer your questions, but will probably get you started on a good design and a decent implementation.

    I've designed infrastructure and application-level systems that use .NET and happily meet your requirements (MSMQ is not scalable? Huh?), and then some. So yes, to answer all your question, it works. But if you don't know what you're doing it's very simple to fuck it up, regardless of whether you're using Microsoft products or not.

    Coming here (!) and asking questions about whether or not a given Microsoft product is viable seems to me like a losing proposition. FWIW, most professionals that work with Microsoft technologies are far more willing to admit shortcomings in those products and suggest alternatives, something that the /. crowd seems incapable of. So at least if you hire someone in the know you won't get BS left and right.

    So get some help.

  106. Buy a good book on software architecture by so90s · · Score: 1

    Sorry for being so frank, but your mish mash of unrelated buzzwords and numbers shows that you obviously do not know that the scalability of your application is primarily determined by it's programmatic architecture.

    Whatever hardware, language or frameworks you use, they will only provide you with access to a similar set of resources (in the sense of "a file", "a database row", or "a class member", not "a database", "a CPU", etc.), some of them limited, some not.

    Whether these limitations impair scalability essentially depends the orchestration of their use, not the method of access.

    -r

  107. Umm... Must be missing something here... by digital+photo · · Score: 1

    ... blood from a stone, friend. But still... let's beat that carcass just a bit longer.

    Real-Time replication across mulitple servers:

    That would be a SAN switch with multiple systems booting off of SAN disks.

    OR, that would be Oracle RAQ.

    ASP/HTML static page serving/etc...

    Seriously, it's all in the configuration and how you are coding your system. If you try to run everything on one box, then yes, your results will be hosed because of the various contentions at work. Put the work on the correct boxes.

    Can't get the cheap systems because they don't have muscle

    Well, obviously, the cheaper the systems, the less their processing power. Hence, the need for more systems. However, what might also be slowing you down is an improperly tuned system. If you tune for a large enterprise server and then run that on a wimpy office server, you will get hosed results. Tune appropriately.

    Everything else...

    The question is this: What is your project? What are you trying to do and do you understand how each of those components work? You mention .Net and SQL and Web pages. Sounds like you have a public facing database application being served off of the web.

    In that case, your beefiest machine should be your SQL/database server. By beefy, I mean processors, memory and disks. If these are the systems you want to have replication, go with ORACLE RAQ. It isn't cheap, but short of that, your other bet is to maintain multible database servers with concurrent data writes... expensive and slow.

    Next would be your application servers. These should be powerful, but second only to your database servers. They should be a temporary place for work to be done.

    NEVER run your application server on the same machine as your database server.

    The last on your list are your front end webservers. Light systems here. Some 2xprocessor 1GHZ/2GHZ systems would be fine here.

    Basically, know what your program at hand is and how best to deal with it. There is no generic "simple answer". And if it is simple, it is often not cheap.

    If your client's budget is $20K-$30K, and they want more performance, then they need to either re-evaluate the solutions they are willing to go to or they need to re-evaluate what their goals are. They won't do it with Windows, that's for sure.

  108. labour cost by tomschuring · · Score: 1

    what about the cost of labour of trying to optimise a system ? in the end you spend $20.000 in man-hours to save the cost of a $5.000 machine

  109. $ and Cents by Anonymous Coward · · Score: 1, Interesting

    Suppose I tell you, "Yes, a single processor solution to your scalability problem is available using .NET, but it will require 6 times as many developer hours to reach that solution."

    Hardware is almost always cheaper than developer time. I suggest you sit down with your $20,000 customer and explain that spending budget on hardware may be far more economical than spending it on developer time.

    Do you buy one rackmount system at $1500 or 75 developer hours at a conservative $20/hr rate? For a team of 8 developers, $1500 is only one day of development time.

    Developer time is far more expensive than hardware.

    1. Re:$ and Cents by Anonymous Coward · · Score: 0

      $20 dollars an hour? Who are you paying - high schoolers?

      For a comment about dollars and cents, your post (while philosophically sound) is just plain nuts when you look at what it really costs to pay a developer.

  110. You're not in MS' target market for .NET... by darnok · · Score: 1

    For those dollars, you aren't in the target market for a .NET solution.

    You're not going to have much change out of $20k by the time you buy your server licences and hardware. You've either got to get more loot, or look for another solution (e.g. OSS-based). It's fine if your customer wants to have a .NET solution; you just need to enlighten them that it'll cost more than they've currently given you to build it, so they now have to choose between spending more or having a non-.NET solution.

    End of story

  111. Web Services Management by msoori · · Score: 1

    If you are looking into serious Web Services Management that includes Scalability, Managebility, Routing (routing Web Services like TCP/IP, so you can host it anywhere), Consuming and Creating Web Services very easily, Usage tracking, etc, take a serious look at what Blue Titan is doing. Not only can you consume and manage Web Services without programming, but you can also create web servies VERY easily using Blue titan Studio. It is now completely based a SOA
    http://www.bluetitan.com/

  112. Factually Incorrect by man1ed · · Score: 3, Insightful

    This guy is trolling. From his post:
    I've found Red Hat 9 most impressive.
    ...
    The included version of Wine ...


    From the Red Hat 9 Release Notes:
    The following packages have been removed from Red Hat Linux 9:
    ...
    - wine - Developer resource constraints

  113. Wrong technology possibly by orionware · · Score: 1, Interesting

    I think you are not necessarily looking at the wrong OS (Although I'd go Linux and we do often).

    We have a client that serves 140-160 concurrent connections at once for about 16 hours a day. Our environment:

    1 Dual Xeon 2Ghz system 2G Ram
    1 Dual Xeon 2Ghz running MSSQL 2000

    Coldfusion MX which is java based. The application is heavily consuming web services.

    No problem whatsoever. The boxes are both running MS Server 2k. These boxes are not even the latest technology.

    I know you hardcore asp/.net developers get mighty testy and will say this is simply not possible, well it is. I know it's hard to stomach something as simple to learn as Coldfusion scaling better than your convoluted solution. .NET btw is really trying to become what coldfusion is, making things tags more tag based and packaged with pre built components.

    And coldfusion is java based so the application server runs on windows/solaris/linux. portable. much quicker to design and build out applications.

    --


    Karma means nothing to me, so suck it...
  114. Another Day... by errxn · · Score: 1

    ...another /. "Bash Microsoft" feeding frenzy. Sure, they have their faults, but the zealotry and bias here really is starting to get old.

    --
    In Soviet Russia, Chuck Norris will still kick your ass.
    1. Re:Another Day... by Anonymous Coward · · Score: 0
      I know - it's pathetic really.

      /. question: "I have a requirement for a new electric stove. Gas is not an option in my area, they have no plans to install gas in the near future and I'm also allergic to it. Let me know which electric stove I should buy."

      OSS Zealot reply: "You're stupid. Why the hell do you want an electric cooker? Get a gas one. It's cheaper and better. Allergies are stupid. Your question is vague and illustrates how stupid you are. Finally, I'd like to tell you how stupid you are again. PS Get gas!"

  115. You are a... by jabbadabbadoo · · Score: 1
    ...Java troll, I suspect. Fact is, .NET is superior to Java, portability aside.

    "Does anyone have first hand experience with scaling .NET to support 100+ concurrent requests on a decent 2-4 CPU box with web services?"

    Yes. While your numbers lack unit, supporting 100+ concurrent request is no problem at all. Compared to, say EJB's on top of JDBC, scaling with .NET over ADO is a breeze, given a good db schema and a good topology. Architecture is key - learn it.

  116. Talk about setting up to fail ... by Chromodromic · · Score: 2, Insightful

    Dude, do you read Slashdot?

    Because, off the cuff, I can think of at least five other sites, with dozens of other readily contacted individuals, that are going to give you more accurate, more informed, and more sympathetic answers than the site on the Web that publishes a depiction of Bill Gates wearing Borg gear.

    Moreover, in case you haven't noticed, the vocal readership here isn't exactly a group of Windows devotees. Whenever the new Linux kernel comes out the admins just issue an announcement that ends with "You know what to do ..."

    So unless this is a scheme to generate loads of comments designed to convince your client to implement FreeBSD instead ... wait. AHA!

    --
    Chr0m0Dr0m!C
    1. Re:Talk about setting up to fail ... by ratfynk · · Score: 1

      Scale up Hot mail with MS servers and watch what happens. Same thing as last time. Bill and co runs out and buys a bunch of stuff to run more bsd servers. Hello MS servers are fine for in house business nets but on the net they suckzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz! time out!

      --
      OH THE SHAME I fell off the wagon and use sigs again!
  117. One advice by zurab · · Score: 1
    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."

    I don't use .Net so I can't give you a lot of advice, but if you are looking for a meaningful database replication, use Oracle.
    1. Re:One advice by bmajik · · Score: 1

      oh, you mean the meaningful replication that took down orbitz for a day or two ? :)

      --
      My opinions are my own, and do not necessarily represent those of my employer.
  118. Match.com Developer's Blog by jalilv · · Score: 2, Interesting

    Match.com has ported their website to .NET. One of the developers of the site, Jason Alexander, has posted a post mortem on his blog. While they have 45 servers in their web farm running the site, he may be a very important source that can answer your question.

    - Jalil Vaidya

  119. This is sad by l810c · · Score: 1
    Not 1 single answer to the question. I guess Slashdot is the wrong forum for Microsoft tech questions.

    I use ASP against SQL2000, but mostly for low volume intranets. I haven't even gotten close to any performance problems. So I'm not much help either :(

  120. My take on the world� by (H)elix1 · · Score: 1
    First off, I tend to spend most of my time in the J2EE/Unix world, so take this with the appropriate grains of salt. I have had to deal with the beast here and there, so...

    support 100+ concurrent requests on a decent 2-4 CPU box
    This should be easy, all Microsoft bashing aside. If it can't handle that, look to your code. Without having any more info, I'd guess you are probably making way to many RPC calls. I did an ASP.NET front end connected to Apache Axis (WebServices via JavaBeans) on the back end to search and pull content. Not ideal but with the ASP caching tags, it only did one or two RPC's a minute after a bit. Treat all your calls like it has the overhead of SOAP and refactor.

    Lots of database questions...
    Sounds like you are not caching anything in your business logic. You may have 100+ unique concurrent user requests, but that should not translate into 200+ concurrent database requests. Tier your applications, find where things are bottlenecking, and re-use wherever possible. RAM is cheap compared to making the same query over and over again.

    obvious answer is 'buy more systems', but what if your customer says I only have 20K budgeted for the year.
    I'm probably way to cynical, but I've seen customers pay you to turn water into house wine and then expect a smashing merlot. There are many code optimizations you can make, but the cost of custom software is usually enough to make a hardware vendor blush. Most customers are more than happy enough to burn your time if you let them...

    One could argue 5 cheap systems for 3K each...
    Real world benchmark? Eight dual CPU x86 boxes are serving up 1.5M hits/day of mostly static content on one of the systems I worked on. Know where you need CPU, I/O, and/or network bandwidth. First off, not all 'enterprise' hardware is...Spending more does not make it better either. Do your homework on what is inside the server. Think of dropping $70k on a Hummer or a Porsche - they have different strengths. You could spend a lot of money on one box. Perhaps wedding singer is a better analogy.

    A bunch of reliability/failover issues.
    If the customer demands five 9's, w00t! They will be pulling out the checkbook. Real fail-over is expensive. Find the middle ground and make sure you don't do something stupid in your SLA.

    If reliability really matters, you probably want a Unix box. A couple CPU Solaris or AIX box is not that costly. Course, if someone else has to carry the pager...I'll just quietly step away from the soap box...

  121. From My Experience....not quite feasible. by lysium · · Score: 1
    I am a frequent user of Remote Desktop software. Such things are great for administrivia -- installing new software, minor reconfigurations, printer setup, and the like. But when a Windows machine -- server or desktop -- has Problems, it is usually the kind of Problem that wipes out higher-level applications....like the Remote Desktop service(s).

    I can't really comment on Terminal Services, which is probably more integrated into the OS. My highly-profitable, medium-sized employer cannot afford the licensing fees...

    ---------------

    --
    Together, we will drive the rats from the tundra.
    1. Re:From My Experience....not quite feasible. by spongman · · Score: 1
      FYI: all versions of NT since 2000 except 2kpro (ie. 2ksvr, 2kadv, xp, 2k3) allow you to run TS in remote administration mode without requiring additional licenses.

      See this for more info.

    2. Re:From My Experience....not quite feasible. by Anonymous Coward · · Score: 0

      SEXABUSE ME BABY

      George's in the bedroom
      Sexabusin' Mom
      Sister's in the cellar
      Sexabusin' Tom
      All I got is vaseline
      I wanna know how come

      Come on come on come on
      Sexabuse me Baby
      Violate my bod
      I wanna be molested
      Oh my god

      Hands in my pants
      It ain't no use
      I never get a chance
      At sexabuse
      Try me out Baby
      I won't refuse

      Come on come on come on
      Sexabuse me Baby
      Violate my bod
      I wanna be molested
      OH MY GOD

  122. Did you know benchmarking .NET is illegal? by Anonymous Coward · · Score: 0

    This supplement EULA was slapped on my box when the last microsoft hole was patched.

    SUPPLEMENTAL END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE
    IMPORTANT: READ CAREFULLY--These Microsoft Corporation ("Microsoft") operating system components, including any "online" or electronic documentation ("OS Components") are subject to the terms and conditions of the agreement under which you have licensed the applicable Microsoft operating system product ("OS Product") described below (each an "End User License Agreement" or "EULA") and the terms and conditions of this Supplemental EULA. BY INSTALLING, COPYING OR OTHERWISE USING THE OS COMPONENTS, YOU AGREE TO BE BOUND BY THE TERMS AND CONDITIONS OF THE APPLICABLE OS PRODUCT EULA AND THIS SUPPLEMENTAL EULA. IF YOU DO NOT AGREE TO THESE TERMS AND CONDITIONS, DO NOT INSTALL, COPY OR USE THE OS COMPONENTS.

    NOTE: IF YOU DO NOT HAVE A VALID EULA FOR ANY "OS PRODUCT" (MICROSOFT WINDOWS 98, WINDOWS ME, WINDOWS NT 4.0 (DESKTOP EDITION), WINDOWS 2000 OPERATING SYSTEM, WINDOWS XP PROFESSIONAL AND/OR WINDOWS XP HOME EDITION), YOU ARE NOT AUTHORIZED TO INSTALL, COPY OR OTHERWISE USE THE OS COMPONENTS AND YOU HAVE NO RIGHTS UNDER THIS SUPPLEMENTAL EULA.

    Capitalized terms used in this Supplemental EULA and not otherwise defined herein shall have the meanings assigned to them in the applicable OS Product EULA.

    General. The OS Components are provided to you by Microsoft to update, supplement, or replace existing functionality of the applicable OS Product Microsoft grants you a license to use the OS Components under the terms and conditions of the OS Product EULA for the applicable OS Product (which are hereby incorporated by reference) and the terms and conditions set forth in this Supplemental EULA, provided that you comply with all such terms and conditions. To the extent that any terms in this Supplemental EULA conflict with terms in the applicable OS Product EULA, the terms of this Supplemental EULA control solely with respect to the OS Components.

    Additional Rights and Limitations.
    *If you have multiple validly licensed copies of the applicable OS Product(s), you may reproduce, install and use one copy of the OS Components as part of such applicable OS Product(s) on all of your computers running validly licensed copies of the OS Product(s) provided that you use such additional copies of the OS Components in accordance with the terms and conditions above. You may not disclose the results of any benchmark test of the .NET Framework component of the OS Components to any third party without Microsoft's prior written approval. Microsoft retains all right, title and interest in and to the OS Components. All rights not expressly granted are reserved by Microsoft.

    IF THE APPLICABLE OS PRODUCT WAS LICENSED TO YOU BY MICROSOFT OR ANY OF ITS WHOLLY OWNED SUBSIDIARIES, THE LIMITED WARRANTY (IF ANY) INCLUDED IN THE APPLICABLE OS PRODUCT EULA APPLIES TO THE OS COMPONENTS PROVIDED THE OS COMPONENTS HAVE BEEN LICENSED BY YOU WITHIN THE TERM OF THE LIMITED WARRANTY IN THE APPLICABLE OS PRODUCT EULA. HOWEVER, THIS SUPPLEMENTAL EULA DOES NOT EXTEND THE TIME PERIOD FOR WHICH THE LIMITED WARRANTY IS PROVIDED.

    IF THE APPLICABLE OS PRODUCT WAS LICENSED TO YOU BY AN ENTITY OTHER THAN MICROSOFT OR ANY OF ITS WHOLLY OWNED SUBSIDIARIES, MICROSOFT DISCLAIMS ALL WARRANTIES WITH RESPECT TO THE OS COMPONENTS AS FOLLOWS:

    DISCLAIMER OF WARRANTIES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND ITS SUPPLIERS PROVIDE TO YOU THE OS COMPONENTS, AND ANY (IF ANY) SUPPORT SERVICES RELATED TO THE OS COMPONENTS ("SUPPORT SERVICES") AS IS AND WITH ALL FAULTS; and Microsoft and its suppliers hereby disclaim with respect to THE os COMPONENTS AND SUPPORT SERVICES all warranties and conditions, whether express, implied or statutory, including, but not limited to, any (if any) warranties or conditions of OR RELATED TO: TITLE, NON-INFRINGEMENT, merchantability, fitness for a particular purpose, lack of viruses, accuracy or c

  123. Cell Phone by Tony-A · · Score: 1

    I am sorry, but that is just on crack (and so is whoever modded you "Insightful".) In fact, with Terminal Services and the rdesktop client program, you can even administer a Windows desktop or server from a Linux or Mac box. Yes, you can do remote reboots, remote software patches, remote software upgrades, and pretty much everything else.

    IF
    You have a responsive high-speed connection. Cell phone is pretty slow, makes dial-up look like a speed demon. For anything but trivial, driving there would be faster.

    Nothing much goes wrong.

    1. Re:Cell Phone by Anonymous Coward · · Score: 0

      uh, what? 3G and 2.5G are no dialup modems. they're not some lame coupler taped over your 1989 bag phone.

  124. Some practical suggestions by Anonymous Coward · · Score: 1, Informative

    Some practical suggestions, in no particular order: 1. Try using XML serialization instead of web services, SOAP etc. -- works very well with SQLXML running on SQL Server 2000. 2. Next version of SQL 2000 should support C# to write things like triggers. For now, you could try calling via SQL's COM support, or even try SQL Workflow Services (which is a little slow unforunately). 3. Reflection *is* slow -- keeps checking security and other crap. Try to see if your code could be more object-oriented at compile time, failing which, you can write custom emitted IL from .NET that beats reflection hands-down in speed. 4. I've used replication on a system that serves 48,000 documents in a intranet to over 10 countries and up to 18,000 documents per day. If you use transactional replication and are happy with one-way replication (you may be able to rejig your model to do this), it works quite well and reliably too. Cheers, Glen Low Pixelglow Software email: glenlow at pixelglow.com

  125. sure it "can", but it probably won't by 73939133 · · Score: 1

    There is nothing in the .NET architecture that keeps it from scaling in principle. I mean, it's basically Java with a few bugs fixed in the language definition.

    But don't hold your breath for Microsoft to actually deliver a complete and efficient solution. It took Sun and IBM years to even get the flaky, bloated, and mediocre system they have now (Java 2 and J2EE). Microsoft is further behind and less experienced with these things than Sun and IBM.

    Engineering is a game of tradeoffs. If you want an all Microsoft and all .NET solution, you have to pay the price for it. If you have a constrained budget, you need to make other tradeoffs to handle the same load.

    Java might be a slightly better tradeoff for you. Like .NET, it's proprietary and bloated, but it's quite a bit more mature, and you could still stay on Windows.

    If you really want your system to perform well on limited hardware, ditch the C#/Java "frameworks", stick with plain Apache as much as possible, and write any dynamic content as close to the metal as you can (and, yes, you may have to implement your own caching and connection management--it isn't rocket science). You may also want to ditch the relational database--they are a huge bottleneck and many dynamic web applications just don't need the features.

  126. Re:I don't understand!! by x-guru · · Score: 1

    ....why I have to suffer everyday coding in .Net languages (sh*t) when I have spent years perfecting my knowledge of Java!!! Help me! How do I get back into the Java world??? Jobs? x

  127. Get another job. by duffbeer703 · · Score: 1

    If you have a very limited budget and very specific task to accomplish with that budget, you should be sticking with proven (or known) solutions rather than whatever is the "hot, new thing".

    If I was your customer, I'd fire you.

    --
    Conformity is the jailer of freedom and enemy of growth. -JFK
  128. Answer: No by Anonymous Coward · · Score: 0

    EOM

  129. Re: Nazi-Guns by Anonymous Coward · · Score: 0

    Hehe ... face it pad'res, far as have-code-will-travel, *nix is strictly a big_business_Nazis gun. Wonder how TUX would look with black boots and a Mauser_98? Ah well, never mind.

  130. As a former Microsoft Software Engineer... by Anonymous Coward · · Score: 1, Interesting

    Yes, it does scale, and quite well. There were some bugs in the original release, especially with the garbage collection and creating objects larger than 64kb, but the most recent version has none of these.

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

  132. Ask to Microsoft by Tuqui · · Score: 1

    and pay their price for the answer.

  133. ignorance made me post that incomplete post above by fishdan · · Score: 2, Informative
    Phew, it's really complicated:

    [shell]# mysqldump databasename > filename.sql

    http://mysql.new21.com/doc/en/mysqldump.html

    --
    Nothing great was ever achieved without enthusiasm
  134. Of Course It Can Scale! by Not+The+Real+Me · · Score: 1

    When has M$ ever lied?

    Remember, they started the trustworthy computing thing a couple of years ago.

  135. You aren't exactly wrong regarding databases... by 3770 · · Score: 3, Insightful

    But you aren't exactly right either.

    You are simplifying when you say to not 'embed applications' in the DB. I will interpret 'embedding applications' in the DB as doing business logic in the database.

    Many times it is more resource efficient for the _database server_ to perform some of the business logic in the _database server_.

    It can be more efficient for the database to do some operations which results in a relatively small result set rather than pushing a lot of data up to the application server.

    The bottleneck will usually not be the CPU on the database server, it will be the disks. And the disks are better utilized when you do the manipulation inside the DB server itself.

    This breaks the separation of the business logic tier, data access layer-paradigm. Design that is easy to maintain and design that is efficient to execute don't always go hand in hand.

    I'm a pragmatist. I say, make an n-tier application. Make an object oriented design. But don't be rigid, break the rules if it suits your purposes. Hey, I even use a goto every once in a while when it makes my code faster or simpler.

    --
    The Internet is full. Go Away!!!
  136. debian by SHEENmaster · · Score: 1

    Well, 6 floppies may cost more than 3 CDs these days, but with net booting it is even cheaper than windows. You also have the option of a single min-cd, which takes less time to download than windows.

    In fact, considering the difference in the bandwidth available on Debian mirrors compared to those generous folks mirroring Microsoft, I don't see why anyone would wait for Windows.

    --
    You can't judge a book by the way it wears its hair.
  137. Re:ignorance made me post that incomplete post abo by more+fool+you · · Score: 1

    either you and your moderator lack comprehension skills, or mysql now supports mssql.

  138. Of course ignorance is an excuse! by msobkow · · Score: 1

    It's just not a very good one.

    While there is a lot you can do with windows scripting and/or batch files and the command line, it's not well documented if you need to go that route.

    I prefer *nix systems for many reasons, but realistically I found most server-class systems have some sort of facility for reasonable scripting and automation. The problem is that every system is a little bit different for how you accomplish those goals, and Win32 makes it really really hard to get the information you need to do so.

    Mainframe, VMS, *nix derivatives, and more esoteric beasts like Tandem all have the means to accomplish the goals the poster set out -- you just need to learn how.

    Besides, if your user community is in such a damned hurry to get an account that they need to call you on the cell to do so, your client has far more resource management issues than being able to call in to add a user. Someone should be trained as your backup, if only because you could get hit by a bus. Requests should be properly planned and scheduled, not based on last minute phone calls -- rush jobs are more likely to have mistakes that could even compromise system security.

    --
    I do not fail; I succeed at finding out what does not work.
  139. Use .NET remoting by tjstork · · Score: 1


    To get .NET to scale that well, you must absolutely forget about IIS and web technologies for the server and use .NET remoting for your middle tier and have your client be a WinForms application. .NET remoting is easy to set up, easy to program, and, it is MUCH MUCH faster than using web services.

    MSMQ is geared for solving problems of disconnected delivery and total quality of service. You pay for those guarantees in performance. The best implementation I've heard of roughly runs in the hundred or so messages per second, and to get that you have to use threads. .NET isn't playing too well with MSMQ yet. You should understand your application carefully before you use MSMQ. Many people that think they need it don't. On the flip side, many people that don't think they need it do.

    --
    This is my sig.
  140. I say they have the wrong business model by 3770 · · Score: 1

    A normal desktop machine can do about 100 transactions per second. This is limitied by the number of random writes an IDE drive can do per second.

    And this system will probably be limited by disk writes, not by C# or web serving.

    Anyway, 100 transactions per second and a normal user makes maybe one transaction per 10 seconds And he stays for maybe 5 minutes. During that period he causes 30 transactions. The system can therefor handle 3.33 users "per second".

    This in turn means that the system can handle about 1200 visitors per hour.

    If they can't make enough money off of 1200 visitors per hour to buy a second machine they shouldn't be building the first machine to begin with.

    I'm guessing that the person that made up the requirements is a bit clueless and decided to play it safe.

    --
    The Internet is full. Go Away!!!
    1. Re:I say they have the wrong business model by 3770 · · Score: 1


      It is even worse. I am clueless too.

      It should be _12000_ users per hour.

      Fortunately, it only makes my point even more valid.

      --
      The Internet is full. Go Away!!!
  141. This thread reminds me of a favorite catchphrase by neccoant · · Score: 1

    "install linux, problem solved" is bannable over at SA now...

  142. Two different questions. by FatherOfONe · · Score: 2, Interesting

    Your first question is can .Net scale? Answer is yes. The second question is can .Net scale on your budget? That is much harder question to answer. My initial reaction is no, given your concernes and the amount of effort you have already put in to it.

    I am by no means a fan of Microsoft. To be honest I hope that your projects dies, and this can be added to the long list of people that I know who bet the farm on Microsoft just to either have far more NT servers than employees, or they go out of business... but I will give my 2 cents.

    You seem to have defined some of the basic bottlenecks of performance. What you appear to leave out is what happens at certain loads. Does the system die? Probably not, but what happens to the response time? What are the acceptable requirements for the system? You may find 25 seconds for a page to load unacceptable, but the users may not. Either way it will let you know what goal you need to hit. Can you configure your DB to use less or more RAM?

    Next, is it for sure processor load that is the issue? My guess is that you would be far better off with an x86 chip with more cache and stronger memory bandwidth than a standard P4. Granted this involves another hardware purchase, but if that becomes an option at all look at an Operton or Xeon chip in a 2 way system. You can get one of those systems well under 4 grand. The Opteron flat out rocks and the new Xeon 3GHZ with 1MB cache should be hitting the streets soon.

    Not knowing much about the dark sides languages (Java is my thing), are you using one database connection throughout your application? Not returning it back to a connection pool, but storing it in the session object? This can have a significant impact on performance.

    Seeing that you said you talked to a SQL Server expert (I have never met one), I will assume that he looked through the code and optimized all the SQL. Everyone seems to be taking cheap shots an d saying you should have used product X, well here is my cheap shot... Next time use Oracle! I repeat next time use Oracle! Ok, it bears repeating one more time.... next time use Oracle. Granted it is expensive, but you are learning a lesson that a ton of shops here in Indy have had to learn the hard way. Well what the heck next time use Java + JBOSS or Resin + Oracle + Linux. In our environment it flat out rocks.

    What else is running on the box? You can buy a sub $500 machine to move all the DNS AD stuff to it. Not sure how much that impacts performance though... it may not be worth it. But my point is to turn off every unused service. Also, I will assume that you have applied every service pack, and called Microsoft. Since you are using ALL their products, you would think that they would help you. God I would love to be in on that call!!! All I ever hear them say is "You need to get off of product x" and use our product.

    Generally what I find to be the issue with performance is SQL and DB access. The code takes around nothing to execute processor wise. Now what kind of DB are you talking about? How many tables and how many rows in each table. What kind of transactions do you do (mostly inserts or querys). Are the indexes setup correctly on the tables? Could you flatten some relationships down?

    --
    The more I learn about science, the more my faith in God increases.
  143. Sounds like a troll by Anonymous Coward · · Score: 3, Interesting
    But I'll bite. I have a little experience with .NET stuff. From my limited knowledge of a couple high profile blunders in the financial industry, windows is very tough to scale to the levels Unix can (obvious duh). I will qualify this with real details. I'm posting AC for a reason, but you can probably find the details through google. The blunder I heard about was about a company that provides trading systems (OMS/Compliance), which managed to get their foot into two big trading firms in NY. The company went in with their solution which was apparently C++/Ole based app server with some kind of messaging system. I should mention this is second hand info, but it is well known in the industry for trading systems.

    The kind of loads big firms need to support are in the order tens of millions of users with millions of transactions a day. What I mean by transactions is buy process which can contain a dozen to a couple hundred individual orders. In other words, the number of complex insert/updates is tens of millions to hundreds of millions a day.

    For example, big firms like fedility, city group, thompson, vanguard, and schwab have millions of customers with hundred thousand plus portfolio managers. throughout a given work day, a portfolio manager may generate a couple hundred orders and submit them in one or two batches. This is done because it's cheaper for them. Can .NET scale well? Like what others say, it can if you design it right. For example, if you use MSMQ for it's designed job it works well. If you write your queues for MSMQ with plain hashtables and you don't index the messages, your chances of supporting 10K+ messages a second aren't likely. On the otherhand, if you write custom queue's, profile the messages, index them efficiently and make sure no other heavy weight stuff sits on the same box it can scale. Is that easy? No. You have to understand the problem you're trying to solve. Let's say hypothetically you have insane performance requirements like 100K+ messages a second for a messaging tier, you're better off using IBM MQSeries. Can you do the same thing with MSMQ? Sure if you build a bunch of custom stuff, write the messages to a database, index, partition and load balance. It will probably take you 8-12 months to do it, but you can with the right people and good hardware. Would you want to use XML for that messaging system? The answer is obviously no, if you want to keep the cpu and memory loads manageable.

    Many people have claimed they support thousands of transactions. Sure if all you're doing is insert into one table. Simple stuff right. Financial transactions like trading systems do a heck of alot more than a simple insert into one table. More often than not, a trade transaction with 100 orders goes into the database, affecting several tables. The middle tier then has to get events, and check the order to make sure it is valid and does not violate regulations or other compliance requirements. Sometimes it requires analytics like Tibco or what the industry calls Business Intelligence. Regardless of the server, stuff like analytics take time (seconds). Obviously if you're running complex analytics that scane 10 million rows of data with several joins in the query, you're better off using an analytics server like OLAP. Can .NET handle 1K analytics requests per second? If it's cached sure. If the nature of the data is very dynamic, like realtime trading systems, no way. doing that is very hard and most people avoid it.

    The key here is setting the expectations accurately, so your customer knows what is realistic. If you have a hard time communicating that to your customer or management, than find another job.

  144. instrument the app! by mikeee · · Score: 1

    Figure out what your tiers are (if this isn't obvious, that's a big red alarm on the architecture, but anyway). Set it up so that you can time the transaction passing through each tier on an unloaded system. Find the bottlenecks, hammer them away, repeat.

    Oh, and figure out what you mean by 200 concurrent users. Logged in? Making a request? Which one?

    And go get a copy of Raj Jain's "The Art of Computer Systems Performance Analysis", for heaven's sake.

  145. Re:ignorance made me post that incomplete post abo by fishdan · · Score: 1
    Son of the beach! You're right, you wrote:

    I hit a snag: what's the command to dump a running MSSQL server into a file on UNIX?

    I apologize, I assumed you actually meant MYSQL because I'd never seen the acronym MSSQL before, and I certainly would never have guessed there is a MSFT product that runs on Unix. My bad.

    --
    Nothing great was ever achieved without enthusiasm
  146. This question is a troll by symbolset · · Score: 1

    And half the comments are spam. What a waste of bandwidth.

    --
    Help stamp out iliturcy.
  147. Get Creative by jkichline · · Score: 1

    There are many things you can do with the infrastructure you but forward. I have found that sometimes the way to do it in found in the ASP.NET or ASP book, is not the fastest method, but the most flexible. Have you considered a mechanism for caching in memory as to reduce the amount of processing on the database? DB calls require processing and disk access. In-memory cache could be faster, and memory is cheap. $200 / 1Gb???

    I don't know what kind of system you are building, but consider something like this...

    1. Request information from your code... (compiled code would be faster of course)
    2. Code knows what you are looking for (compare parameters) and sees if it was processed recently.
    3. If it was processed, point the code to the cached version in RAM.
    4. If cached version is not in RAM, look on disk in a managed way (it knows where its at and doesn't have to look around)
    5. If not there, go to the database and regenerate the cache for that item.

    Now obviously this wouldn't be truly realtime. But I would say that most information doesn't flow in realtime. If it did, a single client-server config isn't suitable.

    Also, think about updating the cache when any changes are made. Keep it in the DB so you can "clear" the cache if something gets messed up. You could even use SQL Server and place a trigger on table that when changed calls a DLL for more advanced processing. You have a lot of options, but they are not in the "book".

    This is not just an MS workaround either, all developers could evaluate their code requirements. It may be a pain to program in this way, but the gains could be significant.

    Keep in mind that ASP.NET offers this level of caching without custom coding, but custom built stuff would allow more flexibility...

  148. But first; by Anonymous Coward · · Score: 1, Funny

    Can anyone tell me (in plain English) what .NET actually _is_ ?

  149. Re: Idea From Left Field by Anonymous Coward · · Score: 0

    You could try a few of the Wal-Mart $300 chepo desktops. For $20K you could by quite a few of those even if you must pay the MS tax for Win2003. If you must do .NET and you must do $20K or less, you could by quite a few of those 1.2GHz boxes and even keep 2-3 around for parts spares.

    Just an idea.

  150. Once again RAIC is the answer. by Glonoinha · · Score: 1

    Some answers :
    -currently there isn't a mature messaging server and MSMQ is not appropriate for high load messaging platform.

    MQSeries from IBM. It is pretty hardcore.

    On the database side, perhaps DB2 ... heck I dunno about that one. How big is your database and is it primarily lookups (reads) or primarily reads?

    On the machine side, RAIC baby. Redundant array of inexpensive computers. For $20,000 you can put up an array of 25 Dell PowerEdge 600SC machines with a gigabit network backend, each machine a 2.4GHz P4 and a gig of RAM.

    You do not need a $25,000 server. Heck I bought a $20,000 server about four years ago, it was a quad Xeon 450MHz machine with a gig of memory and like 36G of scsi raid drive space. Makes me laugh now - buying one uberBox is like buying a new car - half the value of it is lost the first year, with half of that happening the day you buy it.

    I am sure your app is bad ass, but I just can't envision you burying a matrix of 25 machines on a gigabit switched network, each box running 2.4GHz with a gig of RAM, with one or two big machines running your database back end.

    --
    Glonoinha the MebiByte Slayer
    1. Re:Once again RAIC is the answer. by Anonymous Coward · · Score: 0
      On the database side, perhaps DB2 ... heck I dunno about that one. How big is your database and is it primarily lookups (reads) or primarily reads?

      Hmm, that doesn't leave you with much wiggle room, hmm?

    2. Re:Once again RAIC is the answer. by Anonymous Coward · · Score: 0

      You should see me in the courtroom :

      How do you plead to these guilty charges the state has brought against you?

  151. It can be done, with some hard work... by pennystinker · · Score: 2, Informative

    First of all, let me start out by saying that under certain circumstances YES .NET-based web applications CAN scale to 100+ concurrent connections on the relatively limited hardware you speak of.

    In order to do this you WILL (here's where I get flamed, but frankly, I don't care) need to examine and deal with the following:

    1. How database intensive is your application? Despite claims by the DB suppliers RDBMS packages are slow.

    Every query, even trivial ones like:

    SELECT 0 as foo from bar

    will require milliseconds to execute AT BEST. This is because you need to serialize the SQL request from your "middle-ware" (in this case the ASP.NET runtime instance) place this request into a inter-process communication channel (say a network buffer) then block. The network stack has to sent it over the wire, a thread on the SQL server machine has to be woken up to process the incoming query. The query has to be parsed, then executed. The results must follow the reverse route eventually waking up the blocked thread on the "client" (the machine running the ASP.NET runtime that initiated the call in the first place) parse the result set and present that result set to the rest of the application (via a "reader" object). At best this process is on the order of milliseconds per request. If you can get away with cleverly caching data in the application server then this task that originally took milliseconds now gets done in microseconds. Bottom line: eliminate calls to the database where ever you can. There is a down-side to this: more build time costs more money. Plus your code gets more complex. Evaluate the trade-offs. IF caching pays-off in your application it's a lot cheaper to add more application server boxes than it is to pay the crazy expensive prices to beef-up SQL server.

    2. Multiple network cards per machine. When you did your benchmarking how much resource usage was there? On the machine running the Web application when you reached max transaction rate was the CPU at 100% If not you may be encountering either a network or DB bottleneck. Look at the DB was it maxing out (CPU + DISK), if so you need to focus your attention there, i.e. .NET is not the bottle-neck the DB is (which is USUALLY the case). If the DB machine was able to handle more load then you may be encountering a network bottleneck. Try adding more network cards to the application server and the DB server. Connect multiple times to the DB server. Allocate a network stack per CPU on the DB server if you have multiple CPUs (there is stuff in Microsoft's knowledge-base about how to do this). Do the same thing on the Application server. Make sure that under maximum transaction load that both the application server and the DB is maxed out, at least this way you know you are squeezing the maximum throughput out of your machines.

    3. Avoid using Web services "inside" your application. You may be using Web services to retrieve data from within your application code. Web services have a lot of friggin' overhead and are not particularly speedy. If you have to use Web services, then also try caching if you can. Any time you application has to wait for some other process (perhaps on a different machine) you will be incurring a big time penalty.

    4. Where possible try to static-ify you output. This really is just another kind of caching. Many Web sites (including Slashdot) use this technique. It's particularly useful for news type sites. Write the output of your processing to the hard disk the first time it's requested then re-use this pre-generated file for subsequent requests. Update on a time-basis.

    5. Yes, I'm going to say it: look at your DB schema and see if you have opportunities to de-normalize data to simplify queries. Joins are expensive, and query optimizers often don't do a great job. This approach can't always be used, but it can improve query performance orders of magnitude. What you may want to do is keep a really nice normali

  152. I can't address all your questions, but ... by Anonymous Coward · · Score: 2, Informative

    I don't have direct experience with your situation, but I do understand scalability fairly well for non-trivial applications that interface with many different systems over many different protocols.
    1. currently there isn't a mature messaging server and MSMQ is not appropriate for high load messaging platform.
    No experience with MSMQ. I've used commercial pub/sub solutions to push over 3M messages a day to a 2 CPU Sun box.
    2. SOAP is too damn heavy weight to scale well beyond 60 concurrent requests for a single CPU 3ghz system.
    Maybe in the MS world. In the Sun world, we handle 400 concurrent over Gig Fibre. Kernel param tweaks were definitely needed tho.
    3. SQL Server doesn't support C# triggers or a way to embed C# applications within the database
    Use a real DB server. DB2, Oracle.
    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?
    A 64 CPU box isn't $6M. More like $2.8. Get a better supplier and if you are spending that kind of money, don't ever buy 1. You need at least 2. How else are you going to test and have a DR site? Don't put them in the same state either.
    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
    Earning your consulting paycheck. I've deployed 450MHz 2 CPU Sun boxes that support 400 concurrent users (WLS), with a pub/sub incoming queue from multiple MF systems and retrieve on average 30 items from 8+ backend systems per user request. All while running a10 GB Oracle DB managing the incoming queues. To verify the scalability, we performed automated load testing on our test server. The production box is average 40% CPU loaded with peaks in the mid-70s%. It has been too successful, so the customer wants to add more functionality. This means we're splitting the app from the DB and adding a current generation 280R for each app instance.(3 boxes: dev, test/DR, prod).
    6. I've been been running benchmarks with dynamic code that does quite a bit of reflection and the performance doesn't impress me. You've answered your own question.
    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
    You've answered your own question.
    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.
    No experience. Generally, partitioning of time-based tables is a good thing when you are worried about data fragmentation. Better to drop an old table parition than have the entire table become fragmented. I've used a monthly partitioning successfully.
    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."
    There are other solutions, but they tend to be expensive. GoldenGate have an impressive replication tool - I don't know if it works with MS-SQL tho. It does work with all the big guys - Oracle, DB2, Teradata, so I wouldn't be surprised.

  153. A short guide to scalability by Earlybird · · Score: 5, Interesting
    The term scale in this context refers to the capacity for the software to meet growing requirements.

    In other words, if you define a target performance metric and find that a single user can access the system at better or equal that speed, then a system can be said to "scale" if it still performs within that metric, on average, when 20, or 50, or 100, or whatever users are accessing the system.

    Of course, due to the nature of computing systems, any system will hit a point where it will no longer scale to the requirements with the same hardware configuration. At that point we start talking about scaling upwards through hardware upgrades. But you can only upgrade hardware so far, at which point, again, the system will reach a hard limit on its ability to perform as required.

    The next logical step is to scale through redundancy: If a system can, in whole or (more commonly, as in "multi-tier" web clusters) in part, run concurrently in multiple instances, then you can scale by adding more instances of the system or system components: Multiple web servers, multiple "back ends", multiple database servers, and similar. This kind of organic scaling can be, in practical terms, near-infinite if a system is designed well; for example, multiple mirrored web servers serving static pages will scale indefinitely, whereas a trading system requiring inter-process synchronization through a message-queue system will most likely not.

    In scalability terms, efficient redundant clusters is the holy grail. It's the way Google scales, and it's how the core parts of the Internet scales.

    In the context of this Slashdot story, since the poster faces limited possibilities for investing in expensive hardware, he might consider going for the "many cheap boxes" route, if his Microsoft-dominated infrastructure permits it.

    1. Re:A short guide to scalability by Anonymous Coward · · Score: 0

      That's no context. That's just crazy moon talk.

  154. Are you open to suggestions? by AstroDrabb · · Score: 1

    When you are faced with a problem like this you should look at all possible solutions, whether that solutions is .Net, Java, PHP, etc. I work as a programmer for a fortune 500 company and we just finished a large evalution for our corporate systems and what platform to migrate to between Java and .Net. We did a lot of in house testing and paid big bucks for external recommendations from Sun, MS and a third party. .Net offered the lowest learning curve for people comming from ASP and VB. However, Java offered the best solution overall for us. Java scales very well, is rock solid, very secure and can migrate to just about any platform out there. My personal reccommendation for someone with a small budget is to seriously consider two 2-way Linux servers that you could get starting at around $1,500 each. You could get a hardware load balancer to put those two boxes to work. You could even buy a cheap third 1-way box to do the load balancing. This way if one box goes down, they still have the other one. With the one bigger box, they are SOL if it goes down. Now as far as the solution goes. You are only limited by your imagination with Linux. You could deliver a solution with C, C++, PHP, Perl, Java, JSP. The Java/JSP solution will let you do just about anything you want. LDAP, DB, server applications, web with JSP/Servlets, etc. The other bonus with Java is that it has been around for a long time now and has proven to be secure, stable and scalable. We are running J2EE on small boxes all the way up to some huge Sun iron. And with the load balancer, as budget allows you just slap in another box and you have just scaled your application. Though load balancing with a DB is a little more work and is sometimes better to use one larger box.

    --
    If Tyranny and Oppression come to this land,
    it will be in the guise of fighting a foreign enemy. -James Madison
  155. Depends on what you are doing by Anonymous Coward · · Score: 0

    I have had excellent success with .Net Also there is a patch (actually combo of patch and reg tweak) for MSMQ to properly handle memory space (I believe it was packaged in sp4) It all depends on what you do. I have roughly gotten over 300 transactions (small) per second with .Net on a single dual pIII 1GHz.

  156. My experience... by earache · · Score: 1

    A site I launched last year, written entirely in .net, handles about 110-200 visitors a minute on a single cpu 3ghz machine. It's not a very database intensive application, but it does do a lot of file i/o as most of it is built on top of XML for data storage.

    CPU usage averages about 30% and memory holds constant. Uptime is about three months and the only time we really have had to reboot is installing updates and critical fixes.

    The site was a complete rewrite of an older site that had been done in perl and ran on redhat. The average cpu load on that box was around 80%.

    For the database aspects, it really depends on how you architect the thing. Using SqlDataReaders, for instance, is N-times faster then using the standard disconnected DataSet. It also requires slightly more code. Caching the data is also important, as well as caching the site in general.

    My experience with .NET has been nothing but positive. It's seriously cut down on development time and has been more reliable that you'd expect.

  157. IBM DB2 allows C / Java / COBOL / Fortran... by DenialS · · Score: 2, Interesting

    In DB2, you can write stored procedures and functions in many different programming languages, then call those routines through standard SQL. It's a nice way of reducing the network overhead that would be introduced if you had to send thousands of rows of data back to your client, then process the data on the client. Of course, it's also a little bit tricky to program...

    It was also pretty handy in the old days if you wanted to automatically trigger an email when your dinky little online sales site recorded a whopping $500 order for Idaho potatoes, and you had to warm up the jalopy so you could make the drive to Idaho.

  158. article on MSMQ by f00zbll · · Score: 1

    even though this article from msdn is old, it might help answer some questions.

  159. That why my rebates take so long.... by Kashif+Shaikh · · Score: 1

    to receive in mail...'cuz the system is using Java!

    It all makes sense now...

  160. Mental illness alert: Anger problem by Anonymous Coward · · Score: 0

    Mental illness alert: Anger problem

  161. Has anyone mentioned Macs yet? by pastafazou · · Score: 1

    Since this topic seems to have gone way off base without ever answering the question of whether .NET scales or not, I thought I'd throw in the Mac suggestion. You get the "point, click and go", you have the option of using Unix (a great platform to learn Unix as you go by the way), and OS X Server scales incredibly well. In fact, the Appleseed setup (Apple's equivalent to a Beowulf cluster) is a one page tutorial that even a novice could set up! And before anyone starts complaining about hardware costs, remember that MS licensing makes the .NET solution more expensive than the Mac solution. Sure, Linux is cheaper software/hardware/license, but you definitely need the sysadmin, which adds significant costs.

  162. On a related note... by Mutiny+Evolution · · Score: 2, Interesting

    I just perused the Windows 2000 SP4 EULA and it states that it's against the licensing agreement to publish .NET benchmarks without Microsoft's permission. Why this was in the Win2k SP4 EULA is beyond me.

  163. Replication and SQL Server 2000, and other stuff by FearUncertaintyDoubt · · Score: 1
    We have been using SQL Server replication for several years (since SQL 6.5) and I know it quite well. Regardless of what that DBA told you, it works. Even under 6.5, it worked, but had its problems that required workarounds. Under SQL Server 2000, transactional replication is solid. Our mission-critical application depends upon replication working 24/7. I would not recommend merge replication if you can get away without it because it produces a high network load, followed by a high processor load.

    As far as scalability of the application goes, we put all business logic in T-SQL stored procedures. This is both for our public web site and our interal client-server app. The front end code (asp.net or client-server application) is primarily just presentation logic. We can and do regularly support in the area of 200+ connections on dual-proc servers with no problems (note that web server and sql server are different machines). However, the database schema and stored procs are well-engineered, there are strict standards for coding procedures, and the system is tuned to support this. You start throwing application-embedded sql in there and letting developers run wild and you will certainly crush the server. Any poorly-written code has the potential to really cause trouble on our system, and we are rigorous about making sure that doesn't happen.

    You can do what you are asking (big app on fairly modest hardware), but you will have to pay more in developer time because you have to create a good design and enforce standards strictly in order to keep the hardware happy.

  164. Messaging Servers by crucini · · Score: 1
    MQSeries from IBM. It is pretty hardcore.

    What is a messaging server, and why would I want one? I looked at the web page and didn't see anything concrete. What does this software offer that's not easy to implement yourself?

    I'm trying to keep an open mind, but this sounds awfully fraudulent. I think IBM pitched this product to us along with WebSphere, and it seemed to be aimed at folks who are intimidated by writing a little inter-application glue.

    I'm not seeking to ruffle your feathers, but I'd love a no-nonsense answer, which IBM did not seem able to provide.
    1. Re:Messaging Servers by pod · · Score: 1

      MQ Series is pretty damn cool. It's ancient (and by extension, hardcore) tech.

      Basically, you have an app connect to it on one end, send some messages (a message is just a string, encode it however you like). The queue/message server stores these messages, until another app connects to it on the other end (a listener/consumer) and picks up the message.

      The idea is that it's standard. Lots of enterprise level stuff can talk to it. There are Perl modules to do it. It's asynchronous (obviously). Has lots of queueing options for different types of uses and scenarios. Well supported.

      I guess, sure, you could build your own message server, but it's not exactly a trivial task. People who need these kinds of things know they need them, that's why pages for products like MQ Series seem so vague.

      --
      "Hot lesbian witches! It's fucking genius!"
    2. Re:Messaging Servers by rutledjw · · Score: 1
      IBM isn't very good at supplying simple answers.

      Start with the basic and we'll go from there. MQ is a messaging system. "No shit" you say...

      We use it for a VERY high througput system for printing rail tickets. Each set of printers is looking at a single queue for its jobs. Why not a regular print spooler? Because there's quite a bit of business logic that goes on as well.

      Other uses? Any high-transaction, asynchronous system. Even if you're doing vanilla OO programming, communicating between layers should be as decoupled as possible and messaging is a great way of addressing that need.

      example:

      Presentation layer (P) send request to business logic layer (B). P drops request in a queue and becomes an "Observer" (Observer/Observable pattern). P is then free to do other things instead of blocking and/or having extra resources dedicated. This reduces the load on P and B, especially when there's a heavy load. B is working the queue without blocking any other resources and P can do other things. This is simple and something a mid-level coder could accomplish

      Let's take it to a higher level. Now you have multiple, disparate, and possible different types of P - web, fat client, kiosk, multiple physical locations, etc.. B could be anything from a ticketing system (SABRE), and inventory system (Amamzon), a tracking system (UPS), etc. You COULD code this, but being able to buy something which has already undergone significant tuning and has a lot of extra functionality (messaging types, failure detection / resolution, etc) is something that makes more sense to buy.

      Granted, smaller companies / sw projects don't need this. But when you DO need it, it's nice to have handy...

      --

      Computer Science is Applied Philosophy
    3. Re:Messaging Servers by Glonoinha · · Score: 1

      The other guy answered it pretty good, but in the same way I did, took a few things for granted.

      MQSeries is a message queueing package like MSMQ that is pretty much platform independent and gives you guaranteed delivery of messages from one end of the Enterprise to the other. Additionally, messages can be persistant so they can be reused, and they are accessed by a lookup key (ie, a hash of the request parameters) ... instant cache for data that doesn't change often. Additionally systems built around using MQSeries as the transport later for requests between systems that were built to work in an asynch mode are by design scalable as you can determine where you are being throttled and simply add more application servers that do the same thing.

      As for the interapplication glue, most people have a hard time getting their Linux, Mac OSX, IBM 9370, Windows NT/2000 servers, Windows95 clients, and HP MPE/iX machines talking well enough to share files back and forth, much less design their own real-time inter-process communications protocols that can communicate across 9 variants of C/C++, Java, VB, and Pascal all running on the machines listed above, particularly when each machine is spawning / killing processes to keep up with the processing demands.

      You and I are hardcore, but MQ Series puts us to shame. It does what I described right out of the box. Haven't used it in a few years, but I love it.

      --
      Glonoinha the MebiByte Slayer
    4. Re:Messaging Servers by Glonoinha · · Score: 1

      You are pretty smart. ex-Xpedior hacker if I had to guess, or maybe IGS.

      --
      Glonoinha the MebiByte Slayer
    5. Re:Messaging Servers by rutledjw · · Score: 1

      Thanks. I'm ex-IGS. A few years doing independent work and now working for a large travel company...

      --

      Computer Science is Applied Philosophy
    6. Re:Messaging Servers by Anonymous Coward · · Score: 0

      And being IBM software, you operate it using a large set of arcane 7 and 8 letter commands, but, as usual for IBM, the stuff JUST WORKS.

  165. Get him! EULA breach ahead! by anshil · · Score: 0, Troll

    If you would read your EULA you signed when installing your windows version, you would have seen that you are not allowed to publish .NET benchmarks without the approval of microsoft!

    So now you've challanged the inquisition emperium! You may choose if you want to be drowned or burned...

    --

    --
    Karma 50, and all I got was this lousy T-Shirt.
  166. Hahahahaha by Anonymous Coward · · Score: 0

    We used to test 5000 clients against our server (under C/C++) which running on a dual Pentium pro 200Mhz with 1G of memory under Window NT . We tested Java and .NET performance, and what do you know, all those virtual machine is actually crap in handling large load.

  167. Simple rule not followed by YuppieScum · · Score: 2, Insightful

    This is not rocket science, and I had presumed this rule had been learned a long time ago... but here it is again:

    "To ensure scalability, host each server-component of an application on it's own hardware - optimsed for the specific task assigned."

    In other words, DO NOT deploy everything onto one machine. Remember the old adage "Jack of all trades, master of none".

    So, put the database server on its own box, with dual cpu, loads of memory and RAID-mirrored drives.

    Put IIS, the ASP.Net app (and the web services if you're feeling cheap) onto a fast, single cpu box, enough memory to turn off paging and a single drive - GHOST'd onto CD for backup.

    Install an extra net card in both, and set it up soley as the route for traffic between them.

    Implimenting this hardware for less than 20K should be trivial.

    If you can't comfortably support 200 concurrent users with this, you need professional help - my consulting rates are quite reasonable...

    --
    This sig left unintentionally blank.
    1. Re:Simple rule not followed by NigelJohnstone · · Score: 1

      Thats not a good thing to do, you have a network cross between major components in your system.

      "DO NOT deploy everything onto one machine"

      A memory pipe has latency measured in Nano seconds, a network has latency measured in milliseconds. Any benefit you gained by optimizing each machine for DB, Server etc, you lost many many times over in the communications between these two boxes.

    2. Re:Simple rule not followed by khuber · · Score: 1

      You're assuming latency dominates server operations. I don't think that is generally true.

  168. And this was posted here because... by God!+Awful+2 · · Score: 0, Offtopic

    1. It's troll food so everyone on /. can tell this guy to use open source instead of answering his question?

    2. Those MSDN ads that kept /. alive for about a month when no one else was advertising came with strings attached? Run some MS stories or else!

    If you think #2 is excessively paranoid, keep in mind that as I write this, I am being distracted by a giant animated New York Times ad at the top of my screen.

    -a

  169. Re:ignorance made me post that incomplete post abo by hdparm · · Score: 1

    yeah, both look simple enough, have you decided which is the right one, yet?

  170. Oracle (was Re:Why are they running Windows then? by Anonymous Coward · · Score: 0

    FWIW we're running Oracle and doing well with it. It could be worthwhile looking at, though it is quite hungry for hardware. Oracle have been pushing Linux quite hard, even my company are "considering" it which is not bad for something that 2 years ago was a wholly Microsoft shop.

    Oracle provides so much, you may as well think of Oracle as the operating system and not care what it sits on top of. You don't need to go to operating system level services, and Oracle Application Server can do your web pages too.

  171. You gotta be.... by Anonymous Coward · · Score: 0

    ....out of your mind to consider using Microsoft software for this!

  172. SQL is a set-based language, C# is not by Otis_INF · · Score: 1

    If you are programming stored procedures in C#, you don't get what the strong points of SQL are: SQL is set based, not imperative. This means that with a few statements you can do incredible powerful things (try to write out an update query based on a where that has predicates which include a table stated in the FROM clause in C# :P).

    Doing all that in C# is stupid, it's like: "look, we can do it in C# as well!". very nice indeed for the featurelist but impractical for day to day work.

    C# can be good for the imperative constructs placed often in stored procedures, like loops, control flow etc. However, why doing that in a stored procedure? You don't have to. You can do that very well in C# that's outside the database calling specific stored procedures or even using dynamic parametrized queries.

    SqlServer caches execution plans of dynamic parametrized queries as well. So if you can limit the actions to perform on the data by running a set of imperative statements (which is a strong point of imperative languages) and then fire those actions in plain SQL to the sqlserver, you most of the time get hte best performance. And because sqlserver caches execution plans of those queries, you won't loose performance because the sql has to be compiled over and over.

    --
    Never underestimate the relief of true separation of Religion and State.
  173. Of course it can! by NigelJohnstone · · Score: 1

    SOAP, .NET, MSMQ are all done for the ease of the programmer & for marketing (using CPU time to make programmers life easier). All are wastefuly as a result.

    But you need something simpler, CGI! It still works, CGIs written in compiled C++ dish up the pages faster and you can choose your database etc.

    MSMQ Why? you only have 1 box, use memory based mechanism, e.g. pipes. You're using C++ now!

    Database, for what? I bet like most systems the bulk of your tables are read only configuration tables (e.g. Widget X in Blue), not written.

    Read those into memory and index them in memory. Saves you 1 cross process sync call per query and a sh*t load of other work that the DB would do.
    Specific targetted memory structures smoke generic database software every time also. (See google for details!).

    Triggers? Why? If you have 1 process running the database, and memory pipes into that process, then that 1 process doesn't need triggers! That process knows when it changes the data, it can just do a straight call to 'MyTriggerCode1'. Better still your trigger code is then written in C++ and hence faster than a store procedure.

    The numbers you're talking about are ridiculously small, we used to dish up 400-500 connections on a 200Mhz Pentium box on very complicated custom C-S systems, so I'm damn sure you can dish up 150 on a 2Ghz multiprocessor box!

    This is *very* achieveable. Even .NET could probably be tweaked to do this.

  174. Thoughts on your reasons by Glorat · · Score: 1

    This reply is a little late but here goes from my limited experience

    # currently there isn't a mature messaging server and MSMQ is not appropriate for high load messaging platform.
    It thought MSMQ is guaranteed messaging? Guaranteed messaging is not appropriate for high load messaging. You need to look to best effort messaging technologies. This is not a .NET issue

    # SOAP is too damn heavy weight to scale well beyond 60 concurrent requests for a single CPU 3ghz system.
    That's not a .NET problem really. It is perhaps depends on how your server is implementing SOAP. Are you deserializing into classes (slow but nice), dealing with the XML like raw text (faster but awkwards). But those questions arise in other SOAP implementatinos

    # SQL Server doesn't support C# triggers or a way to embed C# applications within the database
    Um.. that sounds like a bad idea in principle (not that I know your circumstances). Separate code from data etc. etc.

    # 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

    Scalability should surely be about the potential to scale rather than being big to start of with. You've done the work in providing the costs compared to your scale. So start small first! That said, where we are, Oracle is used as it was judged to be more cost effective and that SQL server should not be used in mission critical apps.

    # I've been been running benchmarks with dynamic code that does quite a bit of reflection and the performance doesn't impress me.
    Reflection will always be slower than normal code. Don't use it if you are interested in performance. Can say the same in java


    # 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

    That's dire! I'm sure better can be done....

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

    So you want to get asynchronous performance with synchronous calls? I think not!


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

    We don't use it either =)

    Disclaimer: I'm no expert in enterprise technology, just some random techie giving his opinion =)

  175. PostgreSQL by Jadrano · · Score: 1

    What database are you going to recommend that allows you to embed C# (C++, whatever) programs in the database itself?

    With PostgreSQL, you can write triggers (and other functions including aggregates) in C, Tcl, Perl, Python and Ruby (see http://www.au.postgresql.org/features.html)

    While I think, too, that triggers should not normally call applications not directly related to the database, it can be helpful when you can write a trigger in a language like C and are not bound to SQL (or pl/pgSQL / Transact-SQL, respectively).

  176. Make more of the site semi static by Kent+Boortz · · Score: 1

    If you can get resonable performance from static pages (RAM disk?) and most of the content is "semi dynamic" you can set up a periodic job that generate static pages from the database weekly, daily or hourly. Most dynamic sites I visit (that often gets me sql errors or other annoying error message because of the dynamic code) are not dynamic by nature at all. They use a SQL database for content management and there is no need to regenerate the page each time each visitor visit a page.

    Keeping most of the site static also makes it more simple to set up automatic daily tests to validate the HTML, validate links, validate the CSS, check for constructs that break on some browsers etc.

  177. Windows command line isn't the same by BlueLightning · · Score: 1

    That's true, but to get the equivalent functionality, just installing an SSH server on Windows isn't enough. Windows does not have the command line toolset that Unix does.

    Just one example - how do you change permissions on a file from the command line? As I found at work, the only way to get absolute full control over file permissions (adding/deleting ACEs, changing owner, recurse through directories etc.) from the command line is to use a third party utility (FILEACL.EXE is the one I found, after much searching - there was one in the Resource Kit but it doesn't do everything).

    There are plenty of other instances where you just can't do something in Windows without going to the GUI, unless you find/purchase a third-party tool. This is a nightmare if you just want to script things, let alone do remote administration over slow links.

    1. Re:Windows command line isn't the same by Anonymous Coward · · Score: 0

      CACLS.EXE? (whatever:)

  178. Is the question a troll? by Taurine · · Score: 1

    Is this question a troll? It looks suspiciously like a question planted to cause Slashdotters to post positive statements about .NET, in the hope this will make some of the unconvinced/hostile readers think better of .NET through seeing the positive comments from their peers.

    You can call me paranoid if you like, but that is the sort of thing advanced marketing people do. That bit in William Gibson's latest book, Pattern Recognition, about the girl who is paid to say nice things about The Footage at parties - its not made up! People are out there being paid to do that kind of psychological marketting right now.

  179. sorry, man... but something's wrong with that code by Eneff · · Score: 1

    If you're not doing models of the solar system in real time, I don't know how you're having problems to that extreme of an extent with .net...

    Now, I've only been able to give a cursory look to .NET but are you using connection pooling? If you're trying to establish 20 connections simutaneously things are going to complain.

    look up C# connection pooling. Then look up C# persistance layer.

    these are the kinds of things that matter...

  180. Can .NET scale? by kashmirzoso · · Score: 1

    Asking if ".NET can scale" on slashdot is like asking a vegetarian if a Porterhouse is a good cut of meat. Bada boom!

  181. Ummm....Yah it scales fine... by Anonymous Coward · · Score: 0

    It is called Clustering and NLB. You don't have to have the entire database on every DB server either. If you are going to be a Windows consultant and design large web apps, you may want to study up on the process. Consider the web solutions design test study guides.

    You aren't going to get a coherent answer out of a bunch of linux using MSFT bashers.

  182. Re:ignorance made me post that incomplete post abo by nule.org · · Score: 1
    If you do that frequently, you'll thank yourself for the --opt switch.

    # mysqldump -u user -p --opt database > database.sql

  183. Feeding the troll by borgboy · · Score: 1

    I've been working with it for a couple of years. Yes, betas, release candidates, etc. The question largely becomes, can your design scale to those constraints? I am charged with designing web applications, web services, and server processing services that have extremely high availability requirements and high, variable loads. My experience with .Net has been that it has been up to the task in all cases. But my application is not yours, and neither is my staff. First thing to examine is whether you are using Windows 2003. IIS 6 is VASTLY superior to 5 in terms of both reliability and performance.

    currently there isn't a mature messaging server and MSMQ is not appropriate for high load messaging platform.
    Define high. 100 messages per second from multiple threads? I haven't hit any walls with MSMQ in any way, and we use it in a number of different scenarios.

    SOAP is too damn heavy weight to scale well beyond 60 concurrent requests for a single CPU 3ghz system.
    In general, I would tend to agree, but there are ways to improve that situation somewhat, depending on your application and your data. Have you tried exposing pooled .Net COM+ objects as SOAP endpoints? Windows 2003 can do this.

    SQL Server doesn't support C# triggers or a way to embed C# applications within the database
    And your point is? I guess you could wait for Yukon. In the meantime, write them in SQL.

    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?
    Very few people can. The point of MS' entries to the TPC is to introduce the idea to the database community that MS can play in that space. You are going to have a separate SQL Server from your web servers, right?

    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
    But they require 100+ concurrent requests per second?

    I've been been running benchmarks with dynamic code that does quite a bit of reflection and the performance doesn't impress me.
    Me either. You sure don't use reflection for the performance. In any language.

    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
    Static content is pretty cool from a performance standpoint.

    to get good through put with SQL Server you have to use async calls, but what if you have to do sync calls?
    So, do synchronous calls. Index the data well. use stored procedures. Schema qualify your objects. Keep your queries tight.

    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.
    Even MS doesnt recommend using mirrored RAID for data - you use it for transaction logs. Maybe RAID 10 for data, but thats often overkill. RAID 5 for data, mirrors for Transaction log. You are using separate volumes for data and logs, right? Just because MQQSL is easy to use doesnt mean that any chump can run it in a high performance scenario.

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

    Ok. Ask a few more. Preferably some with some experience doing it right. And ask about log-shipping.

    --
    meh.
  184. Your requirements analysis needs a tune-up by steveoc-iweb · · Score: 1

    What you are really saying is :
    "My requirements are to support 100's of users for 20k". - All the other info about having a single server, or using .NET or anything else is just noise which is corrupting your real requirement.

    20K on ebay would buy you some serious not-too old SUN equipment, or a whole roomful of late model HP netservers.

    20K at your local puta DIY store would build about 30 sleek new Athlon boxes (say, 2500 Barton, way-fast ECS L7S7A2 mobo, 1GB 400MHz DDR, 40GB IDE disk).

    With such a computer room, a savvy tech could conceivably take over the whole world.

    Talk to Microsoft about getting a version of ASP/.NET/MSSQL for the big-iron SUN machines, or doing a special licence deal for a 30CPU Athlon cluster .. hmmm.

  185. Re:I don't understand!! by orionware · · Score: 0

    I'm afraid Java/JSP 15 minutes are over. The way the industry seems to view the technologies is this: beans/jsp for the super heavy lifting and asp/.net for everything else.

    The figure if they have to go thru the trouble of using beans/jsp the project really better need the speed because beans/jsp are generally more difficult to learn and implement than other technologies.

    I somewhat tend to agree. Unless the project is something that can really win the argument of what technology to use, I'd be more inclined to use something that is super quick to develop, debug and modify. asp/.Net is crap and completely takes away the enjoyment of programming however. I do agree there.

    --


    Karma means nothing to me, so suck it...
  186. maybe they can't NOT afford it... by magarity · · Score: 1

    What is the nature of the transactions in question? If these are customer orders then saying you can't afford it is economic suicide. Go to the bank and request a loan for more/bigger computing power to handle all the business. On the other hand, if this is not customer orders, or not directly related, then you need to ask just how necessary it is and whether the process can be streamlined so less computing power is required. But really, customer order support needs to get whatever budget can be begged, borrowed, or stolen.

  187. Can I flame you for your rotten English instead? by leonbrooks · · Score: 1

    It's "hear, hear!" - a contraction of "hear the man, hear the man!"

    --
    Got time? Spend some of it coding or testing
  188. <slap> Keep it together, man! by leonbrooks · · Score: 2, Insightful
    Wow, this must be /. got a clue day.

    Your drugs must be more expensive than mine. (-:

    /. as a whole is as clueless as ever, but you did see a few good posts.

    Back on topic(-ish): as well as the low-bandwidth point the grandparent made, I think it's more germane to mention that any one of sixty-to-a-hundred failures will keep a Windows server (and hence VNC) off the air, but you only get a-handful-to-a-few-dozen chances to kill a Linux server stone dead as far as remote access is concerned.

    --
    Got time? Spend some of it coding or testing
  189. Servers Not That Expensive by Anonymous Coward · · Score: 0

    If you are asking about scaling, you are implying more hardware. Check out networkdecisions.com or HP or something. For 20k you can get a lot of hardware.

  190. Perfectly bloody normal in MS-Windows-land by leonbrooks · · Score: 1
    What can you say about that? Unbelievable!

    It's called "cooking your frog", a process in which each small step to oblivion is too small to cause the frog (you) to jump out of the cooking pot (MS environment) as the heat (licencing conditions or other handicaps) is slowly turned up.

    The normal approach is to start making your software as generic as possible without cruelling performance, so it will work on any SQL database, file server etc - then you can start opportunistically replacing entire components like the SQL server, file server, web server etc, one at a time, no-breakum-egg.

    Sometimes, however, you just have to bite the bullet and reimplement your app more or less from scratch in parallel with keeping the existing one alive.

    Fred Brooks (namesake, not relative) once said "plan to throw one away, you will anyhow" - and that point is the perfect opportunity for something like that.

    --
    Got time? Spend some of it coding or testing
  191. Buy More Boxes by Anonymous Coward · · Score: 0

    No, not servers. The boxes they come in! Buy more of those! Take them home, put them in the living room, and build a fort out of them! Get creative and build it like an old English caslte, if you like! Then, go get some bedsheets and build a tent within your new fortress of cardboard, so you have a place to sleep.

    Now you're ready to defend yourself against all those requests that are coming in.

    If you're doing this for a small business, then what the hell are you using .NET for? The only thing Microsoft wants is every dollar in your limited buget. Duh...

  192. To a certain extent, that's true, but... by leonbrooks · · Score: 1

    BackOrifice does fine, but it's too late after the server goes toes-up to think about installing it. Also, it's just as susceptible to a dead WOW layer (or any one of a countless number of other roadblocks to GUI harmony).

    --
    Got time? Spend some of it coding or testing
  193. PostgreSQL and MySQL both do replication now... by leonbrooks · · Score: 1
    ...and have done for a while. OTToMH you may need the MaxSQL version of MySQL. Not sure that IBFireBird doesn't replicate as well. If not, then it will in the next major release.

    I have a client using MS-SQL server replication, and AFAICT (they've never had a serious need to failover or replay) it works for them, but it sucks. It just gobbles the bandwidth even when you're doing bugger-all, and occasionally has an absolute traffic frenzy. It's also a pain in the ass to set up, and occasionally shuts down without bothering to mention this little fact to anyone.

    --
    Got time? Spend some of it coding or testing
  194. Re:/. my asp.net server and i'll post perf results by GiorgioG · · Score: 1

    What did you do exactly? I've seen that in the server logs a few times, but can't figure out how people manage to make that error come up. Thanks

  195. Not a simple answer... by RandyF · · Score: 1
    I noticed this post a little late in the game, so I went on and read the higher modded posts. There are a lot of good suggestions out there. The truth is that there is no easy answer.

    Since you are a consultant that, appearantly, handles multiple clients of this scale (~$25 - $50K) I would suggest that you did some background project work (after solving this issue, of course) to broaden your company's skillset.

    Yes, .Net/MSSQL/Java can scale. A single box, however, is a bad idea. MS technology has a lot of trouble stepping on other MS technology from a resource perspective. Let's just call it a legacy issue that started around Windows 2.0 and hasn't been fixed yet.

    To get the scale, you're going to have to split the tasks. n-tier was suggested. It's a good idea. A single box to run SQL Server is a must. Another box to run the proxy/web interface is another must. (splitting the proxy out can also be a big plus, if you can afford it.)

    I seriously recommend against an IIS-based front end on the web, though. The security is just too darned loose. (Apache security and PHP scripting can be tied into .net/MSSQL, if you were wondering.)

    Another thing on MSSQL, it is slow. A lot of memory tweeking will be needed to get the responsiveness you need. Also, consider spliting the load with some well placed replication. Replication can slow down a single box, but, if designed properly, different tasks can be split between specialized boxes to bring up the overall site speed.

    Lastly (at least on the Microsoft as a solution answer), you can use relatively cheap boxes as long as MS supports them and there are plenty of custom hardware speedups for the specific Motherboard/chipset/Raid array, etc... A generic, off-the-shelf box, without this will be slow as a two legged dog.

    Now, on to the future. As you can see, a properly configured MS solution takes just as much tweeking (sometimes much more) than a well placed *nix solution. The biggest trouble that I have encountered is that with all the pretty windows, most of the really necessary tweeks are hidden in registry values or other places and hidden from view. There is not a standard (or even safe) way to reach the most necessary tweeks for a heavily used system.

    The *nix/OSS side of things are a little better. Sure, you probably don't know the environment, maybe not even at all. The transition from NT to 2000 or 2000 to .Net is just as difficult.

    In a *nix world, most everything is found in a text-based config file. You make a change and restart an individual or group of services instead of the whole box. Occasionally, during heavy config, you'll want to restart the box to make sure that your changes will start up correctly the next time the box boots. Sometimes you need to compile an app to tweek it. Once you get the hang of it, it's not really a big deal.

    Managing the box is a matter of learning about the system, setting up and checking the various health and security monitoring pieces, and everything else that you already know how to do, just a little bit different.

    A cheaply set up OSS group of boxes (penguin has preconfigured dual operon rack systems for about $2,500 right now) can fly into some extreamly high numbers of trx per second.

    Slashdot has a cool setup, if you can use the technique, where most dynamic pages are dumped to static files and cached for 60 seconds (I think). The next hit, after the set time, rebuilds the static file from the database and, viola, recaches. It works, since static cached is hugely faster than dynamic. If you can come up with dynamic content that you can afford to static every 60, 30, or maybe 120 seconds, do it. This will even help out in a MSSQL environment.

    Basically, you need to sharpen up on the OSS side of things so that you can have a few "drop in place" solutions for your clients. OSS does cost less and, if you set it up right, usually takes around a third less

    --
    --==-- I've found Karma to be a relative thing... Ya know, the kind you invite to Christmas... ;)
  196. #9 is at least partially crap. by beavis88 · · Score: 1

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


    I don't know about bi-directional replication, but I can tell you that having one "master" server to which all writes go, and replicating out to many read-only databases works VERY well with SQL2000. My company solved some serious performance and locking issues by cleaning up our data flows and implementing replication.

    This is obviously not appropriate for everyone, but in my experience, most web apps tend to involve substantially more reading than writing. Without more details on your situation, I don't know if it would be a help -- but it seems like its targeted a bit more toward the "high end".

    With regards to reliability, it is possible to cluster SQL servers -- we have also had mostly good experiences with this. We had major problems when we first tried, but several SPs/patches later things are working very well.

  197. VNC 's Built-In Java Client by Frogg · · Score: 1
    convince the owner of the cafe to let me install VNC

    You don't need to do that: VNC has a Java client built-in, you can run it in any browser that has a half-decent Java VM (inc. Microsoft's).

    To access this Java client, you simply have to point your browser to http://myserver.foo:5800/ ..and you're off!

    hth

    1. Re:VNC 's Built-In Java Client by zulux · · Score: 1

      I forgot 'bout that. I even have forward for in my firwall for it and I still forgot....

      ugh... stuipd meat-memory.

      --

      Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

  198. Yes, DOT NET can scale. by Bill,+Shooter+of+Bul · · Score: 1

    However you have introduced several different technologies that have been put under the singular heading as "DOT NET". SQL server has not been Dot Netiezed just yet. SQL server is scales very well on 8-16 cpu configurations. I assume you are talking about asp.net when you are comparing web services to asp/html "Static" pages. ASP.NET is much faster in my experiance because it is compiled rather than interpreted as in the case of classic asp.
    I guess your question really is wheather or not .net has good price /performance on lower end server/workstations. I really don't know if that was Microsofts real target with DOT NET. They were trying to make it a Java/ IBM/SUn killer. Thats where the biggest profit margins are. In most cases there are some special tricks improve scalability of apps. It a number of cases it depends on how you code it. Good Luck!

    --
    Well.. maybe. Or Maybe not. But Definitely not sort of.
  199. Re:Faster is not the only concern for many busines by Cramer · · Score: 1

    Actually, I'd have to say this is not true. There is such a laughablly low demand for co-lo (find me a colo that doesn't have a bunch of empty space) that you can get as much space as you need for whatever you're willing to pay for it.

    Sure, approaching schmucks like Exodus and Rackspace.com will cost you tremendously. But there are other (less advertised) facilities that have been sitting completely empty for years now.

    And this is assuming there's a real need to colo everything. Several dozen mid-tower sized desktop "servers" will fit perfectly in the space of one office cubicle. The bandwidth requirements haven't been provided, but I'd assume a T1 or two would be sufficient.

  200. Oh yea, it can scale... by LittleJoe · · Score: 2, Informative

    I've designed and written a few .NET apps, and have found them to have extremely good performance ("performance" here always refers to both scalability and snappy single-user response times) on low-end boxes, expecially compared to ASP and JSP.

    There have been a couple of posts w.r.t. proper architecture... While arch. is no doubt important, I've found that it is not hard at all to get good perf. out of even a minimal expenditure on arch. for .NET apps. Heck, for a couple of those apps., the team hardly even touched a whiteboard, but just sat down and started rapping out code using good old-fashioned common sense. In my book, follow the KISS principle for .NET apps. whenever possible for architecture and you'll come out way ahead in almost every aspect of performance, time to market, maintainability, etc. Take it from someone who almost blew a multi-million dollar project because of "over-architecting" the application. We got things working fine, but I lossed a lot of stomach lining over the deal, and the customer wasn't too pleased either. Before I jump off of the soapbox on the arch. issue, I always try to remember that just one often used part of an app. can kill scalability, and a complex arch. always makes the bottleneck a lot harder to find and often to fix w/o a re-write.

    Here's where I've found the bottlenecks and easy ways to solve them:

    1) Don't put SOAP calls in tight loops . If you seem to have to do this, redesign things. This may seem obvious, but the reason SOAP doesn't really scale well on any platform is because of the function call overhead, so minimize that as much as possible. Make sure to cache results local to the caller for stuff that doesn't change very often (see #4 below).

    2) For DB updates, use SqlConnection transaction handling instead of MTS whenever possible. In the old ASP/COM+ world, it was imperitive to use MTS so you could take advantage of the other COM+ features, but the .NET runtime removes this burden as long as you don't have to jump through coding hoops to wrap dependent updates, etc.

    3) Make sure to use the correct transaction isolation level for your transactions. For highly transactional apps. that also do lookups on the updated tables, the one I've had the best luck with is IsolationLevel.RepeatableRead. I can't stress the importance of this enough - do some rudimentary testing (Microsoft ACT that comes with the .NET IDE installation is fine for most) of the parts of the app. that update the DB and test with different isolation level settings. As long as rule # 1 is followed, this has been the single most important factor in maximizing the scalability of transaction applications, and the default setting for this usually doesn't give the best results.

    4) Use HttpContext.Current.Cache and related in your code to cache stuff that doesn't change too often (like product description lookups, etc.), especially for SOAP calls.

    5) Adjust the "Minimum query plan threshold for considering queries for parallel execution (cost estimate)" once you move your app. to an SMP system, depending on if the DB server is standalone and how highly normalized the database is. For a highly normalized DB (lots of JOINs) on a standalone SQL Server box, set this at 0 or 1 because most of your queries could probably benefit from a parallel execution plan, or at least the small extra overhead won't really hurt. This setting alone dramatically and immediately boosted the performance of one application and took all of 2 minutes to implement.

    6) Make sure to apply indexes where it makes sense. For example, on one app. 4 hours of query research and index tunning based on that provided a 10 fold better response time for one query, which probably increased scaleability for that database by 100 fold because of how often that query was used.

    7) Read and follow this simple advice for SQL Server clustered indexes on MSDN:

  201. Profile!!! by Joey+Vegetables · · Score: 1

    While I prefer free and/or Java-based solutions, much of my current work involves Microsoft tools, and I can assure you that they will support more than 100 concurrent users IF you architect and design appropriately.

    If it doesn't, then my first suggestion is to profile your app and figure out where the bottleneck is occurring. This will help determine where to look for the real source of the problem.

    I am guessing that you're dealing with some combination of (a) locking, concurrency, or transaction isolation issues with your database, or (b) passing information, such as state, unnecessarily between tiers. Either problem tends to manifest itself first during load testing, typically as a performance curve that approaches O(n^2) or worse. It usually is the fault of the design, not the tool, and if so, then porting the app to a stronger toolset or beefier hardware would not improve the situation very much. On the other hand, profiling should show you exactly where performance-related optimizations need to occur.

  202. Have you tuned .NET and W2K? by Anonymous Coward · · Score: 1, Informative

    Hi,

    I don't know whether anyone has posted this sort of info, and sorry, just didn't have the patience to wade through all the holier than though posts.

    I recently finished up working with a government department which was deploying a number of .NET based systems, and we encountered the sorts of scalability issues you are talking about. Few things come to mind:

    1. We often encountered issues with threading under .NET although it is vastly better than COM+. We achieved some relief by playing with settings in machine config such as minimum number of HTTP Run time thingames, MaxWorkerThreads and MaxConnections etc. If you haven't tuned these then you may get some good mileage out of doing this. With IIS and .NET being single process multi-threaded these basically control things like how many .NET threads you run, how many connections are allowed of the box etc.

    2. MSMQ seems to behave badly under high load. I don't know what to suggest in its place, but it ain't a great story.

    3. With tuning we did find we could get pretty good CPU utilisation and prtty good throughput out of our front end .NET servers. That being said, our strategy was to use 1RU dual CPU boxes and scale sideways.

    4. The behaviour of our system relied on back end systems. Under test conditions, when the back end systems were stubbed, throughput was good. However, under real conditions, were back end performance was abysmal (think MSMQ being used for calls to Mainframe etc) we found that behavrour could be unreliable - read long blocking calls seem to be a bit of a problem.

    5. Other things we tunned included IIS (that stupid slider thing tends to give you 10% if moved to maximum) as well as the new connections buffer (all this stuff is in KB somewhere, and I guess you have done it).

    6. Another seemingly not well known trick is increasing the number of user TCP ports. For some reason the default with W2K is only up to approximately port number 5000 is available for outbound connections (ie, you got some sort of soap middleware server listening on port 80, connections to it are 4998->80,4999->80,5000->80,OMG, I'm a teapot. You can set this up to the maximum allowed ~65000. Also changing TCPTimedWaitDelay will mean that used number can become available faster. Once again all this stuff is in KB.

    Now, all that being said, I'm afraid I think your clients have made the wrong choice getting the big box. For frontend boxes the way to go is mulitple frontend servers for sure. I personally don't think the MS single process multiple thread model is all that good, although it can be made to work at least reasonably hard. Oh, BTW, you'll need an MS license for each of those front end boxes ;-) HTH.

  203. Re:Can I flame you for your rotten English instead by Anonymous Coward · · Score: 0

    Thank you whole heartedly for pointing this out *AND* making it clear why. I love little bits of entamology(sp, too lazy to look it up :) )

  204. ...and your rotten spelling? (-: by leonbrooks · · Score: 1
    I love little bits of entamology(sp, too lazy to look it up :) )

    Don't worry, someone else will do it for you, this is /. you're reading, after all. BTW, you've confused the term with this word.

    --
    Got time? Spend some of it coding or testing
  205. MySQL's reliability by Packets · · Score: 1

    I currently work for a company that has quite a few MySQL databases in production, dating back to '97. Currently we have 7 production MySQL database servers, each server during a 'typical' hour during a workday (they're only utilised 8 hours a day, it runs a business application) executes somewhere between 400,000 and 1,000,000 queries an hour (thats each server, total queries per hour would be around 3,500,000).

    The only problem we've *ever* had with these machines have been hardware faults, or operating system level (they run linux) faults. Either disks going down or the entire machines going down.

    Do you mean <i>"reliability"</i> has come about in in the last decade? or were you meaning the last one or two years? Because if you do mean its improved in the very recent past, I feel you should put less faith in off-hand anecdotal evidence.

    --
    A little overkill never hurt anybody.
    1. Re:MySQL's reliability by Stu+Charlton · · Score: 1

      Because if you do mean its improved in the very recent past, I feel you should put less faith in off-hand anecdotal evidence

      I mean within the past 3 years, yes., And I would say the same for you, since your pointing to your company as anecdotal evidence. The truth is that anecdotes are all we have barring an independent reliability analysis of MySQL.

      I'm quite glad you've had success with MySQL. I'm merely pointing out that some people haven't. The number of these incidents are getting lower, but it's going to take time for people to get comfortable with it. Oracle used to lose data back in the 1980's too. It arguably took them until v6 to get truly reliable. And it's going to take time for MySQL to handle all of the different needs out there (OLTP on one hand, massively parallel warehousing on the other hand). Data management is necessarily a very risk-averse area.

      Also note that I haven't gone into feature comparisons which is another area where MySQL is a few years behind. They'll probably catch up to a reasonable extent eventually. But I'm not too frightened for IBM, Oracle, and Microsoft quite yet.

      --
      -Stu
  206. 100 concurrent requests per second? by zero_offset · · Score: 1
    So this small company is getting millions of page views per day (do the math), but they can't afford additional servers? (And nevermind the question of why you're spending that much per server... I work for a very large, very inefficient company, and we don't even blow that much jack for a server.)

    Something doesn't add up.

    --

    Slashdot quality declines as the number of hot grits posts decreases. - Provolt's Law, Apr-09-2005

  207. 100+ concurrent requests by brlewis · · Score: 1

    Since the original question related to handling 100+ concurrent requests, the service is likely an Internet-facing web site. In that arena, most companies do ditch Windows, even if they're using Exchange, etc. on their internal company servers. A "ditch Windows" answer is simply sharing the prevailing wisdom. If there's some reason why they can't ditch Windows in this situation, they should have said so in the question, since that's the obvious answer to expect.

  208. IIRC by Anonymous Coward · · Score: 0

    "Moon is a harsh mistress" would be Heinlein book where TANSTAAFL originated.

  209. An actual answer by Anonymous Coward · · Score: 0

    Man, there's a lot talk here but no answers for your questions..

    Are you actually running the SQL Server on the same box as IIS? If that's a constraint then you'll always be getting crappy performance. A database server and a web server are fundementally different in how they use a computer's resources, so you'll always be down a few points for doing this, regardless of platform.

    Also, you seem to be citing some pretty high clock speeds for those crummy benchmarks. I'd just say that there's definately something wrong in the equation unless you're talking about the collective speed (all processors combined). .Net has great performance, especially on Win2003, certainly more than you're citing with those benchmarks, but again, it's crucial that you're not running SQL Server on the same box.

    SOAP is a big performance drag, but I don't understand why you'd be using SOAP as a staple of your architecture if you've only one box to work with. .Net isn't just about web services, it's just designed to work very well with them. SOAP is not an ideal solution for anything except cross-platform and/or cross-country communication, and yes, best done async.

    Here's an idea, depending on those constraints. If you only have one box to toy with, and your db activity is primarily read-instensive, consider using XML flat files for multiple small data repositories. Because we're just talking to the file system, and it's hierarchical, this trick proves to be quite fast if your data model is friendly to it. I'm not sure what you're doing or what your database is facilitating, but if it happens that you're activity is more write-intensive than read-intensive, you may be out of luck, especially if you're set on using a message queue between db and websvr.

    Anyway, I do think you're numbers are a bit odd. I'd expect to get much better performance with the clock speeds you're citing. Consider keeping the database on the dual proc box and moving the web server to a cheap single and compare performance. Again, because you have such a slim margin for overhead, you'd better make _sure_ you optimize that SQL box with an expert's eye, and re-evaluate how and how often you're communicating between tiers (chatty vs. chunky). Anyway, maybe these are some things to think about.