Hi, I'm running appwrite on my vps.. I just want to know the performance and limits of appwrite on my vps. Is there anyway to check the performance?
I'm general, you would perform a load test with something like k6
You can run a few tests type to get a grasp of your Appwrite performance.
Tests
Run your tests against some endpoint that will have to do some Appwrite logic. The best would be
- POST creating document -
/v1/databases/{databaseId}/collections/{collectionId}/documents - GET getting documents -
/v1/databases/{databaseId}/collections/{collectionId}/documents - POST executing a function
/v1/functions/{functionId}/executionsMake sure to turn off abuse protection, check_APP_OPTIONS_ABUSEin https://appwrite.io/docs/environment-variables#general
Load test First as Steven suggested run a "load test" in which you'll test the ability of your server to response to as much connections possible, You can use oha/k6s for that one
Stress test
Second, now you can run a "Stress test" in which you're testing the ability of your Appwrite server to remain responsible over time!
Because you're testing the server ability to server N users it will be best to add sleep to your k6s testing suite, like so:
import http from 'k6/http';
import {sleep} from 'k6';
export default () => {
const data = {
"data": JSON.stringify({data:'someData'})
}
// Executing a function.
const urlRes = http.post('https://you.appwrite.cloud/v1/functions/{functionId}/executions',JSON.stringify(data),{
headers: {
'Content-Type': 'application/json'
'X-Appwrite-Project': '5df5acd0d48c2'
},
});
sleep(1);
}
Without adding the sleep the stress tests become load testing and won't give close-to-the-truth results.
Make sure to run all those tests without any DNS in the middle like Cloudflare (you can avoid that by using custom hosts file in the local machine)
Links:
I guess I need to use api keys so that I won't be rate limited by appwrite
Yes Or you can disable the abuse which remove the rate limiter
But there are no limitation for api keys right?
No
Recommended threads
- Function global variables
when i create a top-level global variable in go or bun how will it behave? is the heap getting renewed on every execution or could i do some kind of temp. cachi...
- sh: vite: Permission denied
When installing the vue starter template as site and then adding DaisyUI, i get the error `sh: vite: Permission denied`. I also got this issue (with a fresh tem...
- Clean install of 1.9.0 shows errors in a...
I just run a full clean install of Appwrite on my server following the Manual installation guide in the docs page. The console seems to work, visually there d...