BlogFileMaker

Introducing Punisher

By October 28, 2020 13 Comments
Screenshot of the FM-Punisher GitHub repo

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

FileMaker Server Comparison

The results are presented in several ways, including a nice JavaScript pivot table so that you can slice-and-dice the results to look at it in different ways.

Punisher is available as an open-source project on GitHub:
https://github.com/soliantconsulting/fm-punisher

We are looking forward to your feedback on thoughts on how to improve it. Report your ideas on GitHub or find us on community.claris.com.

Wim Decorte

Wim Decorte

Wim is Director, Claris Practice at Soliant. He is a FileMaker 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 and 18 Certified FileMaker Developer and the author of numerous Tech Briefs and articles on FileMaker Server. Wim is one of the very few multiple FileMaker Excellence Award winners and was most recently awarded the FileMaker Community Leader of the Year award at the 2015 FileMaker Developer Conference. He is also a frequent speaker at the FileMaker Developer Conference and at FileMaker Developer groups throughout the world. In addition to being a renowned expert on FileMaker Server, Wim also specializes in integrating FileMaker with other applications and systems. His pet project is the open source fmDotNet connector class that he created.

13 Comments

  • Avatar Will Bullard says:

    This looks like a wonderful tool. Thank you for sharing.

  • Avatar nana says:

    I am soo excited to try this tool out. Have been looking for solutions for why our in-house server with all the amazing hardware is soo slow

  • Avatar Marco Pérez says:

    Looks great, I have to try it

  • Avatar Marco Pérez says:

    Sorry to say but it works only if you have the English date format in your computer.

    • Wim Decorte Wim Decorte says:

      Hi Marco, feel free to raise an issue on GitHub and let us know which parts don’t work. We’ve put the main file up as a clone to try and avoid international date/number issues. But let us know where it fails and we can tackle it.
      Best regards,
      Wim

    • Avatar Javier Durá says:

      Hi, Marco.
      If you are using a Spanish system, just edit the “_Date_convertTS” custom function like this:
      //Format strings
      //FMTSFormat = “mm/dd/yyyy hh:nn:ss” ;
      FMTSFormat = “dd/mm/yyyy hh:nn:ss” ;

      • Avatar Wimmmmm says:

        Thanks for pointing this out!
        In Belgium — Dutch format — I would have a similar issue, it would read as “dd/mm/yyyy hh:mm:ss”.

        • Avatar Jeroen Aarts says:

          Yes, that solves the issue – editing the custom function. Also, for dd/mm/yyyy date formatting, make sure that you set the locale on the server to align to this format. I notice that for example AWS Windows Server instances that you can buy on the AWS Marketplace have by default the US formats.

  • Avatar Pavlo says:

    Thank you for great tool!
    Please add some warning if none of scripts are selected to test.
    Thank you.

  • Avatar Miguel Angel Aguerrea says:

    Hi Win,
    I have tested this on a Mac Mini M1 and would like to send you the results.
    From the ‘Server config’ screen I have exported -Export Config & Runs’- a .json file. Should I send you this file?

  • Avatar Vincent_L says:

    Hi,
    I should become the Geekbench of Filemaker. To that end, it should upload results to you, so you could put up a Geekbench browser type wesbite with Punisher

    • Wim Decorte Wim Decorte says:

      Not a bad idea 🙂
      In the meantime you can export the test runs and either email them to me or import into your own ‘central’ copy. There is a button “export found set” on the Test Runs layout that will produce a Json file with all the relevant data. On the “Configs” layout is a button to import them.

Leave a Reply