Προϋποθέσεις: Αν δεν έχετε εγκατεστημένο το module Prefork, θα πρέπει να το εγκαταστήσετε μέσω του EasyApache στο WHM και να γίνει recompile του Apache.
Εκτελέστε σε κονσόλα το Apache Benchmark:
ab -n 500 -c 50 http://www.yourdomain.gr/el
Σας προτείνουμε να δοκιμάσετε μία σελίδα σας με πολλές απαιτήσεις σε επεξεργαστική ισχύ.
Θα εμφανίσει αποτελέσματα όπως τα παρακάτω.
Document Path: /el
Document Length: 0 bytes
Concurrency Level: 50
Time taken for tests: 28.558 seconds
Complete requests: 500
Failed requests: 0
Write errors: 0
Non-2xx responses: 500
Total transferred: 243000 bytes
HTML transferred: 0 bytes
Requests per second: 17.51 [#/sec] (mean)
Time per request: 2855.831 [ms] (mean)
Time per request: 57.117 [ms] (mean, across all concurrent requests)
Transfer rate: 8.31 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.5 0 3
Processing: 337 2829 916.6 2779 6550
Waiting: 337 2828 916.6 2777 6550
Total: 338 2829 916.5 2779 6550
Percentage of the requests served within a certain time (ms)
50% 2779
66% 2917
75% 3018
80% 3111
90% 4094
95% 4836
98% 5162
99% 5453
100% 6550 (longest request)
Για να κάνετε έλεγχο της μνήμης που απαιτεί κάθε αίτηση του apache εκτελέστε σε κονσόλα:
ps aux | grep apache
Διαιρέστε το μισό της συνολικής μνήμης του διακομιστή με το μέσω όρο της απαιτούμενη μνήμης των εφαρμογών του apache.
Π.χ. ένας διακομιστής με 2GB RAM και με εφαρμογές Apache που ο μέσος όρος σε κατανάλωση μνήμης είναι 20MB, θα έχει ως αποτέλεσμα 100.
Επεξεργαστείτε το /usr/local/apache/conf/httpd.conf
Π.χ.:
nano /usr/local/apache/conf/httpd.conf
Μεταβάλλετε τις τιμές όπως παρακάτω:
<IfModule prefork.c>
StartServers 20
MinSpareServers 15
MaxSpareServers 20
MaxClients 100
MaxRequestsPerChild 5000
</IfModule>
Επεξήγηση:
StartServers = Έναρξη 20 httpd processes.
MinSpareServers = Ελάχιστα 15 processes σε αναμονή για αίτηση.
MaxSpareServers = Όχι παραπάνω από 20 processes σε αναμονή.
MaxClients = Μέγιστο 100 processes (είναι το αποτέλεσμα που πήραμε από την παραπάνω διαίρεση).
MaxRequestsPerChild = Όριο αιτήσεων 5000 ανά process.
Επίσης ενεργοποιήστε την παράμετρο KeepAlive:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 12
Ορίστε MaxKeepAliveRequests σύμφωνα με τα στοιχεία των σελίδων σας.
Ορίστε KeepAliveTimeout στο διπλάσιο από την βραδύτερο αίτηση (longest request) (6550 στο συγκεκριμένο άρθρο).
Επανεκινήστε τον apache (μέσω του cPanel).