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
- User ID case sensitivity
I see that through REST (and SDK as well), getting a user is not case sensitive. And even though documentation does not clearly state that it is, the wording "V...
- Any way to temporarily bypass the email ...
Hey guys, any way to bypass the email verification to use the accounts again? i need to recover some projects that due to recent changes have been stopped, and ...
- How to use Sites on selfhosted appwrite
whenever I try to create a site even with template it says 404 nginx error