Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Проблема нехватки памяти (Maximus_Decimus)
Author Message
Maximus_Decimus
Участник форума



Joined: 14 Feb 2005
Posts: 26
Карма: 0
   поощрить/наказать

Location: Приднестровье г. Бендеры

PostPosted: Fri Sep 18, 2009 2:25 pm (написано за 1 минуту 51 секунду)
   Post subject: Проблема нехватки памяти
Reply with quote

Не уверен что написал в ту тему.
Есть проблема скрипт пишет Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 4088372 bytes) in /www/htdocs/controlsite/lib/DbSimple/Generic.php on line 775
Понимаю что нехватка памяти но не понимаю почему.
Происходит загрузка файла 1,8метра в блоб поле MySQl.
Хотелось бы совет как найти в чем проблема и как ее устранить.
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Sat Sep 19, 2009 4:56 am (спустя 14 часов 31 минуту; написано за 32 секунды)
   Post subject:
Reply with quote

Maximus_Decimus
Unix? Как-то путь не денверовский
Back to top
View user's profile Send private message
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Sat Sep 19, 2009 3:25 pm (спустя 10 часов 28 минут; написано за 1 минуту 2 секунды)
   Post subject:
Reply with quote

Maximus_Decimus wrote:
Происходит загрузка файла 1,8метра в блоб поле MySQl.
В любом случае, файлы в БД хранить не нужно. В том числе и из-за большой вероятности таких ошибок, как у Вас. Переведите текст и всё поймете.
Back to top
View user's profile Send private message Send e-mail
Maximus_Decimus
Участник форума



Joined: 14 Feb 2005
Posts: 26
Карма: 0
   поощрить/наказать

Location: Приднестровье г. Бендеры

PostPosted: Mon Sep 21, 2009 7:58 am (спустя 1 день 16 часов 33 минуты; написано за 3 минуты 22 секунды)
   Post subject:
Reply with quote

Maus Да это не денвер а хостинг, в том то и дело что на денвере все работает на локалке. Вернее заработало когда я увеличил память для операции. Но тут выдает что нехватакт памяти хотя я гружу всего 1.8 метра файлик а там доступно 8 метроы
Юрий Насретдинов Я знаю что не делается но я долго работал под пострисом поэтому привык хранить все в базе.

Так всетаки ктото подскажет как определить где он спотыкается место должно хватать
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Mon Sep 21, 2009 12:24 pm (спустя 4 часа 25 минут; написано за 1 минуту 46 секунд)
   Post subject:
Reply with quote

Maximus_Decimus
под Ваш файлик там и сям выделяется по 2 мега. а освободиться не успевает. Попробуйте тот же запрос осуществить в тестовом скрипте без DBSimple
Back to top
View user's profile Send private message
Maximus_Decimus
Участник форума



Joined: 14 Feb 2005
Posts: 26
Карма: 0
   поощрить/наказать

Location: Приднестровье г. Бендеры

PostPosted: Mon Sep 21, 2009 1:06 pm (спустя 42 минуты; написано за 1 минуту 19 секунд)
   Post subject:
Reply with quote

А есть какие-то средства при помощи которых можно отловить в каком месте приходит переполнение или просто сидеть и каждый массив проверять и unset его?
Back to top
View user's profile Send private message Send e-mail
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Mon Sep 21, 2009 5:19 pm (спустя 4 часа 12 минут; написано за 19 секунд)
   Post subject:
Reply with quote

Maximus_Decimus wrote:
есть какие-то средства при помощи которых можно отловить в каком месте приходит переполнение
Ну, она же пишет, на какой строчке ей не хватило памяти :). Если на таком уровне, то да, можно.
Back to top
View user's profile Send private message Send e-mail
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9985
   поощрить/наказать


PostPosted: Mon Sep 21, 2009 5:54 pm (спустя 35 минут)
   Post subject:
Reply with quote


М

Перенесено из форума: Базовый пакет :: Денвер.
Перенесено в форум: Разное :: PHP.
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Mon Sep 21, 2009 8:44 pm (спустя 2 часа 49 минут; написано за 6 минут 31 секунду)
   Post subject:
Reply with quote

Maximus_Decimus wrote:
А есть какие-то средства при помощи которых можно отловить
С отладчиком пройтись. Если под Win будете отлаживать, то там: а) неудобно мерять расход памяти и б) memory_limit не работает.
в ситуации вложенных вызовов unset Вас не спасет, хотя спасет передача по ссылке. Ею, правда, не всегда удается воспользоваться. Можно, конечно, строку обернуть в объект - но фиг знает, какие это потянет за собой переделки и костыли
Back to top
View user's profile Send private message
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 96
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Mon Sep 21, 2009 9:50 pm (спустя 1 час 6 минут; написано за 6 минут 44 секунды)
   Post subject:
Reply with quote

Maximus_Decimus wrote:
Я знаю что не делается но я долго работал под пострисом поэтому привык хранить все в базе.
странно, неужели использование какой-либо определенной СУБД заставляет или приучает к дурацкой архитектуре?

файлы ненужно хранить в базе в первую очередь потому, что файлы в ФС (т.е. статику) сервер может отдавать сам, без привлечения php & СУБД что серьезно экономит ресурсы. все равно ведь не в этом месте, так просто в общей производительности такое решение приведет к затыку. так что стоит не пытаться выкрутиться сейчас, а переделать по-нормальному.
Back to top
View user's profile Send private message
Maximus_Decimus
Участник форума



Joined: 14 Feb 2005
Posts: 26
Карма: 0
   поощрить/наказать

Location: Приднестровье г. Бендеры

PostPosted: Tue Sep 22, 2009 8:58 am (спустя 11 часов 7 минут; написано за 2 минуты 58 секунд)
   Post subject:
Reply with quote

Maus С отладчиком пройтись не удастся так как это дело находиться на хостинге на локалке все пашет и под виндой и под gentoo.
dimagolov Если сервер нормально настроен и кэширует например при помощи nginks то такая архитектуцра очень даже удачная позволяет не давать доступ пользователям к файловой системе и дает возможность даже новичку нормально работать с системой не надо гдето отдельно сохранять потом гдето чтото прописывать. Просто в нужном месте загружаеться файл и все.
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Tue Sep 22, 2009 11:19 am (спустя 2 часа 20 минут; написано за 5 минут 58 секунд)
   Post subject:
Reply with quote

Maximus_Decimus wrote:
С отладчиком пройтись не удастся
С отладчиком ходят не только тогда, когда что-то не работает.
Maximus_Decimus wrote:
такая архитектуцра очень даже удачная
Вообще, этот вопрос уже обсуждался на xpoint (xpoint.ru/forums/thread/13645.xhtml) и здесь уже отправляли туда почитать (forum.dklab.ru/viewtopic.php?t=7068) (-:
Back to top
View user's profile Send private message
Maximus_Decimus
Участник форума



Joined: 14 Feb 2005
Posts: 26
Карма: 0
   поощрить/наказать

Location: Приднестровье г. Бендеры

PostPosted: Tue Sep 22, 2009 12:19 pm (спустя 1 час 47 секунд; написано за 1 минуту 46 секунд)
   Post subject:
Reply with quote

MausДа и мне очень понравились рассуждения и доводы Дмитрия Котерова.
Правда я использую картинки в базе всегда так как систему расчитываю использовать для любого вида проектов и в крупных просто нужно будет подключать серверное кэшировнаие. А в мелких и так нормально будет.
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Tue Sep 22, 2009 12:38 pm (спустя 18 минут; написано за 3 минуты 24 секунды)
   Post subject:
Reply with quote

Maximus_Decimus
При таком подходе в крупных проектах Вы будете иметь оверхед почти 100% времени (по сравнению с решением на файлах). Просто в силу того, что BLOBы будут отъедать на порядки больше места в кэше mySQL, а значит и быстрее вытесняться оттуда.
То, что пути к файлам можно выгружать пакетно, в отличие от самих файлов - это, кстати, всем очевидно?
Back to top
View user's profile Send private message
Maximus_Decimus
Участник форума



Joined: 14 Feb 2005
Posts: 26
Карма: 0
   поощрить/наказать

Location: Приднестровье г. Бендеры

PostPosted: Tue Sep 22, 2009 12:54 pm (спустя 15 минут; написано за 5 минут 31 секунду)
   Post subject:
Reply with quote

MausЯ не имел ввиду кэш мускеуля а немного другое я конкретно не скажу как это реализовывалось так как реализовывали мы это совместо с толковым админом. С меня была только web составляющая. На сервере же устанавливался nginx а уже потом апач шел с php и пострисом. Картинки же отдавались следующим образом при обращению к скрипту отдачи картинки она отдавалась и записывалась в файловую систему а дальше nginx сам смотрел в файловой системе и если находил то отдавал ее без обращения к апачу и далее к php и постгрису а если не находил уже скрипт срабатывал и ложил в файловую систему. При таком варианте основная нагрузка по вытаскиванию из базы происходило в основном один раз когда пользователь грузил картину и смотрел как она смотрится на странице другие же посетители получали ее из кэша
Это конечно в идеальном вариате.
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Tue Sep 22, 2009 1:22 pm (спустя 28 минут; написано за 3 минуты 38 секунд)
   Post subject:
Reply with quote

Maximus_Decimus
Тогда какой смысл вообще сохранять картинки в базу, если в результате они все равно выкладываются на диск?
Сравниваем цепочки:
1) nginx запрашивает файл с диска
и
2) nginx стучит апачу, апач стучит мускулю, мускуль отдает файл апачу, апач кладет файл на диск и стучит нжинксу "забирай, готово"
Да, это будет не так часто. Но при первом подходе этого не будет никогда
Back to top
View user's profile Send private message
Maximus_Decimus
Участник форума



Joined: 14 Feb 2005
Posts: 26
Карма: 0
   поощрить/наказать

Location: Приднестровье г. Бендеры

PostPosted: Tue Sep 22, 2009 1:49 pm (спустя 26 минут; написано за 55 секунд)
   Post subject:
Reply with quote

MausСмысл в том что пользователь не получает доступ к файловой системе. Доступ к сайту осуществляется исключительно при помоши системы управления базой.
Back to top
View user's profile Send private message Send e-mail
Maximus_Decimus
Участник форума



Joined: 14 Feb 2005
Posts: 26
Карма: 0
   поощрить/наказать

Location: Приднестровье г. Бендеры

PostPosted: Tue Sep 22, 2009 1:51 pm (спустя 2 минуты; написано за 1 минуту 37 секунд)
   Post subject:
Reply with quote

Maus Возврашаясь к началу действительно никто не мешает пройтись зенд дебагером на локалке и посмотреть что куда записывается. Но помоему для 3 мозилы еще не выпустили плагин для дебага. Есть ли другие варианты отладчиков?
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Tue Sep 22, 2009 7:13 pm (спустя 5 часов 21 минуту; написано за 1 минуту 58 секунд)
   Post subject:
Reply with quote

Maximus_Decimus wrote:
пользователь не получает доступ к файловой системе
получает, опосредованно. То же самое можно получить, не привлекая СУБД.

Касательно отладки: Вы смешиваете 2 понятия - сам отладчик и его использование. Насчет отладчика: да, есть другой, xdebug. Насчет использования - можно пользоваться встроенным в IDE браузером.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML