2012-12-17 4 views
0

J'ai un serveur domestique très lent (framboise pi) avec un processeur de 700 MHz. Lorsque je développe certains sites, il arrive parfois que j'entre un grand fichier (5 Mo) .jpg dans un resizer d'image (imagecreatefromjpeg(), imagecreatetruecolor(), imagecopy()) qui provoque le blocage du serveur.Comment puis-je limiter les ressources d'apache2?

Je dirais qu'il traite le fichier, mais même lorsque j'attends quelques minutes, il ne se termine jamais.

Le problème est que je ne peux même pas accéder au shell pour arrêter/redémarrer apache2; la seule solution est d'éteindre complètement le serveur.

Je me demandais s'il y avait un moyen de limiter les ressources matérielles pour apache2; Par exemple, si je pouvais limiter l'utilisation du processeur à 80%, peut-être que je pourrais toujours accéder au shell et l'arrêter.

J'ai essayé de définir les directives timeout et max_execution_time, mais elles ne semblent pas empêcher apache2 de fonctionner à l'infini et de geler le serveur.

Des idées pour résoudre ce problème?

Répondre

0

Je ne pense pas que vous puissiez limiter l'utilisation de cpu de ses propres paramètres.

Vous pouvez essayer d'utiliser une application séparée comme cpulimit (voir: how-to):

$ sudo apt-get install cpulimit 
$ man cpulimit 

Vous pouvez également essayer ces pour optimiser la performance globale de votre serveur.

  • Modifier votre /etc/apache2/apache2.conf et utiliser ces valeurs:

    <IfModule mpm_prefork_module> 
        StartServers   2 
        MinSpareServers  2 
        MaxSpareServers  3 
        MaxClients   50 
        MaxRequestsPerChild 0 
    </IfModule> 
    
  • Développez votre échange dans/etc/dphys-swapfile ensemble:

    CONF_SWAPSIZE=512 
    

    Ensuite, exécution:

    $ sudo dphys-swapfile setup 
    $ sudo dphys-swapfile swapon 
    
  • overclocker votre framboise (il est plus sûr que cela puisse paraître) ici:

    $ sudo raspi-config 
    

    Je l'utilise à 950MHz. Il y a une option plus élevée (1000MHz), mais certaines personnes sur le forum se sont plaintes de la corruption du SD avec celui-là.

  • Vous pouvez également définir la mémoire graphique à 16 dans raspi-config memory_split si vous n'utilisez pas l'interface graphique.

-1

Vous pouvez installer apache-mod_ratelimit. Voir également Control Apache with httpd.conf.

+0

Apache mod_ratelimit est pour limiter la bande passante des clients. (Voir: https://httpd.apache.org/docs/2.4/mod/mod_ratelimit.html) – aramboi

+0

Egalement la directive RLimitCPU (voir: http://httpd.apache.org/docs/trunk/mod/core.html #rlimitcpu) limite le temps CPU en secondes qu'un processus enfant peut utiliser. Il ne définit pas de limite de cpu pour ce processus, mais pourrait être utile dans le cas ci-dessus. – aramboi

Questions connexes