How to improve the through put of phoenix web application

Hi,
I am tring to explore how much scale of my application could reach.
I am building a very simple application which only has one rest api function.
First, I build the api login which will accept the user/password and compare them with the user stored in the database, then generate a key and return to user.
Basicly, this api has two operations
1.Read postgres db
2.Generate token and write to memory

I am using Jmeter to simulate 100 users concurrent access case.

Then I got the following result.
The average resp time is 37294ms and error rate is 34%.

And from the error log, this should caused by http timeout.
org.apache.http.NoHttpResponseException: 10.193.0.223:4001 failed to respond
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:141)

My app depolyed with docker.
OS:Ubuntu 16.04.2 LTS, 8CPU and 16G Mem

I guess there will be some improvement about this.
My question is how could I find the bottle neck and imporve the overall throughput.
I want to know the limit of phoenix web application.

Thanks

Can you share more about your application?

Like the code in question and your test setup?

Did you build your application in dev or prod “mode”? Have you adjusted the pool sizes for DB? Does your app produce any output in the logs?