Tuning delle performance di configuration di Apache

Ho appena acquistato il mio primo VPS con 2 GB di RAM. Avevo installato Apache + mySQL e 1 sito principalmente statico e 2 sito wordpress (per il test). In un primo momento, la mia memory è di picco a 1 GB, il che indica che ha bisogno di ulteriori configurazioni.

Here is the result for running ps -ylC httpd --sort:rss S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD S 0 20729 1 0 80 0 10032 69902 poll_s ? 00:00:00 httpd S 48 20770 20729 0 80 0 22768 73372 inet_c ? 00:00:00 httpd S 48 20735 20729 0 80 0 24020 73897 inet_c ? 00:00:00 httpd S 48 20740 20729 0 80 0 26524 74302 inet_c ? 00:00:00 httpd S 48 20733 20729 0 80 0 27792 74831 inet_c ? 00:00:00 httpd 

Qui il risultato usando il command superiore

 top - 15:42:01 up 18 days, 15:45, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 26 total, 1 running, 24 sleeping, 0 stopped, 1 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 2097152k total, 837604k used, 1259548k free, 0k buffers Swap: 4194304k total, 15836k used, 4178468k free, 679184k cached 1 root 20 0 19208 416 292 S 0.0 0.0 0:00.01 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd/179 3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper/179 491 root 20 0 80300 776 468 S 0.0 0.0 0:18.75 sendmail 540 smmsp 20 0 76024 388 260 S 0.0 0.0 0:00.08 sendmail 556 root 20 0 114m 368 284 S 0.0 0.0 0:02.47 crond 726 root 16 -4 10660 8 4 S 0.0 0.0 0:00.00 udevd 876 root 20 0 64272 8 4 S 0.0 0.0 0:00.00 saslauthd 877 root 20 0 64272 8 4 S 0.0 0.0 0:00.00 saslauthd 908 root 20 0 181m 864 416 S 0.0 0.0 0:00.04 rsyslogd 928 root 20 0 22092 8 4 S 0.0 0.0 0:00.00 xinetd 2100 root 20 0 105m 1180 1176 S 0.0 0.1 0:00.00 mysqld_safe 2189 mysql 20 0 679m 19m 3888 S 0.0 0.9 0:41.22 mysqld 18759 root 20 0 94084 4772 3420 S 0.0 0.2 0:01.03 sshd 18761 root 20 0 105m 1952 1488 S 0.0 0.1 0:00.16 bash 20729 root 20 0 273m 9.8m 5124 S 0.0 0.5 0:00.04 httpd 20733 apache 20 0 292m 27m 4804 S 0.0 1.3 0:00.54 httpd 

Ecco le modifiche apportte in httpd.conf

 # KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to "Off" to deactivate. # KeepAlive On # # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. # MaxKeepAliveRequests 15 # # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAliveTimeout 5 

Ecco la mia impostazione prefork-MPM

 # prefork MPM # StartServers: number of server processes to start # MinSpareServers: minimum number of server processes which are kept spare # MaxSpareServers: maximum number of server processes which are kept spare # ServerLimit: maximum value for MaxClients for the lifetime of the server # MaxClients: maximum number of server processes allowed to start # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule prefork.c> StartServers 2 MinSpareServers 3 MaxSpareServers 3 ServerLimit 35 MaxClients 35 

Inizialmente volevo solo avere MongoDB qui. Ma sto pensando di spostare le mie installazioni WP anche dal hosting condiviso. Nel complesso, avrò 2-5 siti wp, 1 applicazione Web CodeIgniter (no DB), 2 futura applicazione Web su fuelphp in esecuzione MongoDB.

Mi piace mantenere il ram a un massimo di 1.2GB se ansible. Quali suggerimenti per aggiustare ulteriormente il lato apache? Vedrò se posso ridurre l'impronta mysql.

  • Cercando di installare phpmyadmin su centos - mysqli mancanti
  • Come faccio ad aggiungere un superutente MySQL con autorizzazioni root?
  • Quali opzioni di configuration per MySQL forniscono i miglior miglioramenti di velocità?
  • Quale formato binlog da utilizzare per MySQL Replication?
  • può 'Percona MySQL Data Recovery' essere utilizzato per recuperare le tabelle droped se il datadir file system è montato come /
  • Recupero di database MySQL da guasto totale
  • Aggiornato Postfix, il relè è rotto adesso
  • Può MySQL effettivamente approfittare di 64 GB di RAM?
  • 3 Solutions collect form web for “Tuning delle performance di configuration di Apache”

    "Come faccio a rendere il mio sito web più veloce" è davvero una questione troppo complessa per rispondere a questo forum. Tuttavia alcune cose da notare:

    • sì l'utilizzo della memory è molto alto, anche per WordPress
    • che import? A less che tu non sapessi che sta interessando le performance allora perché preoccuparsi per questo?
    • l'impostazione di minSpareServers allo stesso valore di maxSpareServers non è un buon modo per far fronte ai cambiamenti dei profili della domanda – Apache limita la velocità con cui vengono avviati nuovi server, suggerisco di modificare maxSpareServers a 5
    • KeepAliveTimeout 5 – hai cambiato questo? Questo è ancora il valore predefinito e l'impostazione predefinita è troppo elevata a less che tu non conosca che stai facendo un sacco di roba Ajax / COMET sulle connessioni mobili – consiglia 2
    • Si consideri l'aggiunta di un proxy inverso, come il nginx o la vernice
    • Utilizzare plugin per la cache totale ESI o W3 per l'installazione di WordPress (ESI richiede un proxy inverso di tipo ESI come Varnish o ATS)
    • non hai dato alcun dettaglio su come MySQL è configurato. Se stai usando innodb allora il pool di buffer dovrebbe essere dimensionato per utilizzare un pezzo di memory significativo (vale a dire che si dovrebbe puntare a RIDURRE la quantità di memory libera sul sistema). Se è MyISAM allora è necessario mantenere un sacco di memory disponibile per VFS
    • Dovresti iniziare qualsiasi esercizio di tuning della memory spogliando le cose in Apache che non ti servono
    • Non si dice come PHP sia configurato / richiamato. Idealmente dovrebbe essere mod_php e una cache opcode
    • Non consiglio di passare a un altro server web a less che tu non abbia più traffico di 35 connessioni simultanee

    Ho appena commutato a Nginx dopo aver fatto dei test. La prestazione è molto migliore ora (Amazon EC2 micro istanza con 613MB + versioni multipli strati su Java).

    Voglio mantenere Apache, vorrei raccomandare di investire in uno di quei buoni libri sulle performance, ad esempio .

    1. Sollevare MaxKeepAliveRequests. Il numero basso di MaxKeepAliveRequests causa il riavvio di apache2 per each volta che MaxKeepAliveRequests raggiunto.

    2. Disabilita i moduli apache non utilizzati, come un auth ldap (se u non ne ha bisogno)

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.