I have simple html page with two input fields no css, design nothing. Page size is 134KB. In my performance testing test case I am only trying to load page with 25 concurrent users all hitting at once. I have performed test with both Jmeter and Junit(multithread). The server CPU usage reaches to 100% when all threads are up. Is this a normal behavior? or is it an issue? Why does it happen? I have replicated same scenario with another page on same server and CPU usage is same. With 10 concurrent user CPU usage is 30 to 75%. I am new to performance testing.
Asked
Active
Viewed 1,502 times
1
-
1Which framework is used to serve the page? I am guessing java-based. – Frederik.L Oct 17 '17 at 06:14
-
Think time? Pacing? or just hammering as fast as possible? – James Pulley Oct 19 '17 at 00:41
1 Answers
0
its normal and depends on the server RAM/Cores, if it is simple static site , enable static file caching, specify the stack you are using , so that you can get the steps to do so.

RamiReddy P
- 1,628
- 1
- 18
- 29
-
Yes, it is normal if the transaction time is low. I.e. generating one HTTP request takes a certain amount of CPU time for your load generator, so there is a limit on how many requests per second you can generate on a single CPU core. If an HTTP transaction takes, say, 1 second - due to network delay and/or a slow server, you can max do 25 requests/second with 25 threads. This is probably not going to be a problem for your machine, CPU-wise. If, however, the transaction time is 0.01 ms, the theoretical limit for 25 VU threads is 2.5 million requests/sec. 8 cores would probably be 100% busy then – Ragnar Oct 18 '17 at 06:39
-
@Ragnar there is no where specified like there are 8 cores, and the questioner has told it is a static page, hence there wouldn't be much logic to process server side, but still i suspect some I/O blockages – RamiReddy P Oct 18 '17 at 12:07
-
@RamiReddy This is Wappalyzer details of the page. JavaScript Framework => Moment.js, jQuery 3.2.1 Web Framework => Twitter Bootstrap Web Server => Apache 2.4.17 Programming Language => PHP 5.6.23 Operating System => Windows Server Web Server Extension => OpenSSL 1.0.2d Server machine has 8GB RAM and 4 Cores CPU 3.0 Ghz. I am only loading the page, not trying to fill or submit it. – user8784770 Oct 23 '17 at 12:25
-
are you using gzip compression ? it uses cpu a lot for static resources. – RamiReddy P Oct 23 '17 at 12:54
-
Yes. My question is I have performed this same scenario on three different webpages, built in different technologies and hosted on different servers. And server CPU usage reaches 100% for 25 concurrent users on all 3 of them. We have checked GTmetrix reports of all three and enabled caching, gzip etc... One of them is login page of laravel application with only login form on page no other elements. – user8784770 Oct 24 '17 at 06:33
-
can you screen shot the network bandwidth,disk IO, CPU usage of all the Processes? and are you using any firewall ? – RamiReddy P Oct 24 '17 at 07:29
-
Haha, sorry, I don't know where I got "8 cores" from, sorry about that :) Still, the rest of the comment is relevant. it's very common that running out of CPU is dependent on the number of requests/second, and if they get a large number of requests through with 25 threads, it means transactions are fast. Would be interesting to see any mention of test duration and number of requests executed. – Ragnar Oct 25 '17 at 13:46
-
@RamiReddyPalamakula . I don't know how to screen shot the network bandwidth,disk IO, CPU usage of all the Processes? and are you using any firewall. However I have checked CPU usage of processes and Apache server process consumption is almost 80% when all threads are up. – user8784770 Oct 27 '17 at 05:08
-
@Ragnar I have tried duration of 5, 15 , 30 minutes. CPU usage reaches 100% when all threads are up, which is usually within a minute. – user8784770 Oct 27 '17 at 05:11
-
@user8784770 Duration is not very interesting unless you also mention how many requests were made. The number of requests the CPUs have to generate every second is what matters. Either you have a req/s number, or you have a total amount of requests number which, divided by test duration, gives requests/second. – Ragnar Nov 03 '17 at 12:34