Hi Gary, welcome to technet!
There are three things to optimize filemaker performance:
1) Server disc performance - SSDs mounted into a RAID 10 array is the best configuration I've seen "in the wild" for database applications. If you're striping a RAID 10 array, you'll need more than one drive bay (or a lightning connected RAID device), so you might be looking at a Mac Pro, or a switch to a windows server. Most other macs now-adays don't expand "well".
2) Server network performance - You should have gigabit ethernet based network hardware throughout your local network. For remote applications, a business-class fiber connection is well suited for connecting to a remotely hosted server with fast performance.
3) Server Processing performance - the more data crunching you're doing, the better processor you need. For most server applications now we're running at a minimum a quad-core xeon processor, or dual quad core xeons.
Based on your needs above, you might want to consider running XEN or Hyper-V as well to virtualize some of the machines, assuming that you are running semi-autonomous "drone" computers that run 24-7.
You should also consult with a filemaker developer about possibly streamlining your applications to negate the need for some of those drones. If you're taxing your database and slamming it 24/7, there might be some things that can "lighten the load", so to speak.
Hope this helps get you started.
Also, it would be wise to start doing some network traffic monitoring now. Check on the processor and network demands on your current server to see what existing usage is being taken. If minimal capacity is being used, but filemaker performance is bad, you might need to optimize the database before looking at hardware.
This approach sometimes works better for our clients., IE "troubleshoot it as if it was broken. Prove it isn't. Consider what is needed to improve".
Filemaker 12 opened up a big can of worms in things getting better (and things getting WORSE) performance-wise.
Well, absolutely don't do anything before noon CST today.... there is a strong rumor that a new Mac Pro may be announced at the WWDC conference. I'm really hoping it will be.
That aside, Mike comments about hard drives is very important because the limiting factor in databases usually is the storage speed and often more important than even the processor. For smaller venues, I have been using Mac Mini's combined with Pegasus Thunderbolts using RAID10. But with 38 simultaneous clients, a beefier server would be best. If a new Mac Pro comes out today, that might be your solution if you want to stick with Mac Servers.
Pegasus Thunderbolts using RAID10
will have to check these out. I figured there were some lightning-connected options for larger drives and RAID bays, but to-date we've mostly used windows servers just because they tend to run cheaper for the most robust performance. And we haven't noticed any difference running a filemaker win server inside an all mac environment.
The Pegasus Thunderbolt RAIDs are really impressive in that they are faster than most all other RAIDs in their category. The downfall is that they are Thunderbolt only. So if you don't have a Mac with Thunderbolt, you're out of luck, and this includes the current Mac Pro! Right now Thunderbolt has not caught on much with the enterprise world and Windows servers. Most are using eSATA, USB3 or FiberChannel for serial connections, none of which is as fast as Thunderbolt. I suspect Thunderbolt will gradually catch on in the new year or two, but it is a trickly serial connection to make work for the manufacturers. This has resulted in a much slower-to-market development cycle than say an eSATA or USB3 device.
If you need a very fast and inexpensive server, the Mac Mini Server with Pegasus RAID is a great solution. But if you need a beefier solution, really your only options are in the Windows server market. But hopefullly that will change with a new Mac Pro being announced at WWDC today!
I realize this is just one data point, but I have a client with a Pegasus Thunderbolt RAID R6, and we have had 3 drive failures in 18 months. All have been replaced under warranty, but I would certainly not call these things "really impressive."
Very disappointing, but keep in mind the Promise does not make the drives. I suspect all of your drives came from a bad batch from the manufacturer, which I had happen once from Seagate on their Barracuda drives. You might look and see if they have sequential serial numbers.
I have worked with a 6 of these systems and have only had one loose a drive so far over about a year and a half. But I also keep a box of drives around for swapping out as soon as any drive fails and just send them back to the manufacturer for replacement.
Out of curiosity, what RAID were you using and did you have multiple partitions? What type of formatting? Mac OS Extended (Journaled)?
Is there anything unusual about your electricity? Do you have it on a Battery Backup? Is the voltage in normal range (e.g., 115-120v)?
The fact that you have to rely on external cabling for a vital piece of I/O troubles me. It adds so much to the list of things that can go wrong that I would be very weary of using it a any sort of high-availability / business critical setup.
The new Mac Pro announced today seems to lean in that direction too: it does not have the same extensibility as the existing Mac Pro and would have to rely on thunderbolt connections to external drives to expand its storage. Not something that I would be happy with from a risk point of view.
Thanks for all the great resposes So if it were you would you...
A) Take the existing MacPro 12 Core and make an internal raid iwth SSDs
B) Take a MacMini Server i7 and use a raid on thunderbolt?
If those are the two options, I would go for option A. The existing MacPro allows for the expansion you need. Wim's concerns are valid, if someone unplugs a cable or the cable fails, you have an immediate catastrophic impact, possibly causing corruption in all of your databases.
B is the cheaper option.
I'd still want to plug a C option for a windows server as well, but if windows is absolutely off the table, then ignore it.
So I am think of another option, PCI Express drives in a raid on the Mac Pro. They offer 772MB/s performance.
Thinking of RAID level 5 for this.
RAID 5 suffers from poor write times in DB environments. RAID 10 (1+0) is the way to go for DB applications. It's your controller and logical setup that has an affect on your write speed in this situation, not so much the drives you use.
I'm copying and pasting this off of stackoverflow for a more technical explanation:
RAID 10 is usually recommended since the I/O is so random. Here's an example. The calculations are a bit simplified, but pretty representative.
Let's say you have a 6 drive array and your drives can do 100 I/Os per second (IOPS). If you have 100% reads, all six drives will be used and you'll have about 600 IOPS for both RAID 10 and RAID 5.
The worst case scenario is 100% writes. In that scenario, RAID 10's performance will be cut in half (since each write goes to two drives), so it will get 300 IOPS. RAID-5 will convert each write into two reads followed by two writes, so it will get 1/4 the performance or about 150 IOPS. That's a pretty big hit.
Your actual read/write pattern will be somewhere in-between these two extremes, but this is why RAID 10 is usually recommended for databases.
So theoretically, you can suffer up to a 50% drop in performance by using RAID 5 vs. RAID 10, not saying that you WILL suffer that, but the recommendation is still for RAID 10.
Each RAID has its benefits. RAID5 is very good at maximizing the amount or storage you get and has fast reads. However, it has slow writes the way the parity stripes have to be written. A database needs very fast read and writes, but often with smaller chunks of data. RAID10 is optimized for this type of network traffic and that is why RAID10 is preferred for databases. Technically RAID10 is a combination of RAID1 and RAID0, hence the name RAID10 or sometimes RAID 1+0. Technically it could even be called RAID01, but I never see anyone use that.