CodeIgniter Forums
Is this a good Benchmark? - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Using CodeIgniter (https://forum.codeigniter.com/forum-5.html)
+--- Forum: Best Practices (https://forum.codeigniter.com/forum-12.html)
+--- Thread: Is this a good Benchmark? (/thread-63525.html)

Pages: 1 2


Is this a good Benchmark? - portaflex - 11-09-2015

Just to know your opinion, without any other clue ...
CI3 on a LMDE Mint Intel i5 8Gb machine.
thanks.


Benchmarking clinicadecot.org (be patient)
Finished 4484 requests

Server Software:          Apache
Server Hostname:        clinicadecot.org
Server Port:                 443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,1024,256

Document Path:           /citas
Document Length:        1 bytes

Concurrency Level:      10
Time taken for tests:    30.004 seconds
Complete requests:      4484
Failed requests:           0
Non-2xx responses:     4484
Total transferred:         2641076 bytes
HTML transferred:       4484 bytes
Requests per second:  149.45 [#/sec] (mean)
Time per request:        66.913 [ms] (mean)
Time per request:        6.691 [ms] (mean, across all concurrent requests)
Transfer rate:              85.96 [Kbytes/sec] received

Connection Times (ms)
                   min  mean[+/-sd] median   max
Connect:        6   21  13.1     17      69
Processing:    20   45  22.5     42     461
Waiting:         20   45  22.5     42     461
Total:             33   67  27.3     61     480

Percentage of the requests served within a certain time (ms)
 50%     61
 66%     71
 75%     78
 80%     82
 90%     92
 95%    101
 98%    112
 99%    121
100%    480 (longest request)


RE: Is this a good Benchmark? - sintakonte - 11-10-2015

i guess it depends
is this just the welcome controller or is there any business logic involved ?


RE: Is this a good Benchmark? - portaflex - 11-10-2015

(11-10-2015, 12:57 AM)sintakonte Wrote: i guess it depends
is this just the welcome controller or is there any business logic involved ?

Thank you for your reply !!!

The controller handles the appointments list of a medical office. It makes 7 DB queries (3 more queries are cached), extends DS_Controller and instantiates 3 classes. DS_Controller instantiates 7 other classes making services available. Those services are out of the application folder and I make them available through Composer autoload (psr-4).

What do you think?

Best regards.


RE: Is this a good Benchmark? - sintakonte - 11-10-2015

its absolutely fine
95% of your requests are nearly below 100ms - you shouldn't concerned about performance issues Wink


RE: Is this a good Benchmark? - portaflex - 11-10-2015

(11-10-2015, 07:41 AM)sintakonte Wrote: its absolutely fine
95% of your requests are nearly below 100ms - you shouldn't concerned about performance issues Wink

Thanks a lot my friend. Cool


RE: Is this a good Benchmark? - mwhitney - 11-10-2015

(11-09-2015, 05:14 PM)portaflex Wrote: Complete requests:      4484
Failed requests:           0
Non-2xx responses:     4484

This may indicate that you have a configuration issue in your .htaccess file (or however you are rewriting your URLs), or some other issue. A normal response would be in the 2xx range, which is why the benchmark is listing the number of Non-2xx responses. One cause for something like this is a rewrite rule ending in something like the following:

Code:
[R=301,L]


This sends a 301 "Moved Permanently" message to the client. While this is appropriate for certain types of rewrite rules, it shouldn't be used for all of them. It's also possible that this could be corrected by simply updating the benchmark itself to use a different URL.

Another possibility is simply that the server is responding with 304 "Not Modified", but it would be strange for a benchmark to use a cache for the entire test.

So, while the benchmark indicates that your response times are OK, it may also be indicating a configuration issue.


RE: Is this a good Benchmark? - portaflex - 11-13-2015

Thank you very much for your review, Mat.

This is my .htaccess:

Code:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

And this is my routes.php

Code:
$route['default_controller'] = "inicio";
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

Again, thanks!!


RE: Is this a good Benchmark? - portaflex - 11-13-2015

This is the ab output with the command: " ~ $ ab -n 1000 -c 10 -v2 https://clinicadecot.org/citas "
The -v2 gives more information.

This is the ab output:

Code:
Server Software:        Apache
Server Hostname:        clinicadecot.org
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,1024,256

Document Path:          /citas
Document Length:        1 bytes

Concurrency Level:      10
Time taken for tests:   7.091 seconds
Complete requests:      1000
Failed requests:        0
Non-2xx responses:      1000
Total transferred:      589000 bytes
HTML transferred:       1000 bytes
Requests per second:    141.02 [#/sec] (mean)
Time per request:       70.913 [ms] (mean)
Time per request:       7.091 [ms] (mean, across all concurrent requests)
Transfer rate:          81.11 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        6   24  10.3     27      61
Processing:    21   47  42.1     39     460
Waiting:       19   45  41.9     38     460
Total:         31   71  42.4     64     474

Percentage of the requests served within a certain time (ms)
  50%     64
  66%     69
  75%     78
  80%     82
  90%     89
  95%     92
  98%    106
  99%    451
100%    474 (longest request)

And this is one of the warnings:

Code:
WARNING: Response code not 2xx (302)
LOG: header received:
HTTP/1.1 302 Found
Date: Fri, 13 Nov 2015 07:56:06 GMT
Server: Apache
Set-Cookie: cdsslpcookie=3c1c938e7caf6512ac41a4a38cb76d08; expires=Fri, 13-Nov-2015 09:56:06 GMT; Max-Age=7200; path=/
Set-Cookie: ci3session=11e5405d04cc401a48baa1322a77148e78af249d; expires=Fri, 13-Nov-2015 09:56:06 GMT; Max-Age=7200; path=/; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: https://clinicadecot.org/login
Content-Length: 1
Connection: close
Content-Type: text/html; charset=UTF-8

Thank you.


RE: Is this a good Benchmark? - portaflex - 11-13-2015

Well, this is a little embarrassing. I found the issue. Since I had the auth system on, I was not querying the page "citas" but the "login" page. This is the real result of the benchmark:

Code:
Server Software:        Apache
Server Hostname:        clinicadecot.org
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,1024,256

Document Path:          /citas
Document Length:        39242 bytes

Concurrency Level:      10
Time taken for tests:   16.695 seconds
Complete requests:      1000
Failed requests:        932
   (Connect: 0, Receive: 0, Length: 932, Exceptions: 0)
Total transferred:      39788768 bytes
HTML transferred:       39241768 bytes
Requests per second:    59.90 [#/sec] (mean)
Time per request:       166.953 [ms] (mean)
Time per request:       16.695 [ms] (mean, across all concurrent requests)
Transfer rate:          2327.37 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        6   18  13.0     14      96
Processing:    79  148  28.8    146     249
Waiting:       64  127  26.4    124     219
Total:         90  167  30.0    163     262

Percentage of the requests served within a certain time (ms)
  50%    163
  66%    175
  75%    186
  80%    192
  90%    207
  95%    226
  98%    238
  99%    244
100%    262 (longest request)

Not so good, I'm afraid. Huh


RE: Is this a good Benchmark? - mwhitney - 11-13-2015

Honestly, with that many failed requests, I'd expect that something shut down your test, or that there's a significant configuration issue with the server. If you're running the test from a remote machine over the network, I wouldn't be surprised if some network security software decided the test was an attack and stopped responding to your client machine for the remainder of the test.

On the other hand, since your previous test was returning nothing more than a 302, the response times which seemed OK when receiving content do seem more problematic. I'm not sure, though, what kind of failure would result in the longest request taking only 262ms, unless it's only counting the successful responses in that last listing.