Я использую drush, приложение php для командной строки, для управления веб-сайтом drupal. Я запускаю команду для импорта большого количества данных, что приводит к тому, что я превышаю ограничение памяти php.
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted ...
Что составляет 512 МБ, если я правильно делаю математику (536870912/1024/1024 = 512). Я изменил директиву в php.ini, которую использует drush:
$> 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
Но я все еще бью предел в 512 МБ! Я работаю на виртуальной машине, чьи настройки памяти я изменил с 512 до 1025 МБ ОЗУ, чтобы можно было запускать drush.
$> free -m
total used free shared buffers cached
Mem: 1010 578 431 0 14 392
-/+ buffers/cache: 172 837
Swap: 382 0 382
Так что он говорит, что у него есть около 431 МБ свободного места, теперь, когда я поднял виртуальную машину до 1024 Я предполагаю, что половина памяти используется для запуска графического интерфейса, но я не понимаю, как нормально работал графический интерфейс, когда виртуальная машина имела 512 МБ оперативной памяти.
Почему PHP Cli все еще превышает ограничение памяти в 512 МБ? Если оно достигло предела системной памяти, не должно ли оно умереть около 431 МБ, о чем говорит free
команда?