2000 страниц контента => Fatal error: Allowed memory
Re: 2000 страниц контента => Fatal error: Allowed memory
Например, у нас уже примерно 80 страниц контента и никаких глюков. Кстати, если не секрет, где можно узнать точное количество страниц? или для этого надо дополнительный код писать?
Re: 2000 страниц контента => Fatal error: Allowed memory
Ни каких глюков не видите потому, что изначально в конфиге установлена переменная
$config['php_memory_limit'] = '';
что означает - нет лимита.
Прикол весь в том, что при этом вы не видите визуально, сколько жрёт движок. Проблемы начинаются тогда, когда хостер вам присылает сообщение о том, что ваш лимит превышает допустимый в вашем тарифном плане. В продолжении письма - как правило написано, что если в течение 3-х дней вы не решите проблему, то вас отключат. Ещё могут предложить другой тарифный план
, который будет как правило дороже 
Ну ещё можно посматривать в сырой код генерируемой страницы, в котором внизу отображаются циферки потребляемых ресурсов. Это если вы предварительно не отключили их в конфиге. Изначально эта индикация включена.
А узнать сколько реально страниц контента у вас так:
SELECT count(*) FROM content;
$config['php_memory_limit'] = '';
что означает - нет лимита.
Прикол весь в том, что при этом вы не видите визуально, сколько жрёт движок. Проблемы начинаются тогда, когда хостер вам присылает сообщение о том, что ваш лимит превышает допустимый в вашем тарифном плане. В продолжении письма - как правило написано, что если в течение 3-х дней вы не решите проблему, то вас отключат. Ещё могут предложить другой тарифный план


Ну ещё можно посматривать в сырой код генерируемой страницы, в котором внизу отображаются циферки потребляемых ресурсов. Это если вы предварительно не отключили их в конфиге. Изначально эта индикация включена.
А узнать сколько реально страниц контента у вас так:
SELECT count(*) FROM content;
Re: 2000 страниц контента => Fatal error: Allowed memory
Совершенно верно, оба движка на Postgess. Но база не причем. Нашел я. Жрал ресурс MenuManager - это во фронтенде. Опять же по причине того, что юзает он hierarchyManager. И этот менеджер иерархии при сборке дерева набирает бешенный объём.anort wrote: Насколько я понял, оба движка сидят на Postgres. Может, дело в СУБД?
И к стати о птичках. Все молчат, что MadeSimple не предназначена для проектов выше среднего!!!
У меня например сайт-визитка 60 страниц. И уже жрёт не хило

Re: 2000 страниц контента => Fatal error: Allowed memory
Во первых, не молчим. Во вторых, не можем всем пихать Drupal и Joomla. В третьих, на хорошем хостинге (США) проблем не возникает. С чем ты сравниваешь, static HTML?dexel wrote: И к стати о птичках. Все молчат, что MadeSimple не предназначена для проектов выше среднего!!!
У меня например сайт-визитка 60 страниц. И уже жрёт не хило![]()
Re: 2000 страниц контента => Fatal error: Allowed memory
У меня на www.abm-tools.ru около 270 страниц и все нормально пашет
Re: 2000 страниц контента => Fatal error: Allowed memory
Если в конфиге занулить лимит
как это сделано по умолчанию, то и 2000 моих страниц не будут давать о себе знать. Как Ваши 270.
Второе - человек сказал, что "не молчим" - значит согласен.
И третье.
Когда хостер напишет, что-то вида
"Ваш ресурс исчерпал отведённый вам лимит памяти PHP", то будет поздно. Уже писал об этом.
Кто там спросил с чем сравниваю???? С тем что спроектировано правильно, только возились с ним долго - Портал, на чистом PHP написан, без ООП, база на KOI-8, вообще без использования сторонних библиотек. На сервере Apache 1.3, гворит о чем-то? Там - миллионы страниц контента! И бегает нормально. Его потребляемый ресурс PHP не зависит от колличества страниц контента!
Т.е. качественно сделан. А это сейчас призерается, поэтому юзаем CMSMS.
PS. Нужно проблемы решать, а не закрывать. Типа как через конфиг.
Вообще - 2 страницы на форуме занято, и хоть бы один пост был полезным. Трата времени, извиняюсь.
Code: Select all
$config['php_memory_limit'] = '';
Второе - человек сказал, что "не молчим" - значит согласен.
И третье.
Когда хостер напишет, что-то вида
"Ваш ресурс исчерпал отведённый вам лимит памяти PHP", то будет поздно. Уже писал об этом.
Кто там спросил с чем сравниваю???? С тем что спроектировано правильно, только возились с ним долго - Портал, на чистом PHP написан, без ООП, база на KOI-8, вообще без использования сторонних библиотек. На сервере Apache 1.3, гворит о чем-то? Там - миллионы страниц контента! И бегает нормально. Его потребляемый ресурс PHP не зависит от колличества страниц контента!
Т.е. качественно сделан. А это сейчас призерается, поэтому юзаем CMSMS.
PS. Нужно проблемы решать, а не закрывать. Типа как через конфиг.
Вообще - 2 страницы на форуме занято, и хоть бы один пост был полезным. Трата времени, извиняюсь.
Re: 2000 страниц контента => Fatal error: Allowed memory
Что-то я не понял, ну модуль жрал память... а решение-то нашлось или так просто побазарили-поумничали?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.
Re: 2000 страниц контента => Fatal error: Allowed memory
А, нет legko, решение не нашлось. 2 страницы форума пустой болтовни - просто надоело.
Выкинул я вызовы менеджера хиерархии из MenuManager. И потом пару прямых запросов к базе из action.default.php для формирования менюхи. Это всё. Решение скорее аварийное было. И выходом из положения это не назовёшь.
А вот админка... тот самый listcontent.php который - там жуть. И дело осложняется тем, что Ajax, и права почекрыженные. Т.е. шаг влево, шаг вправо - и он падает, xajax в смысле. Сейчас работаем над этим. Но на моём форуме - там флуд не льют.
А тут могу сказать одно - нужно переписывать функцию display_hierarchy(). И скорее не переписывать, а выкинуть и писать заново
Вот:
PS. Что же касается упомянутого тобой модуля CGExtension - он наверное больше жрёт чем 5 лысых движков MadeSimple. А SiteMapMadeSimple есть у меня, но переписанный, без CGExtension.
Выкинул я вызовы менеджера хиерархии из 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
Last edited by dexel on Thu Feb 25, 2010 10:04 pm, edited 1 time in total.
Re: 2000 страниц контента => Fatal error: Allowed memory
ну вот приблизительные цифры:
120 страниц контента при выдаче листинга в админке сжирают приблизительно 40 Мб оперативы.
Мне хостер разрешил php.ini редактировать, так я по 1Мб в memory_limit добавлял, пока остановился на 40 Мб.
120 страниц контента при выдаче листинга в админке сжирают приблизительно 40 Мб оперативы.
Мне хостер разрешил php.ini редактировать, так я по 1Мб в memory_limit добавлял, пока остановился на 40 Мб.
Re: 2000 страниц контента => Fatal error: Allowed memory
На движке, котором 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
Модуль 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.
Re: 2000 страниц контента => Fatal error: Allowed memory
Здравствуйте. У меня такая же проблемма( Страниц примерно столько же. Виртуальник скоро упадет.. Время загрузки страницы - 14 секунд!))) меня ни один робот не дождется))) Подскажите как решили эту проблемму?dexel wrote:А, нет legko, решение не нашлось. 2 страницы форума пустой болтовни - просто надоело.
Выкинул я вызовы менеджера хиерархии из MenuManager. И потом пару прямых запросов к базе из action.default.php для формирования менюхи. Это всё. Решение скорее аварийное было. И выходом из положения это не назовёшь.
А вот админка... тот самый listcontent.php который - там жуть. И дело осложняется тем, что Ajax, и права почекрыженные. Т.е. шаг влево, шаг вправо - и он падает, xajax в смысле. Сейчас работаем над этим. Но на моём форуме - там флуд не льют.
А тут могу сказать одно - нужно переписывать функцию display_hierarchy(). И скорее не переписывать, а выкинуть и писать зановоВот:
PS. Что же касается упомянутого тобой модуля CGExtension - он наверное больше жрёт чем 5 лысых движков MadeSimple. А SiteMapMadeSimple есть у меня, но переписанный, без CGExtension.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
Re: 2000 страниц контента => Fatal error: Allowed memory
Кто-нибудь подскажет как решить эту проблемму с меню?
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
Re: 2000 страниц контента => Fatal error: Allowed memory
Относительно SiteMapMadeSimple - переписал модуль, чтобы выбросить CGExtension. Конечно удалил CGExtension.materok wrote:Здравствуйте. У меня такая же проблемма( Страниц примерно столько же. Виртуальник скоро упадет.. Время загрузки страницы - 14 секунд!))) меня ни один робот не дождется))) Подскажите как решили эту проблемму?dexel wrote:А, нет legko, решение не нашлось. 2 страницы форума пустой болтовни - просто надоело.
Выкинул я вызовы менеджера хиерархии из MenuManager. И потом пару прямых запросов к базе из action.default.php для формирования менюхи. Это всё. Решение скорее аварийное было. И выходом из положения это не назовёшь.
А вот админка... тот самый listcontent.php который - там жуть. И дело осложняется тем, что Ajax, и права почекрыженные. Т.е. шаг влево, шаг вправо - и он падает, xajax в смысле. Сейчас работаем над этим. Но на моём форуме - там флуд не льют.
А тут могу сказать одно - нужно переписывать функцию display_hierarchy(). И скорее не переписывать, а выкинуть и писать зановоВот:
PS. Что же касается упомянутого тобой модуля CGExtension - он наверное больше жрёт чем 5 лысых движков MadeSimple. А SiteMapMadeSimple есть у меня, но переписанный, без CGExtension.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
А что же касается поглощением памяти страницами контента в админке, то перевёл на ltree и вывернул напроч ООП из admin/listcontent.php и editcontent. И некоторые фрагменты по всей CMS. Серьёзная доработка...
Это ltree есть только на PostgreSQL. Думаю что только.
Т.е. один запрос в 5 строк примерно получился в listcontent.php. Красотой конечно не блещет, и с правами админов там вроде как не всё разрешилось было. Но во всяк случае уже в админке того бешенного потребления нет. И на 2000 страниц бегает нормально.
Еще выдернул ООП (это зло) из MenuManagerа, т.к. там тоже вызывается HierarchyManager.
Вроде всё. Там живого места от CMSMS не осталось
