Kaylee24
Kaylee24

Reputation: 21

What affects TPS, hits per second in performance testing?

I do a stress test to determine the maximum number of TPS(Transaction per second), Hits per second of a server by making HTTP requests through JMeter.

When I run script in Jmeter with different clients (tested on the same server, same script), I find that the number of tps(or hits per second) that the server can handle is different.

Assume that server can handle maximum of around 500 TPS when run script in client 1, 400 TPS when run script in client 2.

I am very confused with the following issues:

  1. Why is there such a difference between two clients?
  2. What affects TPS, hits per second ?
  3. Although when doing stress test, I found that the server could only handle maximum of around 500 TPS, is there any way to increase the server's performance, increase the max number of tps that the server can handle?

Thanks in advance especially if anyone who can solve this problem for me !!

Upvotes: 2

Views: 9079

Answers (2)

Kaylee24
Kaylee24

Reputation: 21

@Dimitri T, Thank you very much for your help !!!

hits per second

CPU, RAM Of server

Upvotes: 0

Dmitri T
Dmitri T

Reputation: 168092

If you run the same JMeter test from different machines and get different results it might be the case JMeter cannot send requests fast enough

JMeter is a normal Java application and it's default configuration is good for tests development and/or debugging, however you need to do some tuning when it comes to load test execution.

  1. First of all make sure to follow JMeter Best Practices
  2. Then you need to ensure that JMeter properly utilizes operating system resources, you might want to increase JVM Heap size and play with Garbage Collector configuration in order to:

    • allow JMeter to use not less than 30 and not more than 80% of total avaiable heap space
    • GC shouldn't happen too often as it "pauses" the JVM execution
  3. JMeter must not overload the underlying operating system, it should have enough headroom to operate in terms of CPU, RAM, etc. so it worth checking the OS health, it can be done using JMeter PerfMon Plugin
  4. And last but not the least, if you run into the limits of the machine you can consider running JMeter in Distributed Mode so both client1 and client2 will run the same test providing cumulative 800 TPS or even more (given your server can handle such a load)

Upvotes: 1

Related Questions