Ottimizzazione di Apache per VPS di fascia bassa su Ubuntu 14.04

Apache è molto facile da installare e inizializzare, ma viene fornito con numerosi moduli preinstallati e di conseguenza potresti avere problemi di prestazioni durante l'esecuzione su un VPS con RAM bassa.

Quindi, non è sempre necessario un server più grande, ma puoi semplicemente configurare le impostazioni di Apache nel modo giusto e ottenere le migliori prestazioni possibili. Ecco alcune cose che dovresti fare per riuscirci.

Questo tutorial è per Ubuntu 14.04 LTS ma i principi sono simili anche alle versioni precedenti.


1. Disabilitare i moduli Apache

È possibile visualizzare un elenco di tutti i moduli installati con il comando ls /etc/apache2/mods-available/e di tutti i moduli attualmente attivi ls /etc/apache2/mods-enabled/.

Nell'installazione iniziale di Apache ci sono 15 o più moduli abilitati di default. Questi sono troppi e la maggior parte di essi non è necessaria.

Prima di tutto, devi fare un elenco di tutti i moduli attualmente attivi e salvarlo per riferimento futuro nel caso in cui disabiliti qualcosa che è necessario e devi riattivarlo. Quindi disabilita semplicemente i moduli uno a uno con il comando (usando moduleName come esempio):

sudo a2dismod moduleName

... e riavvia Apache dopo ogni modifica per vedere se si verificano errori.

Alcuni moduli che dovresti disabilitare se non ti servono sono:

  • PHP
  • SSL
  • Riscrivere
  • Perl
  • Pitone

Dopo aver disabilitato un modulo e ricaricato la configurazione di Apache, è possibile verificare la presenza di errori aprendo il registro degli errori di Apache con un editor di testo come nano.

sudo nano /var/log/apache2/error.log

Se ricevi un errore, riattiva il modulo corrispondente con:

sudo a2enmod moduleName

Quindi, riavvia nuovamente Apache fino a quando non viene risolto l'elenco minimo!


2. Configurare mpm_prefork

Con la configurazione predefinita di Apache (che non è ben bilanciata per i piccoli server), la memoria può essere esaurita rapidamente e il tuo server cloud può sovraccaricarsi. Ciò causerà il blocco della pagina Web in uno stato di caricamento costante. È probabile che il server mantenga attivi questi processi Apache morti, tentando di servire contenuti inutilmente, riducendo il numero di processi disponibili per servire.

Per risolvere questo problema, devi prima scoprire quanta RAM ha bisogno il tuo server oltre ad Apache e la quantità media di memoria utilizzata dai processi Apache.

Mentre Apache è in esecuzione, apri il comando principale sul server.

top -bn 1

Nella tabella dei risultati:

  • aggiungere i numeri nella colonna RES per ogni processo, tranne apache2 e quindi rimuoverlo dalla quantità totale di RAM. Supponiamo che tu ottenga 600 MB .
  • ottenere la media da tutti i processi apache2 . Diciamo ottenere 20 MB .
  • quindi, basta eseguire la divisione 600/20 = 30 processi Apache massimi

Passaggio successivo, modifica il file di configurazione del modulo mpm_prefork:

sudo nano /etc/apache2/mods-enabled/mpm_prefork.conf

Potrebbe apparire così:

<IfModule mpm_prefork_module>
    StartServers             2
    MinSpareServers          2
    MaxSpareServers          5
    MaxRequestWorkers        30
    MaxConnectionsPerChild   0
</IfModule>

Dove:

  • StartServers: numero di processi server da avviare.
  • MinSpareServers: numero minimo di processi server che vengono mantenuti di riserva.
  • MaxSpareServers: numero massimo di processi server che vengono mantenuti di riserva.
  • MaxRequestWorkers: numero massimo di processi server che possono essere avviati.
  • MaxConnectionsPerChild: numero massimo di richieste che serve un processo server.

Nell'impostazione MaxRequestWorkers , devi cambiarlo in qualsiasi cosa tu abbia trovato nella divisione sopra.

Ora, se il tuo VPS viene sovraccaricato e raggiunge il numero massimo di client che può servire contemporaneamente, servirà quelli e gli altri utenti avranno semplicemente un errore rapido. Possono quindi ricaricare la pagina per riprovare. È molto meglio avere queste connessioni chiuse rapidamente ma lasciare il server in uno stato sano piuttosto che rimanere aperto per sempre.


3. Riduci i tuoi registri

Per massimizzare le prestazioni, puoi sicuramente registrare meno informazioni. Nella configurazione predefinita di Apache, l' impostazione LogLevel è impostata su avvisa . Puoi cambiarlo in errore per conservare solo i messaggi di errore.

Apri il file di configurazione di Apache:

sudo nano /etc/apache2/apache2.conf

Trova la linea:

LogLevel warn

... e cambiarlo in:

LogLevel error

Quindi, salva il file e riavvia Apache con:

sudo service apache2 restart

Il file predefinito che Apache conserva i registri è /var/log/apache2/error.log .


4. Valuta di sostituire mod_php

Se gestisci un sito PHP, è molto probabile che tu stia utilizzando il modulo mod_php. Questo modulo può far sì che ogni processo figlio di Apache utilizzi oltre 100 MB di RAM anche se le richieste riguardano risorse statiche come immagini, CSS e JavaScript.

Un'ottima alternativa è il modulo php-fpm , che è un processo separato che utilizza il protocollo fastcgi. Con php-fpm, la memoria per i processi Apache può scendere a 10 MB per contenuto statico e 60 MB per dinamico.

Sebbene possa essere un po 'difficile far funzionare le cose con questo cambiamento, ne vale la pena.


5. Prendere in considerazione la sostituzione di mpm_prefork

La maggior parte delle configurazioni di Apache utilizza il modulo mpm_prefork che è thread-safe e utilizza più processi figlio con un thread ciascuno e ogni processo gestisce una connessione alla volta. Se non hai bisogno di moduli esterni come PHP o Rails, puoi sostituirlo con il modulo apache2-mpm-worker , che spesso è più veloce. Worker MPM utilizza più processi figlio con molti thread ciascuno e ogni thread gestisce una connessione alla volta.

Per abilitare il modulo worker, è necessario installarlo.

sudo apt-get install apache2-mpm-worker

Questo comando disinstalla mpm_prefork , mos_php e altri moduli aggiuntivi incompatibili.



Leave a Comment

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.