SMF i Joomla - не хватает памяти

Автор yAnTar_yAnTar, 31 июля 2008, 14:08:56

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

yAnTar_yAnTar

Есть джумла 1.0.12 и СМФ 1.1.4, на тестовом хостинге - все работало ок, перенес на реальный хостинг - очень часто выкидывает сообщение
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 173478 bytes) in
/home/htdocs/***********/administrator/components/com_smf/includes/Lite.php on line 367
Попытки установить в пхп-скрипте
ini_set('memory_limit', '64M');
ни к чему не приводят
в .htaccesse то самое
Но, что заметил, если очищаю кеш - administrator/components/com_smf/cache/db - тогда ошибка пропадает на некоторое время, наверное до того, когда кеш не заполнится.

yAnTar_yAnTar

Хостер написал, что папка темп заполнена до отказа

yAnTar_yAnTar

Блин, папку темп хостер очистил, а она все равно заполняется до отказа.

Mavn

Через крон настройте очистку папки temp и проблема решится!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

yAnTar_yAnTar

Это не выход, так как папка заполняется каждых полчаса.

bbbbbb

Чем она заполняеться? если кукаим, то настрой пхп чтобs сохранял в share memory


yAnTar_yAnTar

Цитата: bbbbbb от 01 августа 2008, 23:52:54
Чем она заполняеться?
Хостер говорит, что файлы сессий занимают очень много. Хостер гооврит, что на папку темп у него ограничение на 64 Мб и она скоро заполняется. Это немецкий хостер и до меня инфа доходит через 3 человек.
Максимально онлайн было 85 человек - и то только один раз, в среднем 10-20 человек, интересно, как можеть забиться так быстро 64 Мб.

Цитата: bbbbbb от 01 августа 2008, 23:52:54
если кукаим, то настрой пхп чтобs сохранял в share memory
Сорри, нигде не нашел, какой параметр отвечает за share memory. (или вы имеете ввиду бд)
И доступа к пхп.ини нет :(

bbbbbb

#8
к php.ini доступ есть? хостер персональные настройки php.ini может дать?

если нет, то как вариант: отключить хранения сессии в файлах, в движке форума, точно не знаю...

многие движки не записывают название сессий в файлы, то есть это сделано для того чтобы была "мягкая" работа при больших нагрузках...

UPD: пороси хостера чтобы дал php.ini, может Mavn предет расскажет как сделать чтобы не записывались сессии в файлы, а кидались в БД, или посмотри и переделай сам

yAnTar_yAnTar

#9
Еще раньше было у меня сохранение сессий в базе, но там вылезал другой баг интересный  с сессиями. После этого - сделал в файлах.

Только-что узнал, что шеф с клиентом, а тот с хостером решили насчет памяти, сейчас багов уже нет.

upd.: Снова Allowed memory size of ... :(

Mavn

Технически путь для сессий можно назначить при помощи htaccess


php_value session.save_path /home/.../session


по идее большинство хостеров разрешают изменять данные вещи.

при помощи данного скрипта через cron можно автоматически удалять сессии.


<?php 
$sessionDir 
"/home/user/temp/";  // your sessions directory 
$compareTime time() - 10800;  // 3 hours 
$count 0
foreach (
glob($sessionDir "*.sess") as $file
  if (
$compareTime >= filemtime($file)) 
    if (
unlink($file)) $count++;  
echo 
"$count session files were deleted"
?>



SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

yAnTar_yAnTar

#11
Нашли в чем проблема, проблема была не в сессиях, а в кеше.
Зависает на єтой строке
$data = serialize($data);
Причем интересно, что кеш отключен всюду ( бридж, форум, джумла - хотя последний кеш к єтому отношения не имеет), а переменная $this->_caching все равно  = 1
Если ставить $this->_caching = 0 - не подтягиваются файлы стилей.

$data  - имеет 2 свойства - search i replace, каждое из которых имеет 100 элементов, из-за этого и виснет.
Эти линки - это переход от линков СМФа к линков джумлы.

ini_set("memory_limit", "128M"); не помогает.  >:(

yAnTar_yAnTar

На форуме Joomlahacks.com нашел решение
I searched on Forum this solution.
В файле components/com_smf/smf.class.php
Закомментировать строки
array_push($cache_search, $orig);
array_push($cache_replace, $new_link);



Mr. Anviss

Бросьте Вы искать проблему в кэше или в сессиях! components/com_smf свидетельствует о том, что у вас стоит мост. И сообщение об ошибке говорит, что ошибка именно в мосте. Вы можете скачать мой мост за плату (плата для развития моста под другие версии joomla и smf)
Принимаю WebMoney
WMZ Z566253217582
WMR R567698682156
WMU U430120936067

Файл моста можно взять вот здесь или во вложении.

yAnTar_yAnTar

2 anviss. Да проблема уже решена, да и ваш мост мне не подойдет, так как в том мосте, я уже правил очень и очень много.
И не буду покупать ваш скрипт.

Mavn

Цитата: anviss от 11 августа 2008, 19:42:24
Бросьте Вы искать проблему в кэше или в сессиях! components/com_smf свидетельствует о том, что у вас стоит мост. И сообщение об ошибке говорит, что ошибка именно в мосте. Вы можете скачать мой мост за плату (плата для развития моста под другие версии joomla и smf)
Принимаю WebMoney
WMZ Z566253217582
WMR R567698682156
WMU U430120936067

Файл моста можно взять вот здесь или во вложении.
если так усердно рекламируете свой мост то ценик хотя бы вывесите!
Если это доработка существующих мостов то продажа данного моста должна осуществляться с ведома автора оригинального моста иначе это просто нарушение лицензии!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Mr. Anviss

Ну во-первых мост не является доработкой других мостов, а по поводу цены - это не самоцель. То я просто так для проверки. Я думаю, что если человеку действительно нужен мост, то он заплатит, а если так абы был то чего я буду дальше с ним возиться? Кому сколь не жалко пусть столько и заплатит.

Mr. Anviss

Цитата: yAnTar_yAnTar от 11 августа 2008, 19:56:40
2 anviss. Да проблема уже решена, да и ваш мост мне не подойдет, так как в том мосте, я уже правил очень и очень много.
И не буду покупать ваш скрипт.
Ну то, что проблема уже решена - это очень хорошо. А покупать мой мост я никого не заставляю! Если Вам он не нужен - я ничего против не имею. А вот с другими бы поделились тем как вы решили проблему.

yAnTar_yAnTar

Цитата: anviss от 12 августа 2008, 11:41:52
А вот с другими бы поделились тем как вы решили проблему.
Я выше написал, в чем была проблема в моем конкретном случае

Mr. Anviss

Если происходит кэширование в общую папку temp то проку от того что вы отключили кэширование - 0. На этом сервере тогда и других пользователей сессии и кэши кидает в нее. И будет по любому она забита до отказа.

yAnTar_yAnTar

Цитата: anviss от 12 августа 2008, 12:21:57
Если происходит кэширование в общую папку temp то проку от того что вы отключили кэширование - 0. На этом сервере тогда и других пользователей сессии и кэши кидает в нее. И будет по любому она забита до отказа.
Папку я сменил уже, но это не имеет никакого отношения к моей проблеме.

Проблема в сохраненнии перевода линков - сериализе при большом количестве элементов в массиве не справляется.

Vysotnik

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 50052 bytes) in /home/........../components/com_smf/smf.class.php on line 341

после обновления форума с 1.1.7 до 1.1.11 стала появляться такая же ошибка и решение предложенное выше к сожалению не подошло :(

yAnTar_yAnTar

Цитата: Vysotnik от 13 декабря 2009, 02:42:26
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 50052 bytes) in /home/........../components/com_smf/smf.class.php on line 341

после обновления форума с 1.1.7 до 1.1.11 стала появляться такая же ошибка и решение предложенное выше к сожалению не подошло :(

Кстати, какая версия PHP, потому что 5 жрет меньше памяти, чем 4

Vysotnik

Цитата: yAnTar_yAnTar от 13 декабря 2009, 19:44:27
Кстати, какая версия PHP, потому что 5 жрет меньше памяти, чем 4
php стоит пятый,
по ходу, 11-я версия smf стала в большем объёме файлы сессий создавать для папки temp и при увеличении общей нагрузки на сервере на эту папку возникает такая ошибка...

сейчас посмотрел, ошибки нет, видимо нагрузка на сервер упала, короче ситуация сильно зависит от загруженности хостера :(

кэширование в smf.class.php тоже отключил, надеюсь теперь, что не слишком часто будет эта трабла вылезать