• Bannato User Attivo

    Il server mi restituisce Failed to fork, che devo fare?

    ciao ragazzi,
    Il server mi restituisce Failed to fork, la RAM è poco occupata,
    ma secondo me dipende da apache2 infatti se diminuisco il numero di Theards ecc in /etc/apache2/apache2.conf , va bene.
    Ma se abbasso troppo i valori è troppo lento! che devo fare???
    Se lo lascio un pò alto si ferma vsftpd!


  • Moderatore

    Beh se è così è proprio un problema di ram. Il fatto che diminuendo il numero di thread l'errore scompare è un chiaro segno di un problema di memoria.

    Poi perchè rallenta così tanto quando diminuisci il numero di thread? Il traffico com'è?


  • User

    Sembra un evidente problema di mancanza di ram.
    Se non puoi aumentare la ram cerca di disabilitare moduli inutili di apache in modo da diminuire il consumo di risorse.


  • Bannato User Attivo

    Ma come può essere la RAM che quello occupa 500/3000 ?????
    L'unico problema è che non ha una swap


  • Moderatore

    500/3000? intendi dire 500 megabytes su 3 giga?

    Se è così verifica che non ci sia nessun blocco imposto in /etc/security/limits.conf, specificamente nproc.

    E' una misura che serve a limitare il fork bombing, cioè la generazione di milioni di processi forkati.

    Inoltre guarda pure nel file di errorlog di apache.


  • Bannato User Attivo

    Ho trovato nei log e mi restituisce questo
    [Wed May 26 16:05:25 2010] [error] (12)Cannot allocate memory: fork: Unable to fork new process

    ke devo fare cambiare server?
    In quel file ke mi hai detto /etc/security/limits.conf è tutto commentato!
    Forse perchè è assente la SWAP?


  • Moderatore

    @frank92 said:

    Ho trovato nei log e mi restituisce questo
    [Wed May 26 16:05:25 2010] [error] (12)Cannot allocate memory: fork: Unable to fork new process

    ke devo fare cambiare server?
    In quel file ke mi hai detto /etc/security/limits.conf è tutto commentato!
    Forse perchè è assente la SWAP?

    La swap è un problema se c'è poca memoria, cosa che potrebbe essere probabile se il server è sottoposto ad un traffico elevato.


  • Bannato User Attivo

    Allora ho 3 GB di memoria e in totale li usa solo 600 MB circa, però la SWAP non esiste proprio come partizione 0/0MB, potrebbe essere questo il problema o qualcos'altro? Se questo come posso partizionarla e metterla?
    Visto che dal apnnello del VPS non ho il controllo delle partizioni?


  • Moderatore

    Il problema non è la mancanza dello swap, nel senso che se c'è ram il sistema non toccherà proprio lo swap e quindi potresti non averlo.

    Però c'è una cosa da sapere su fork ed è l'overcommit. In pratica se hai un processo apache che attualmente occupa 200 MB, quando fai fork il sistema operativo cercherà di riservare altri 200 MB anche se il nuovo processo magari ne richiede realmente solo 10.

    Quei 200 MB non sono numeri strani per apache che è noto per essere pesante. E' chiaro che a 200 MB a fork, i 3 GB si consuma in batter d'occhio ( ovviamente a te risultano occupati solo 600 perchè sono quelli fisicamente occupati ma a causa dell'overcommit è come se ne fossero occupati di più ).

    Lo swap se lo metti verrà usato e ovviamente l'errore sparirà. Se hai accesso alla shell del server puoi usare parted per ripartizionare il disco e aggiungere lo swap, i pannelli di controllo non so se hanno una funzionalità del genere ma non credo.

    Oppure potresti al limite considerare di installare un web server più leggero come lighttpd o nginx.