J'utilise drush, qui est une application php en ligne de commande pour gérer un site web Drupal. Je lance une commande pour importer beaucoup de données, ce qui me fait atteindre la limite de mémoire de php.
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted ...
Ce qui fait 512MB si je fais le calcul correctement (536870912 / 1024 / 1024 = 512). J'ai changé la directive dans le php.ini que drush utilise :
$> drush status
...
PHP configuration : /etc/php5/cli/php.ini
$> grep memory /etc/php5/cli/php.ini
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 1024M
Mais je me heurte toujours à la limite des 512 Mo ! Je fonctionne dans une machine virtuelle, dont j'ai modifié les paramètres de mémoire de 512 à 1025 Mo de RAM pour permettre à drush de fonctionner.
$> free -m
total used free shared buffers cached
Mem: 1010 578 431 0 14 392
-/+ buffers/cache: 172 837
Swap: 382 0 382
Il indique qu'il y a 431 Mo de libres, maintenant que j'ai fait passer le vm à 1024. Je suppose que la moitié de la mémoire est utilisée pour faire fonctionner l'interface graphique, mais je ne comprends pas comment l'interface graphique pouvait fonctionner correctement alors que le vm avait 512 Mo de RAM.
Pourquoi le clipper PHP se heurte-t-il toujours à la limite de 512 Mo de mémoire ? S'il se heurtait à la limite de la mémoire système, ne devrait-il pas mourir autour de 431 Mo, ce qui est le cas de l'interface utilisateur de PHP ? free
dit qu'il est disponible ?