Post create API- loadtest


#1

Hello,
On performing Load test on post create Api via Jmeter- /teams/{team_id}/channels/{channel_id}/posts/create

we found that the results were not optimal. Below is our finding-
Average Response time(sec)- 2746.0833
Average Throughput/sec- 82.3

Here is the server configuration we are currently working with:

Jmeter(Used for load Testing)- Version 3.0
Application Server- 4 CPU / 7.5 GB RAM
Database Server(Amazon RDS instance )- db.m4.large (2CPU and 8 GB RAM)
Testing Server- M4.4xlarge Disk size: 40 GB

Is this optimal? Should this Api be taking such a large Average Response Time.
Please confirm. Also, what could be done to optimize this mattermost api.


#2

I had tested this on release 3.7.0.
Now upgraded to 3.8 and issue seems to be fixed.
Will update further if any issues still exists.

Thanks


#3

Thanks Ajita,

Pleased that your issue seems solved by upgrading to Mattermost 3.8

Let us know if you have any further questions!


#4

Hi,
I further did some load test using the same jmeter configuration as mentioned in first post for Post create api but in a different scenario.
This time I load tested this api for 10 users with 100 posts-the average response time was 210.00 ms.
As I increased the user count the response time continued to increase. Below are the findings:

When Post create API was run:

User Count 10 Post Count 100 - 210.00 ms
User Count 20 Post Count 50 - 253 ms
User Count 50 Post Count 20 - 510 ms
User Count 100 Post Count 10- 956 ms

Here is the graph for same:

When API was run in Combination ( Read and Write) i.e. Post Create ( Write) and Get Post ( Read) :
User Count 10 Post Count 100 - 248.00 ms
User Count 20 Post Count 50- 329.00 ms
User Count 50 Post Count 20 - 806.00 ms
User Count 100 Post Count 10 - 1947.00 ms

Here is the graph for same:

Is this optimal?
Please provide some insight.


#5

Hello @Ajita, have you tried these steps to maximize performance? https://github.com/mattermost/mattermost-load-test#3-perform-the-following-optimizations-to-maximize-performance


#6

Hi

Thanks for the reply.
After applying all the changes mentioned in above link, there is no increase in performance.
Please find below the screenshot of Jmeter load test for the two APIs (i.e. Post Create ( Write) and Get Post ( Read)) : https://www.screencast.com/t/U2TjYabj
where it can be seen that for condition User Count 100 Post Count 10 - 2675.00 ms
which earlier was User Count 100 Post Count 10 - 1947.00 ms

Average response time increased. Any suggestions?


#7

Hi @Ajita,

We made major updates to our loadtesting framework at https://github.com/mattermost/mattermost-load-test to make it easier to run simulation tests with better metrics.

Sorry to ask, but would you like to try re-run the tests with updated instructions at https://github.com/mattermost/mattermost-load-test?

If you still see low performance, let me know. Please include loadtestconfig.json parameters for LoadtestEnviromentConfig and UserEntitiesConfiguration to help us understand the loadtest parameters you use.