Skip to main content
Participant
March 11, 2010
Question

Fastest Hardware for CF 9?

  • March 11, 2010
  • 4 replies
  • 592 views

We are looking to speed up our application layer as much as possible. We've pumped the DB up substantially and had great results. I realize there are network, load balancer, memcache, etc and other ways than the hardware to have impact, but we want to buy whatever will give us some gain.

Unfortunately, we didn't notice with a dual quad core server a ton of impact in the past and didn't seem to be able to get the full utilization, so we just stayed with multiple servers instead of fewer, beefier servers.

Will 64 bit and many cores be the best for CF 9? Or less cores at higher clock?

Does more memory help much?

How about SSD hard drives for local source code?  I wouldn't expect that, but somebody seemed to suggest that somewhere.

Does CF Enterprise make a big difference?

Should we change the JVM to a faster one? What would that be?

Thanks!

Matt

    This topic has been closed for replies.

    4 replies

    BKBK
    Community Expert
    Community Expert
    March 13, 2010
    Fastest Hardware for CF 9?

    Well, why not?

    ... less cores at higher clock?

    No, not for me.

    Will 64 bit and many cores be the best for CF 9?

    Oh, yeah.

    Does more memory help much?

    With 64 bit and the latest JVM, yes.

    How about SSD hard drives for local source code?  I wouldn't expect that, but somebody seemed to suggest that somewhere.

    I doubt there is a strong correlation between storage and performance.

    Does CF Enterprise make a big difference?

    Yes, depending on your needs. My pros are a repetition of Ian's.

    Should we change the JVM to a faster one?

    Only if you're having performance problems.

    What would that be?

    Oracle's JRockit.

    Inspiring
    March 12, 2010

    Also, if you are burning that kind of sustained CPU utilization from your servers, either ... (a) I want to know the stock-ticker symbol for your company, that I may buy some of your stock , or (b) you need to take a very close look at your applications.  It is extremely rare for a web application to produce CPU-saturation.

    Usually, application and web servers move large quantities of data around, and handle a large number of requests-per-second, but nearly all of this activity is actually 'I/O bound," not "CPU bound," by its very nature.  So, "more cores" would not help such an issue.  "More computers," a-n-d sufficient bandwidth connecting everything, a-n-d no bottlenecks or inter-dependencies among what the various "more computers" are doing, would help.

    I would almost instinctively say that your problem will have a software solution much more than a hardware one.  The next thing that I would do is to gather log-files for  some empirical analysis.  You need to be able to look at the  workload that is being presented to the various parts of your system,  especially software parts.  You need to know where there are queues.  You need to know why there is sustained CPU-activity.  (If you think about it, at today's CPU horsepower, "80%" is a stupendous number of computing-cycles to actually be consuming...)

    In a past life (that I have spent a great deal of time, since, putting out of my memory) I worked with a group that simply felt that "you can solve any problem by throwing hardware at it."  This line of thinking made the hardware salesman very happy but it has to this day kept the company's website among the slowest in the retail-bookstore business.  (No, it's not that one, nor that one, nor of course is it That One...) And as it happens, they're not using ColdFusion.  Their software algorithms, frankly, sucked, but they were much too smart and well-informed to change them.  ("That's my opinion and I'm stickin' to it..." he said, stepping down off his rant-box and politely putting it away.)

    Fortunately, Cold Fusion provides a very powerful and well-developed infrastructure for "scaling up," even apart from its Enterprise Edition.  All of it is well-tested and "free."  Once you understand where the bottlenecks are, you can resolve them.  But you need to gather objective evidence to demonstrate where and what they are.

    March 12, 2010

    Hi Matt

    You are really approaching this problem the wrong way.  If all your CPU cores are running over 80% constantly, or you have no more memory free, or HDD utilisation it maxed then perhaps you need better hardware.  Other than that its more than likely a software and architecture issue.  And throwing hardware at the problem wont fix it.  You yourself said, that the change do dual quad did bugger all.

    What hardware is required will depend from app to app, for example some need just heaps of RAM some heaps of CPU power.  If you are going to speed things up, you need to understand you app, how users and peak load effect it and in turn where the bottle necks are.  Then you might find the best performance gains in the software layer and not hardware.

    Cheers

    SquidjobsAuthor
    Participant
    March 13, 2010

    Well, during page procesing you have some portion that is DB, and that's the highest time. Then there is the CF processing times. If those are 40ms, I'm wondering whether CPU speed or cores might drop that processing time.

    We don't have 80% utilization, it's much lower, and we're not solving a capacity problem of needing to handle more page loads. I'm more narrowly focused on whether cpu and cores can speed up CF, or is CF not really capable of using the cores efficiently, etc.

    Thanks everyone,

    Matt

    ilssac
    Inspiring
    March 11, 2010

    The only one I can speak to there is the CF Enterprise question.

    Enterprise might allow more throughput, if you are doing a lot with the PDF functionality, <cfdocument...>, <cfreport...>, etc. or Gateways.

    If I recall correctly, at least with ColdFusion 8, the standard version of CF had thread throttles on how many of these types of requests could be handled at the same time.

    But the only real answer is testing testing testing.  This has more to do with your applicaiton and how it is archetected then what ColdFusion itself is doing with the hardware.