"Is a Mac Mini a good server for ten users?" = "how long is a piece of string."
The number of users is a poor proxy for deciding how many resources you’ll need for your FileMaker Server; there is a huge difference between 10 users just reading data or ten users pounding away, creating records, and running summary reports.
Add that to the design patterns and architectural choices made by the developer that can cause one solution to perform worse than another (such as the over-use of unstored calcs and summaries, wide tables, busy layouts, lack of proper theming, etc.).
Add it all up, and picking a good server to run your solution is a bit of a dark art; it is a task that is made difficult because of the sheer number of variables involved.
“All things being equal;
- Is FileMaker Server 19 faster than 18, in what areas?
- Is FileMaker Server on Linux faster than on Windows?
- What is the effect of faster cores? Or more cores?
- What effect is there if I increase the FileMaker Server cache?
- How much impact is there if I use an SSD, and what operations become quicker?”
Punisher is a tool that I built to help me figure out how FileMaker Server works and help me determine which deployment choices make a bigger impact for any given solution.
Punisher abstracts out the effect of the client’s processing power or the client-to-server network speed/latency; it only tests the server’s capabilities. Punisher also abstracts out any design choice differences between different solutions; it always runs the exact same tests, just on different hardware configurations.
Punisher tests the speed of FileMaker Server by spawning simultaneous (concurrent, parallel) PSoS sessions that run through a collection of scripts that run the gamut of the different types of operations your solutions would typically do: some scripts are heavy on database operations (record creation, record edits, sorting, etc.), other scripts are heavy on the computational resources available, and then some use import and export to tax the disk i/o.