33 million hits? Really? From stock?

Permalink
Hello,

I'm not looking for an answer, I just wanted to supply kudos to C5 for their outstanding product. I've taken a look at C5 a couple times over the last two years and notice now that I never even scratched the surface.

I've familiarity with:

* Drupal
* Wordpress
* Joomla
* ExpressionEngine
* Custom w/Django, Symfony, etc.

And I have to say that C5 comes closest (besides custom applications, which have the major downside of development time) to my ideal of the perfect CMS blend of power and simplicity. It's quite understandable for a 'client' but powerful enough to build complex functionality in to it without breaking my heart.

With all that aside, let's get back to my title -- I took Concrete5 stock installation and placed it on a $10 VPS running Ubuntu 12.04 and Zend Server Free Edition using NGINX, the database resides on another $10 VPS running MariaDB as the backend.

Before putting the site into maintenance mode until I got everything worked out, I decided to test C5 out.

1. Turn on full page caching.
2. Run Blitz.IO test, 1 to 1000 users in 1 minute.

Results... well, see for yourself:

https://www.blitz.io/report/b66dbbea28e7f52eac601c0e9b8afda9#/...

This rush generated 24,444 successful hits in 57.50 seconds... The average hit rate of 425.11/second translates to about 36,729,767 hits/day.

With less than 1% Errors, which all occurred near the 1000 concurrent user mark.

Frankly, this is amazingly impressive and I am shocked that out of the door it gets better caching by 10% over a very optimized Wordpress with Super-cache turned on.

Kudos again.
Kevin Morgan

kaylus
 
frz replied on at Permalink Reply
frz
You sir, are awesome. Thank you for this.

If you have the energy, writing this up as a short article on optimizing concrete5 for performance in our how-to section would be amazing:
http://www.concrete5.org/documentation/how-tos/...

I've given you some badges and karma regardless. It's so refreshing to hear that we've solved the performance challenges of earlier versions of concrete5..
RadiantWeb replied on at Permalink Reply
RadiantWeb
Yeah, agreed. A how to would be great. But also, get your voice and input heard in other mediums. Reddit and other social mediums would be great.

An article on comparison data between the different CMS's would be fantastic. Something community members could spread the word about I think would be ideal.

I know I would spam that one in social media.

ChadStrat
andrew replied on at Permalink Reply
andrew
That is fantastic. Really great to hear. Thanks Kevin.
NewUserNow replied on at Permalink Reply
Dude, why bother lying.

On a highly tuned 24 core server, 256gb of RAM, SSD's with a php hello world echo and nothing else running on the server VANILLA PHP can only achieve 28,326 hits with 0 errors & 0 timeouts

So your 4,000 short of that on a $10 VPS with a CMS in front of it is plain silly.

Either you have made up the server specs or you have put a plain html/php file in the path.

That is the simple reality


Edit.

Now re-reading your post I see why. You have turned on FULL PAGE CACHING which tells me that the site is spitting out a cached html page without even touching PHP one bit. Now it makes sense!
kaylus replied on at Permalink Reply
kaylus
It does help to read an entire post before impugning the integrity of the individual who wrote it, simply because of the above.

The point of my post was to show the end-result of tuning for performance. The news articles like "10 million hits per day on Wordpress" with W3 Total Cache, APC, and PHP-FPM are heavily viewed, and I test for performance quite a bit. I also test for Dynamic/Static mixtures, and byte-code caching, web server software, and method used to server have a MASSIVE impact on that.

Vanilla PHP isn't. Newer versions have bytecode caching turned on by default.

http://thephp.cc/viewpoints/blog/2013/06/php-5-5-out-of-the-box-byt...

You specify your hardware but not your 'Vanilla PHP' configuration -- but just for shits and giggles, I set a simple PHP Hello World to my root and ran the test on my $10 VPS and here is the result:

<?php
print("Hello World!");
?>

https://www.blitz.io/report/cfb0c7129f38b892809642762619278a...

--EDIT--
This is with the following:
PHP 5.5.8.3
NGINX Current
PHP-FPM
Precise Ubuntu
--EDIT

The average hit rate of 494.73 /second translates to about 42744710 hits/day. ---- 18ms response.

Perhaps you might consider tuning your configuration a bit more? Or maybe running a current version of PHP on NGINX with PHP-FPM.

-Kevin

--EDIT2
I ran the above test with <?php phpinfo() ?> as it would obviously cause more of a hit:

https://www.blitz.io/report/cfb0c7129f38b89280964276267ba9be#/...

The average hit rate of 424.52 /second translates to about 36678678 hits/day. ---- 165ms response.
--EDIT2
NewUserNow replied on at Permalink Reply
LOL.

I've forgotten more about tuning servers than you will ever know.

I really don't believe your server spec claims, however I will spin up a $10 digital ocean, install nginx, php-fpm and run the tests - there is a 1 in a million chance you're right and I'm wrong.
kaylus replied on at Permalink Reply
kaylus
QUOTE: there is a 1 in a million chance *I'm not a troll*

There, I fixed your sentence for you. Enjoy your tests!

Thanks Concrete5 developers for putting this out, I will write up an article when I'm finished with my current site!
NewUserNow replied on at Permalink Reply
Your claim is the very definition of a troll kid.

Evidently you will not see reason and if people are stupid enough to think that your so called $10 server can do this then more fool them.
NewUserNow replied on at Permalink Reply
Oh and just for you here are the more likely results of your $10 vps - (1000 requests for brevity) on a 'hello world' - on a digital ocean $10 VPS which by your IP address is what yours is (correct me if I'm wrong)

Concurrency Level: 500
Time taken for tests: 9.961 seconds
Complete requests: 1000
Failed requests: 0
Keep-Alive requests: 0
Total transferred: 203000 bytes
HTML transferred: 12000 bytes
Requests per second: 100.39 [#/sec] (mean)
Time per request: 4980.334 [ms] (mean)
Time per request: 9.961 [ms] (mean, across all concurrent requests)
Transfer rate: 19.90 [Kbytes/sec] received


And here are the true events of a vanilla php highly tuned high grade server.

Concurrency Level: 500
Time taken for tests: 0.259 seconds
Complete requests: 1000
Failed requests: 0
Non-2xx responses: 0
Keep-Alive requests: 0
Total transferred: 218434 bytes
HTML transferred: 17236 bytes
Requests per second: 3862.08 [#/sec] (mean)
Time per request: 129.464 [ms] (mean)
Time per request: 0.259 [ms] (mean, across all concurrent requests)
Transfer rate: 823.84 [Kbytes/sec] received

Both servers are installed with the exact same kernel, the exact same Nginx version, the exact same php && fpm version both tuned to the same level.
kaylus replied on at Permalink Reply
kaylus
You've found me out! I'm secretly a shill for DO and forgot to name drop. No... I'm secretly a shill for Concrete5 and fabricated my server specs! No... I'm secretly a worker for Blitz.IO and fabricated test results!

Ignoring your inability to communicate without ad hominem attacks or attempting to belittle others:

If those are your performance results then it is (and will be to most) fairly obvious that you are correct when you said "I've forgotten more about tuning servers...". Your results look similar (on the DO side) to what my results were prior to optimizing my tuning:

(this is a result prior to tuning the VPS and NGINX fully)https://www.blitz.io/report/b66dbbea28e7f52eac601c0e9b6d29c2...

It's fairly trivial to use Google (www.google.com) to find others who have managed similar configuration setups.

Granted, many sites that do this are relying on the fact that they have OpCaching at the byte-code level, page caching at the website level, and some even use Varnish caching (with exception sets for dynamic data) to achieve it.

My point (again, if you read) was that in a cached configuration on a tuned server it gets over 10% better performance than a Wordpress with WP Super Cache / W3 Total Cache / etc and I was praising Concrete5 for that. Your results may vary, and I'm sure mine would if I tested on a fully complete site with dynamic content.

Here are some guides:
http://blog.martinfjordvald.com/2011/04/optimizing-nginx-for-high-t...
http://www.slashroot.in/nginx-web-server-performance-tuning-how-to-...
https://rtcamp.com/tutorials/nginx/optimization/...
http://lukasz.cepowski.com/devlog/43,high-performance-web-server-wi...

Feel free to find the other examples as well, one guy is running 18m hits per day on 128mb with Drupal and Varnish. Another 17m hits per day on 512mb with Ruby. Of course, the alternative is that you are correct and that everyone running similar configurations is delusional. I'm not sure I buy that.

I've added enough detail to this post that a casual passer-by will be able to move forward, and will likely see your posts for what they are so this is my last post on this thread (to you). Have a great day, and let me know how the results of those tuning guides do for you -- it might make your beast server that much more worthwhile.

Kind Regards,
Kaylus
frz replied on at Permalink Reply
frz
Let's all remember the golden rule today.


Sent from Mailbox for iPhone
RadiantWeb replied on at Permalink Reply
RadiantWeb
Whoever owns the gold makes the rules??? :-P

ChadStrat