Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: php-cli и выделение памяти

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Лимит 4096M - фактически 256K :(
Uchkuma
Отправлено: 20 Июня, 2015 - 17:44:07
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Centos 6, PHP Version => 5.4.42.

В php.ini для php-cli установлено memory_limit = 4096M
В самом скрипте - ini_set('memory_limit', '4096M');
php_info() выводит memory_limit => 4096M => 4096M
При всем при этом при выполнении скрипта вываливается:
CODE (htmlphp):
скопировать код в буфер обмена
  1. PHP Fatal error: Allowed memory size of 262144 bytes exhausted (tried to allocate 1920 bytes) in...

Вопрос: почему процесс оказался ограничен 256 килобайтами?

Запускаю так
CODE (htmlphp):
скопировать код в буфер обмена
  1. $ /usr/bin/php -f /home/123/www/index.php -c /home/123/php.ini >/home/123/log/pam-out.log 2>/home/123/log/pam-error.log


Проблема появилась предположительно после обновления системы, в т.ч. php.
 
 Top
MiksIr
Отправлено: 20 Июня, 2015 - 17:50:27
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Посмотрите php -i | grep memory_limit для начала - мало ли, не тот конфиг
ну и ulimit -a потом - может системные ограничения

(Отредактировано автором: 20 Июня, 2015 - 17:50:56)



-----
self-banned
 
 Top
Uchkuma
Отправлено: 20 Июня, 2015 - 17:56:09
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




php -i выводит то же самое, что и php_info(). В обоих случаях:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Loaded Configuration File => /home/123/php-pam.ini
  2. memory_limit => 4096M => 4096M

Конфиг тот.

CODE (htmlphp):
скопировать код в буфер обмена
  1. $ ulimit -a
  2. core file size          (blocks, -c) 0
  3. data seg size           (kbytes, -d) unlimited
  4. scheduling priority             (-e) 0
  5. file size               (blocks, -f) unlimited
  6. pending signals                 (-i) 127686
  7. max locked memory       (kbytes, -l) 64
  8. max memory size         (kbytes, -m) unlimited
  9. open files                      (-n) 1024
  10. pipe size            (512 bytes, -p) 8
  11. POSIX message queues     (bytes, -q) 819200
  12. real-time priority              (-r) 0
  13. stack size              (kbytes, -s) 10240
  14. cpu time               (seconds, -t) unlimited
  15. max user processes              (-u) 1024
  16. virtual memory          (kbytes, -v) unlimited
  17. file locks                      (-x) unlimited

MiksIr пишет:
может системные ограничения

На серваке под этим же пользователем работает тяжелый портал на Битриксе, так что насчет системных ограничений сомнительно. Оперативки 16Гиг.
А данный косяк встречается именно при использовании php-cli.

(Отредактировано автором: 20 Июня, 2015 - 17:59:47)

 
 Top
MiksIr
Отправлено: 20 Июня, 2015 - 18:15:47
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


смотри phpinfo ну или хотя бы echo ini_get("memory_limit") перед местом, где он падает.
suhosin стоит? Проверь suhosin.memory_limit

(Отредактировано автором: 20 Июня, 2015 - 18:16:14)



-----
self-banned
 
 Top
Uchkuma
Отправлено: 20 Июня, 2015 - 18:19:12
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Это уже все просмотрено. Везде значение 4096M.
Проблема пропала, когда установил значение 2048M. Хм... в чем может быть дело?
Оперативки на машине 16Гб.
 
 Top
MiksIr
Отправлено: 20 Июня, 2015 - 21:25:44
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Случаем не 32-битный?


-----
self-banned
 
 Top
Uchkuma
Отправлено: 22 Июня, 2015 - 11:56:28
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Linux portal 2.6.32-504.23.4.el6.i686 #1 SMP Tue Jun 9 18:09:42 UTC 2015 i686 i686 i386 GNU/Linux
 
 Top
Мелкий Супермодератор
Отправлено: 22 Июня, 2015 - 12:26:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




На 16 гигах памяти 32-битное ядро?! Серьёзно?!
Ну при попытке поставить memory_limit в 0, на 256кб отстрел и производится, всё закономерно. (вроде игнорятся любые значения меньше 256кб)
И на 32-битной системе вы в принципе одной задаче больше 4гб памяти отдать не можете. Хоть pae, хоть не pae.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Операционная система и системные вызовы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB