Choosing Server Hardware Configuration

Hi. I am currently purchasing a system for our company so we can run a ‘demo’ version of our application in-house. My main concern right now is picking the most appropriate hardware components for running the IA software. Clearly, the only two ‘significant’ components that I see vital are the memory and processor. The RAM is not much of an issue, since we can always purchase 4 GB to be safe. I am more concerned about the CPU. I plan on purchasing a process from the Core 2 family, but I am unsure as to whether or not I should go Quad or Dual core.

I am thinking quad core, since the IA software consists of multiple independently running applications, and a CPU capable of heavy multi-tasking would probably fit best. Any comments/suggestions?

True, but you're probably over-analyzing. I don't think you'll notice any difference between the two. 2-4 gigs of ram and any recent workstation processor will suffice.

While this is true, it all depends on how many users are going to be connected to the gateway, the pollin grate, amount of tags being polled, historical data storage rates, etc. Also, what is going to be running on the machine, just IA software, the OPC server, and a SQL database? How many PLCs are on your network.

Also, the storage system is also commonly overlooked. A Raid controller and some fast disks can go a long ways in the SQL side of things, as can memory. Im probably looking into this too much, but I think we need some more information on your system, and settings related to timing and concurrency.

Yeah, I’ll second what Kyle said. I was just jumping ahead and assuming (dangerous, I know) that the requirements weren’t all that great given that it was for an in-house demo app.

Also, scaling out can be more effective that scaling up. For example, putting the database on a separate machine and having 2 average machines is usually more effective that having everything on one powerful machine.

Yes, this would also help allviate the Disk IO issue as well. Most database warehouses use expensive RAID controllers and multiple SAS disks, whereas google merely uses a single disk, but creates multiple shards for that given set of data.

However, sharding will prove to be difficult with IA. There is a way I think you can do it though, im just wokring out the details now.

Also, for an example, at one of my facilities, we are storing PID data every second, for 7 days. Its inserting a single record, and sometimes, it tries to insert during long historical queries, requiring a ton of data. When this happens, you can hit a locking issue, which can be alleviated by a few ways. One way would be to change the type of table being used i MySQL, another would be to change the historical query into run a bunch of smaller sub-queries, and the 3rd would be to upgrade your disk subsystem.

Interesting. So if one were to scale out and have two machines running everything, what application do you recommend being run by itself. MySQL?

Yep, if you’re going to have 2 machines (for performance, not for redundancy), then I’d put the database on its own machine.

[quote=“Kyle Chase”]Yes, this would also help allviate the Disk IO issue as well. Most database warehouses use expensive RAID controllers and multiple SAS disks, whereas google merely uses a single disk, but creates multiple shards for that given set of data.

However, sharding will prove to be difficult with IA. There is a way I think you can do it though, im just wokring out the details now.

Also, for an example, at one of my facilities, we are storing PID data every second, for 7 days. Its inserting a single record, and sometimes, it tries to insert during long historical queries, requiring a ton of data. When this happens, you can hit a locking issue, which can be alleviated by a few ways. One way would be to change the type of table being used i MySQL, another would be to change the historical query into run a bunch of smaller sub-queries, and the 3rd would be to upgrade your disk subsystem.[/quote]

Did you choose option 3? I am working on the hardware aspect of our IA install here so I did a search on the forum and ended up here. I am logging pid data every 30 seconds for 10 days, on a slow disk and have already witnessed what appears to be the locking issue you described. I’ve been leaning towards running MySQL on a seperate box.

What OS would you recommend for both the db and gateway machines, windows or linux? Are there any major performance increases noticed from one to the other?

As it pertains to IA software, both legacy products and Ignition, I would say that the storage subsystem is the most important when it comes to performance, followed closely by speed/amount of memory. Processor speed would come in 3rd.

Because most of us will be storing historical data and crunching numbers from there, the storage subsystem is very important and like any other application, will be our bottleneck. If you dont store lots of historical data, and dont do any complex queries, I would say you could spend a little less here though. When I look at buying a machine for use with Ignition, I would recommend atleast a 2 disk array for redundancy, specing SAS drives, with as fast a spindle speed as you can afford. For 99% of use, disk size will not be an issue, so again, spec accordingly.

Next comes memory, and in the database world, the more you have, the better.The memory is used to query result and index caching. Most people begin to shard data when they cannot keep there working set inside of memory, but that amount of data tends to be quite large, as commodity hardware can run 512 Gb ram now, sometimes more.

The reason I put the processor last is because even a low level server class processor is smoking fast. Right now, we have an install with a quad core 2.8 Ghz processor, about a year old. This machine is currently used to virtualize the some servers because we need to run both Windows and Linux servers (that need changed today actually, so we are ditching that for a physical host install of linux). Anyways, it is running RSView, FactoryPMI, FactorySQL, MySQl and Ignition all in seperate VMs. The memory usage is at 13 Gb of 16, but the processor is using 800 MhZ. As you can see, there is lots of room for scale. Soon, we are getting rid of RSView, so we dont need Windows or OPC-DA anymore.

Lastly, all of my Ignition installs will be in Linux. MySQL on Linux blows MySQL in Windows out of the water, both for performance and options.

I just ordered a new machine today, and I chose a Dell R410, wich a single processor, the slowest HT capable one. I also chose 16 GB, and will be using either a 2x 15k 146 GB SAS setup, or order a Fusion-IO card (www.fusionio.com). Again, size wont be an option, so a 80 Gb card would be big enough.

If you need any other information let me know, Ill try to help. Again this is just my findings, and someone else might have a different opinion, but I would love to hear about other peoples server setups.

I was also browsing the Dell poweredge servers last night, and have been trying to spec a machine utilizing the 15k 146 drives. Also looking at the HP line (mainly because that is what we have standardized on here). I think I’ll try a linux install of ignition tonight just to see how it goes. I would like to run the entire system on Linux.

From my very limited exposure to the IA products, I have found that processor speed does not seem to be critical.

Thank you for your input Kyle.