I am running a heavy real-time updating website. The amount of recourses needed per user are quite high, ill give you an example.
Setup
Every visit
The application is php/mysql so on every visit static and dynamic content is loaded.
Recourses: apache,php,mysql
Every second (no more than a second will just be too long)
The website needs to be updated real-time so every second there is an ajax call thats updates the website.
Recourses: jQuery,apache,php,mysql
Avarage spending for single user (spending one minute and visited 3 pages)
Apache: +/- 63 requests / responsess serving static and dynamic content (img,css,js,html)
php: +/- 63 requests / responses
mysql: +/- 63 requests / responses
jquery: +/- 60 requests / responses
Optimization
I want to optimize this process, but I think that maybe it would be just the same in the end.
Before implementing and testing (which will take weeks) I wanted to have some second opinions from you guys.
Every visit
I want to start off with having nginx in the front and work as a proxy to deliver the static content.
Recources:
Dynamic: apache,php,mysql
Static: nginx
This will spread the load on apache a lot.
Every Second
For the script that loads every second I want to set up Node.js server side javascript with nginx in te front.
I want to set it up that jquery makes a request ones a minute, and node.js streams the data to the client every second.
Recources: jQuery,nginx,node.js,mysql
Avarage spending for single user (spending one minute and visited 3 pages)
Nginx: 4 requests / responsess serving mostly static conetent(img,css,js)
Apache: 3 requests only the pages
php: 3 requests only the pages
node.js: 1 request / 60 responses
jquery: 1 request / 60 responses
mysql: 63 requests / responses
Optimization
As you can see in the optimisation the load from Apache and PHP are lifted and places on nginx and node.js. These are known for there light footprint and good performance.
But I am having my doubts, because there are still 2 programs extra loaded in the memory and they consume cpu.
So it it better to have less programs that do the job, or more. Before I am going to spend a lot of time setting this up I would like to know if it will be worth the while.