What would be unfair server load?

One of my old programs was to let you design a rainwater storage system. The idea of the tool is to help people trade off how much area to collect rain from, and what volume to store (extremes being a small shed roof feeding a huge tank over winter, vs a large house roof feeding a small tank that refills every shower).

It was set up for Cardiff weather data only, but I’ve recently discovered https://www.renewables.ninja/ which holds the rainwater data for most sites in a nice friendly gui. So expanding the tool to take any location looks easy, and setting it up as a public app on Anvil completes the friendly GUI process.

BUT my monte carlo approach, simulate 10k years of rainfall and report results, is incredibly computationally wasteful. Would using Anvil as a host for something like this be taking the Michael?

simulate 10k years of rainfall and report results

That’s going in the list of interesting Anvil projects!

Running in an Anvil Server Module

In terms of what load you can use: the pricing page shows the load limit of Server Modules for each plan. The units are ‘compute units’ - one compute unit is enough to run one sever function continuously. You might use this by running one server function continuously if you have a heavy computation to do, or by running 100s of server functions sporadically. It’s a time-averaged measure, so you might have some things running concurrently.

The tiers are:

Free plan: 0.1
Individual plan: 1
Business plan: Starts at 5, you can buy more
Dedicated plan: You pay for cloud servers at cost price, so you can use all that capacity
Enterprise plan: Are always on a case-by-case basis

We take a ‘soft’ approach to managing these limits: we’ll let you know if you’re going significantly over, and give you plenty of chance to adjust accordingly.

Uplink - run it outside of Anvil and connect it up

If you want to manage your own back-end for heavy computation, you could use the Uplink. This essentially allows you turn any computer running Python into a Server Module - you can mark functions as anvil.server.callable. You can also anvil.server.call from it into your app.

You could do this in a Python script on your workstation, an AWS EC2, a Jupyter Notebook, even the Python REPL. It’s available on all plans including the Free Plan, it’s under ‘Uplink’ in the Gear Menu

Hi @shaun, I was just looking at the pricing plans(see attached picture) and I discovered the traffic is the same for both the Individual and Business plans, Medium.

Does that mean they have the same compute units, which is 1 compute unit for the Individual plan?
I think the business plan use to have 5 compute units as mentioned in your post above.
Please I need more clarification.
Thanks.

Hi @Agobin - we’ve changed the wording on that page, but the actual limits are as they have always been :slight_smile:

So the more compute units, the more traffic my application can handle. Is this correct?

Correct!

Awesome, thanks