FileMaker performance is critical to having a useful solution. FileMaker clients need to talk to a FileMaker server hosted on-premise or in the cloud. On-premise servers are usually quite fast for users at a single location, but for businesses whose work is done from multiple locations or who desire the security of the cloud, there is more to consider. Putting a solution on a FileMaker server in the cloud requires both designing the solution for performance and having a FileMaker server that responds quickly.

Different server locations affect FileMaker performance greatly due to latency – the delay in the time it takes to connect from the FileMaker client to a FileMaker server over the internet. Usually, you’ll want your FileMaker server to be as close as possible to where your users are located.

In order to test latency, we have created a server performance test database called fm(GetAllTheThings). To use it, simply upload the test file onto your FileMaker server (or potential server) and connect to it from FileMaker client. All the critical information about your environment will be shown from all the relevant FileMaker Get() functions.

Our measurement of FileMaker Server performance is based upon a script that gets called multiple times (in iterations) and records the time it takes to run the script. It then calculates the average over the number of times it is run. We call the measurement “MPI” which technically stands for Milliseconds Per Iteration, but internally here at LuminFire we call it “Matt’s Performance Index” since Matt wrote the script.

If you are testing multiple server options, you will want to connect to each from the locations where you might want to access (clients) and record the MPI. You might be surprised by which location is fastest… it doesn’t always depend upon the straight line distance on a map, but instead is based upon the internet pipeline between the client and the server.

An acceptable MPI is generally around 20-50. Anything above that might not be workable, or at the very least will likely require special design to the database solution in order to minimize long search queries and data access issues.

For example, we tested access to one of our FileMaker cloud hosted servers in our secure data center in Chicago from Israel on the other side of the world. The test shows us all the server information that is returned: IP address, name, domain, timezone, etc. The network latency was very high at 144 MPI, and while it was still somewhat usable, it was a challenge. While this is an extreme case, it’s clear that a server located closer would provide better performance. Normal MPI on this server is about 23 on good internet connections.

Here’s a demo video of the tool in use…

If your users are distributed widely throughout the country or world or you have slow internet in a rural area, it may not be possible to have one primary server with acceptable latency or speed of access to service each client well. In this case, we move to a different solution we call Apps on Demand.

Click on “View Log Entries” to see a history of server performance tests you’ve performed with the app.

Apps on Demand speeds up FileMaker access significantly because the client and the server are located in a data center where the latency is very low and the access to the FileMaker solution is provided through a special client similar to something like Citrix. All that gets communicated over the internet are the keyboard/mouse commands and screen updates. Apps on Demand does change how printers are accessed and integration with local application but the speed often makes up for those issues that have work arounds.

We hope this app is helpful and useful for the FileMaker community. To get your FREE copy, fill out the form below.

  • Download links are sent via email, so please make sure this is valid and correct!
    We hate spam as much as you do, so please let us know when it's OK to email you.

    Note: You will receive one email with your download link no matter which option you choose above.
  • This field is for validation purposes and should be left unchanged.