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 :: Предупреждение для всех, кто хочет начать изучение symfony2

 PHP.SU

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


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

> Без описания
nkl
Отправлено: 27 Октября, 2014 - 11:09:32
Post Id



Посетитель


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


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




Доброго времени суток, коллеги. Хотел бы вас предупредить вот о чем. Дело в том, что при работе с symfony2 никак не обойтись без composer.phar. Нет, конечно можно делать все руками, искать версии бандлов для вашей версии symfony и копировать их руками, править автолоадер, appKernel и etc, что бы этот бандл заработал. Но честно говоря, зачем тогда вообще фреймворк, если все и так придется делать как раньше, а именно руками.

В чем заключается мое предупреждение. Во первых, для того что бы composer.phar отработал по инициализации проекта symfony2 стандартной командой, которая приводится на сайте symfony в разделе downloads:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $ composer create-project symfony/framework-standard-edition path/

убедитесь, что на вашем сервере есть как минимум 1GB свободной оперативной памяти. Да, да, минимум 1 гиг и не метром меньше! Тогда эта команда отработает и в течении нескольких минут будет развернут новый проект symfony. Но, это еще не все. Будьте готовы к тому, что с ростом проекта и кол-ва установленных сторонних бандлов 1 гига оперативки будет недостаточно.

К примеру, в нашем проекте сейчас установлено ~40 сторонних и создано примерно столько же своих бандлов и для того, что бы composer.phar справлялся с этим кол-вом файлом наш dev-сервер имеет на борту 4 гига памяти. Да, да, 4 гига.

Тем кто щас начнет обсираться кирпичами, мол есть же файл подкачки настройте его и etc. Скажу, пробовал. Сам лично, да. У меня есть маленький VPSик на 512 МБ, стоит ubuntu 12.04 сервер, swap установлен в размере 1 Гб, так вот при таком конфиге мне еще ни разу не удалось инициализировать новый проект symfony2 при помощи компосера. Максимум сколько времени я ждал - ~16 часов. Сервер бешено работает со свопом, а толку нет нихера. Процессу composer update присвоен статус D (что значит ожидает пока диск освободиться) и все. Никакой реакции вообще. Больше 16 часов я не ждал, может быть в конце-концов что-то и случилось бы, но мне дождаться так и не удалось, консолька отвалилась, да.

Честно говоря, вся эту ситуация меня сильно удручает, ведь я думал linux может все и даже когда на нем всего 512 Мб оперативки, но оказалось нет. Мое доверие к этой системе подорвано. Помню как-то я читал статью, где приводился скрин того как бубунта спокойно и без напряга открыла гимпом psd-файлик размеров в 18 Гб (да, фото космоса от NASA), причем опретивки на том компе было всего 8 Гб, вот там линуксоиды обсирались кирпичами, мол смотрите, какая архитектура, какой грамотный комп, виндовому собрату потребовалось 24 гига оперативки что бы открыть этот пресловутый psd'эшник, а линь с 8 Гб справился. А тут вот какая беда, какие-то сраные ~17 000 файлов требуют 4 гига. И причем я уверен, что этот камень не в огород линукса, он стабильно работал все 16 часов и пытался отработать composer.phar, делая все возможное со свопом, думаю этот камень в огород PHP, ведь его архитектура не позволяет работать, когда оперативы недостаточно...

В общем, я в печали Огорчение
 
 Top
Мелкий Супермодератор
Отправлено: 27 Октября, 2014 - 11:20:30
Post Id



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


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


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




То, что php по-дурацки работает с памятью - это да. В PHP7 ожидается существенное улучшение дел по этой части (релиз в следующем году, кстати. Беты весной и RC летом)


-----
PostgreSQL DBA
 
 Top
MiksIr
Отправлено: 27 Октября, 2014 - 11:51:52
Post Id


Забанен


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


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

[+]


А не нужно композер на продакшн машинах выполнять ;)
Цитата:
you are not supposed to run composer update on your production server. You should run update on your dev box then deploy the composer.lock file and run install which will run with very low memory footprint and very fast since it doesn't have to check for new packages but merely applies what's in the lock file.

Но в общем - если набить в память гиг данных, то будет гиг памяти, увы. Не знаю, чего он там набил в память, ну просто разработчик не парится над этим - гиг, два... копейки =)

И, кстати, какая версия PHP и какая архитектура ос (32/64). Например, на выделенном с 512М ну никакого смысла 64 бит, только хуже. 5.4+ немного лучше с памятью живет, чем 5.3 - у них там как раз изменения были по внутренностям.


-----
self-banned
 
 Top
nkl
Отправлено: 27 Октября, 2014 - 12:06:44
Post Id



Посетитель


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


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




А его никто на продакшн машине и не выполнял. Мы используем для разработки VPS, потому что не все разработчики в локальной сети находятся, есть и удаленные.
Стоит 32 битная ubuntu 12.04. А как в php посмотреть этот гиг памяти, не подскажите? Я занимался этим вопросом, к примеру скрипт отжирает 1.6 гига, а

говорит: "все ок, шеф, юзаем всего 130 Мб оперативки..." Закатив глазки
 
 Top
Panoptik
Отправлено: 27 Октября, 2014 - 13:03:58
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




чет меня терзают смутные сомнения по поводу этих тормозов при разворачивании проекта.
конечно на 100% утверждать не стану, но допущу возможность какой-нибудь неправильной настройки скриптов или окружения, ибо банальная выкачка не должна пожирать так много ресурсов.
что касается симфони, то сложно сказать, но юи по композеру разворачивается в считанные минуты, если не секунды и отнюдь у меня на 512 мб памяти это всё прекрасно отработало

так что хотелось бы услышать подтверждение от еще какого источника о таком поведении, тогда заберу свои сомнения назад
(Добавление)
сейчас попробовал сделать инсталл, ну пожалуй соглашусь что композер взял на себя примерно 700-800 мб памяти

жуть просто. надо бы посмотреть на профильных форумах сообщества что по этому поводу говорят и что думают с этим делать


-----
Just do it
 
 Top
MiksIr
Отправлено: 27 Октября, 2014 - 13:39:00
Post Id


Забанен


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


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

[+]


А ничего не говорят. Тикет открыт уже давно https://github.com/composer/composer/issues/1898.
Но так как гиг нынче мелочь - никто и не парится. Даже виртуалки с гигом - 10$/мес нынче


-----
self-banned
 
 Top
nkl
Отправлено: 27 Октября, 2014 - 14:01:45
Post Id



Посетитель


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


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




Цитата:
жуть просто. надо бы посмотреть на профильных форумах сообщества что по этому поводу говорят и что думают с этим делать

Советуют swap включать в тикете, который привел MiksIr.

Цитата:
жуть просто.

Вот и я о том же. 700-800 метром ОЗУ для работы менеджера пакетов... Не понял
 
 Top
dXdYdZ
Отправлено: 27 Октября, 2014 - 14:52:56
Post Id


Посетитель


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


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




Кстати, composer.phar используется не только в symfony2. В Zend Framework 2 тоже. И, думаю, ещё в большом количестве фреймворков.
 
 Top
esterio
Отправлено: 27 Октября, 2014 - 15:10:51
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




dXdYdZ в принципе композер стандарт дефакто стал для большинства проектов
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Октября, 2014 - 19:07:02
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




MiksIr пишет:
гиг, два... копейки =)
Мильёнер штоле?
 
 Top
nkl
Отправлено: 28 Октября, 2014 - 05:54:43
Post Id



Посетитель


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


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




esterio пишет:
в принципе композер стандарт дефакто стал для большинства проектов

Не спорю, очень удобная штука, но не мог бы её кто нить на C++ переписать?! Хм
 
 Top
digi
Отправлено: 29 Октября, 2014 - 21:59:40
Post Id


Посетитель


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


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




Выбрал самый слабенький впс-ик, который есть сейчас в распоряжении rackserver.ru тариф VZ1 (512Mb RAM / 1 CPU Core) виртуализация OpenVZ, свопа нет вообще, OS Debian 7 32-bit

Запускаю в одном окошке htop, чтобы видеть изменение в реальном времени.

Во втором выполняю команду

CODE (htmlphp):
скопировать код в буфер обмена
  1. $ composer create-project symfony/framework-standard-edition


и засекаю таймер.

До момента конфигурирования параметров времени прошло 1 минута и 40 секунд, пока обратил внимание и прощёлкал "ентеры" в общей сложности развёртывание дефолтного проекта заняло 2 минуты.

Потребление памяти в htop было таким: колонка VIRT показывала до 216М, а RES 160М

На серваке крутится малозагруженный сервис написанный на sf2, подняты сервисы apache2, nginx, mariadb 10, memcache на 64мб, пхп версии PHP 5.5.18-1~dotdeb.1 (cli) (built: Oct 22 2014 18:15:17)

Вообще конечно же проекты должны включать файл composer.lock и обновление пакетов на продакшине выполнять следует командой composer install --prefer-dist тогда потребление памяти будет копеечная, а скорость выполнения считанные секунды т.к. композер не будет пытаться вычислять все зависимости, а только скачает нужные пакеты и всё.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB