2000 страниц контента => Fatal error: Allowed memory

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

anort
Forum Members
Forum Members
Posts: 12
Joined: Sat Jan 09, 2010 3:22 pm

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by anort »

Например, у нас уже примерно 80 страниц контента и никаких глюков. Кстати, если не секрет, где можно узнать точное количество страниц? или для этого надо дополнительный код писать?
User avatar
dexel
Forum Members
Forum Members
Posts: 67
Joined: Sat Nov 29, 2008 12:22 pm

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by dexel »

Ни каких глюков не видите потому, что изначально в конфиге установлена переменная
$config['php_memory_limit'] = '';
что означает - нет лимита.
Прикол весь в том, что при этом вы не видите визуально, сколько жрёт движок. Проблемы начинаются тогда, когда хостер вам присылает сообщение о том, что ваш лимит превышает допустимый в вашем тарифном плане. В продолжении письма - как правило написано, что если в течение 3-х дней вы не решите проблему, то вас отключат. Ещё могут предложить другой тарифный план  :-\ , который будет как правило дороже ;)
Ну ещё можно посматривать в сырой код генерируемой страницы, в котором внизу отображаются циферки потребляемых ресурсов. Это если вы предварительно не отключили их в конфиге. Изначально эта индикация включена.

А узнать сколько реально страниц контента у вас так:
SELECT count(*) FROM content;
User avatar
dexel
Forum Members
Forum Members
Posts: 67
Joined: Sat Nov 29, 2008 12:22 pm

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by dexel »

anort wrote: Насколько я понял, оба движка сидят на Postgres. Может, дело в СУБД?
Совершенно верно, оба движка на Postgess. Но база не причем. Нашел я. Жрал ресурс MenuManager - это во фронтенде. Опять же по причине того, что юзает он hierarchyManager. И этот менеджер иерархии при сборке дерева набирает бешенный объём.

И к стати о птичках. Все молчат, что MadeSimple не предназначена для проектов выше среднего!!!

У меня например сайт-визитка 60 страниц. И уже жрёт не хило :(
replytomk3

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by replytomk3 »

dexel wrote: И к стати о птичках. Все молчат, что MadeSimple не предназначена для проектов выше среднего!!!
У меня например сайт-визитка 60 страниц. И уже жрёт не хило :(
Во первых, не молчим. Во вторых, не можем всем пихать Drupal и Joomla. В третьих, на хорошем хостинге (США) проблем не возникает. С чем ты сравниваешь, static HTML?
KARENNN

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by KARENNN »

У меня на www.abm-tools.ru около 270 страниц и все нормально пашет
User avatar
dexel
Forum Members
Forum Members
Posts: 67
Joined: Sat Nov 29, 2008 12:22 pm

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by dexel »

Если в конфиге занулить лимит

Code: Select all

$config['php_memory_limit'] = '';
как это сделано по умолчанию, то и 2000 моих страниц не будут давать о себе знать. Как Ваши 270.
Второе - человек сказал, что "не молчим" - значит согласен.
И третье.
Когда хостер напишет, что-то вида
"Ваш ресурс исчерпал отведённый вам лимит памяти PHP", то будет поздно. Уже писал об этом.

Кто там спросил с чем сравниваю???? С тем что спроектировано правильно, только возились с ним долго - Портал, на чистом PHP написан, без ООП, база на KOI-8, вообще без использования сторонних библиотек. На сервере Apache 1.3, гворит о чем-то? Там - миллионы страниц контента! И бегает нормально. Его потребляемый ресурс PHP не зависит от колличества страниц контента!
Т.е. качественно сделан. А это сейчас призерается, поэтому юзаем CMSMS.

PS. Нужно проблемы решать, а не закрывать. Типа как через конфиг.
Вообще - 2 страницы на форуме занято, и хоть бы один пост был полезным. Трата времени, извиняюсь.
legko
Forum Members
Forum Members
Posts: 88
Joined: Sun Jan 10, 2010 1:54 am

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by legko »

dexel wrote: Совершенно верно, оба движка на Postgess. Но база не причем. Нашел я. Жрал ресурс MenuManager - это во фронтенде. Опять же по причине того, что юзает он hierarchyManager. И этот менеджер иерархии при сборке дерева набирает бешенный объём.
Что-то я не понял, ну модуль жрал память... а решение-то нашлось или так просто побазарили-поумничали?

У меня такая же фигня, но с одним "НО".
Если я в админку захожу пользователем admin - то все в порядке,
а если захожу пользователем с ограниченными правами то , пишет:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 262685 bytes) in /home/public_html/admin/listcontent.php on line 1070

Контента - немного более, чем 100 страниц

*******************************
ну вобщем проблему решил пока так:
1. Отключил модуль SiteMapMadeSimple
2. Отключил модуль CGExtensions

Пока работает.
Вот результат:
Last edited by legko on Mon Feb 15, 2010 8:31 pm, edited 1 time in total.
User avatar
dexel
Forum Members
Forum Members
Posts: 67
Joined: Sat Nov 29, 2008 12:22 pm

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by dexel »

А, нет legko, решение не нашлось. 2 страницы форума пустой болтовни - просто надоело.
Выкинул я вызовы менеджера хиерархии из MenuManager. И потом пару прямых запросов к базе из action.default.php для формирования менюхи. Это всё. Решение скорее аварийное было. И выходом из положения это не назовёшь.
А вот админка... тот самый listcontent.php который - там жуть. И дело осложняется тем, что Ajax, и права почекрыженные. Т.е. шаг влево, шаг вправо - и он падает, xajax в смысле. Сейчас работаем над этим. Но на моём форуме - там флуд не льют.
А тут могу сказать одно - нужно переписывать функцию display_hierarchy(). И скорее не переписывать, а выкинуть и писать заново  ???  Вот:

Code: Select all

    0.7855   25362056       -> Tree->getChildren() /media/web/madesimple/admin/listcontent.php:1051
    0.7856   25362368       -> check_modify_all() /media/web/madesimple/admin/listcontent.php:1053
    0.7856   25362632         -> check_permission() /media/web/madesimple/admin/listcontent.php:47
    0.7856   25363288           -> CmsObject->GetUserOperations() /media/web/madesimple/lib/page.functions.php:289
    0.7857   25363488           -> UserOperations->UserInGroup() /media/web/madesimple/lib/page.functions.php:290
    0.7857   25363552           -> in_array() /media/web/madesimple/lib/page.functions.php:299
    0.7864   25625384       -> display_hierarchy() /media/web/madesimple/admin/listcontent.php:1053
    0.7865   25629920         -> Tree_Node->getChildren() /media/web/madesimple/admin/listcontent.php:583
    0.7865   25630176           -> Tree_Node->hasChildren() /media/web/madesimple/lib/Tree/Tree.php:666
    0.7865   25629904         -> Tree_Node->getContent() /media/web/madesimple/admin/listcontent.php:584
PS. Что же касается упомянутого тобой модуля CGExtension - он наверное больше жрёт чем 5 лысых движков MadeSimple. А SiteMapMadeSimple есть у меня, но переписанный, без CGExtension.
Last edited by dexel on Thu Feb 25, 2010 10:04 pm, edited 1 time in total.
legko
Forum Members
Forum Members
Posts: 88
Joined: Sun Jan 10, 2010 1:54 am

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by legko »

ну вот приблизительные цифры:
120 страниц контента при выдаче листинга в админке сжирают приблизительно 40 Мб оперативы.
Мне хостер разрешил php.ini редактировать, так я по 1Мб в memory_limit добавлял, пока остановился на 40 Мб.
User avatar
dexel
Forum Members
Forum Members
Posts: 67
Joined: Sat Nov 29, 2008 12:22 pm

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by dexel »

На движке, котором 60 страниц контента - всё стало на свои места. Причем делал абсолютно другое, и взаимосвязи не вижу абсолютно. Вобщем ставил Sphinx:
Модуль Search - полностью вывернул его содержимое в помойку. Вставил туда Сфинкс.
Модуль News - небольшие изменения для того, чтобы в результатах поиска выводились категории Новостей(ссылки на них).
и какой-то маленький патч в ядре, забыл.
Теперь при 60 страницах контента: 22Мб в listcontent и 16М во фронтенде (там ManagerMenu родной).

А вот втором движке 126М в listcontent:
15.210816 / 92 / 98517600 / 126183568

На ltree есть желающие перевести?
http://www.postgresql.org/docs/8.3/static/ltree.html
Last edited by dexel on Thu Mar 04, 2010 8:40 am, edited 1 time in total.
materok
New Member
New Member
Posts: 2
Joined: Thu Apr 07, 2011 3:57 pm

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by materok »

dexel wrote:А, нет legko, решение не нашлось. 2 страницы форума пустой болтовни - просто надоело.
Выкинул я вызовы менеджера хиерархии из MenuManager. И потом пару прямых запросов к базе из action.default.php для формирования менюхи. Это всё. Решение скорее аварийное было. И выходом из положения это не назовёшь.
А вот админка... тот самый listcontent.php который - там жуть. И дело осложняется тем, что Ajax, и права почекрыженные. Т.е. шаг влево, шаг вправо - и он падает, xajax в смысле. Сейчас работаем над этим. Но на моём форуме - там флуд не льют.
А тут могу сказать одно - нужно переписывать функцию display_hierarchy(). И скорее не переписывать, а выкинуть и писать заново  ???  Вот:

Code: Select all

    0.7855   25362056       -> Tree->getChildren() /media/web/madesimple/admin/listcontent.php:1051
    0.7856   25362368       -> check_modify_all() /media/web/madesimple/admin/listcontent.php:1053
    0.7856   25362632         -> check_permission() /media/web/madesimple/admin/listcontent.php:47
    0.7856   25363288           -> CmsObject->GetUserOperations() /media/web/madesimple/lib/page.functions.php:289
    0.7857   25363488           -> UserOperations->UserInGroup() /media/web/madesimple/lib/page.functions.php:290
    0.7857   25363552           -> in_array() /media/web/madesimple/lib/page.functions.php:299
    0.7864   25625384       -> display_hierarchy() /media/web/madesimple/admin/listcontent.php:1053
    0.7865   25629920         -> Tree_Node->getChildren() /media/web/madesimple/admin/listcontent.php:583
    0.7865   25630176           -> Tree_Node->hasChildren() /media/web/madesimple/lib/Tree/Tree.php:666
    0.7865   25629904         -> Tree_Node->getContent() /media/web/madesimple/admin/listcontent.php:584
PS. Что же касается упомянутого тобой модуля CGExtension - он наверное больше жрёт чем 5 лысых движков MadeSimple. А SiteMapMadeSimple есть у меня, но переписанный, без CGExtension.
Здравствуйте. У меня такая же проблемма( Страниц примерно столько же. Виртуальник скоро упадет.. Время загрузки страницы - 14 секунд!))) меня ни один робот не дождется))) Подскажите как решили эту проблемму?
materok
New Member
New Member
Posts: 2
Joined: Thu Apr 07, 2011 3:57 pm

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by materok »

Кто-нибудь подскажет как решить эту проблемму с меню?
dexel wrote:На движке, котором 60 страниц контента - всё стало на свои места. Причем делал абсолютно другое, и взаимосвязи не вижу абсолютно. Вобщем ставил Sphinx:
Модуль Search - полностью вывернул его содержимое в помойку. Вставил туда Сфинкс.
Модуль News - небольшие изменения для того, чтобы в результатах поиска выводились категории Новостей(ссылки на них).
и какой-то маленький патч в ядре, забыл.
Теперь при 60 страницах контента: 22Мб в listcontent и 16М во фронтенде (там ManagerMenu родной).

А вот втором движке 126М в listcontent:
15.210816 / 92 / 98517600 / 126183568

На ltree есть желающие перевести?
http://www.postgresql.org/docs/8.3/static/ltree.html
User avatar
dexel
Forum Members
Forum Members
Posts: 67
Joined: Sat Nov 29, 2008 12:22 pm

Re: 2000 страниц контента => Fatal error: Allowed memory

Post by dexel »

materok wrote:
dexel wrote:А, нет legko, решение не нашлось. 2 страницы форума пустой болтовни - просто надоело.
Выкинул я вызовы менеджера хиерархии из MenuManager. И потом пару прямых запросов к базе из action.default.php для формирования менюхи. Это всё. Решение скорее аварийное было. И выходом из положения это не назовёшь.
А вот админка... тот самый listcontent.php который - там жуть. И дело осложняется тем, что Ajax, и права почекрыженные. Т.е. шаг влево, шаг вправо - и он падает, xajax в смысле. Сейчас работаем над этим. Но на моём форуме - там флуд не льют.
А тут могу сказать одно - нужно переписывать функцию display_hierarchy(). И скорее не переписывать, а выкинуть и писать заново  ???  Вот:

Code: Select all

    0.7855   25362056       -> Tree->getChildren() /media/web/madesimple/admin/listcontent.php:1051
    0.7856   25362368       -> check_modify_all() /media/web/madesimple/admin/listcontent.php:1053
    0.7856   25362632         -> check_permission() /media/web/madesimple/admin/listcontent.php:47
    0.7856   25363288           -> CmsObject->GetUserOperations() /media/web/madesimple/lib/page.functions.php:289
    0.7857   25363488           -> UserOperations->UserInGroup() /media/web/madesimple/lib/page.functions.php:290
    0.7857   25363552           -> in_array() /media/web/madesimple/lib/page.functions.php:299
    0.7864   25625384       -> display_hierarchy() /media/web/madesimple/admin/listcontent.php:1053
    0.7865   25629920         -> Tree_Node->getChildren() /media/web/madesimple/admin/listcontent.php:583
    0.7865   25630176           -> Tree_Node->hasChildren() /media/web/madesimple/lib/Tree/Tree.php:666
    0.7865   25629904         -> Tree_Node->getContent() /media/web/madesimple/admin/listcontent.php:584
PS. Что же касается упомянутого тобой модуля CGExtension - он наверное больше жрёт чем 5 лысых движков MadeSimple. А SiteMapMadeSimple есть у меня, но переписанный, без CGExtension.
Здравствуйте. У меня такая же проблемма( Страниц примерно столько же. Виртуальник скоро упадет.. Время загрузки страницы - 14 секунд!))) меня ни один робот не дождется))) Подскажите как решили эту проблемму?
Относительно SiteMapMadeSimple - переписал модуль, чтобы выбросить CGExtension. Конечно удалил CGExtension.

А что же касается поглощением памяти страницами контента в админке, то перевёл на ltree и вывернул напроч ООП из admin/listcontent.php и editcontent. И некоторые фрагменты по всей CMS. Серьёзная доработка...
Это ltree есть только на PostgreSQL. Думаю что только.
Т.е. один запрос в 5 строк примерно получился в listcontent.php. Красотой конечно не блещет, и с правами админов там вроде как не всё разрешилось было. Но во всяк случае уже в админке того бешенного потребления нет. И на 2000 страниц бегает нормально.
Еще выдернул ООП (это зло) из MenuManagerа, т.к. там тоже вызывается HierarchyManager.
Вроде всё. Там живого места от CMSMS не осталось :(
Post Reply

Return to “Russian - русский”