LINUX.ORG.RU

perl-DBD-MySQL + perl-DBI сколько занимает памяти на сервере при выполнении метода connect?


0

1

При выполнении веб сервером, perl скрипт падал при выполнении коннекта к базе (DBI->connect). Пришлось увеличить вдвое оперативы (с 40МБ до 90МБ) на хостинге чтобы скрипт заработал
Как определить внутри скрипта или с консоли сколько необходимо памяти на хостинге для работы модуля DBI? и вообще сколько оперативы требуют модули perl для своей работы
PS
Основной сайт написан на php и проблем с коннектом к БД при 40МБ на хостинге не возникает. Получается что на perl с его модулями сайты писать неэффективно?

★★★★

Получается что на perl с его модулями сайты писать неэффективно?

Персональные домашние страницы на копеешных хостингах - для этого есть DSL, называется PHP.

outtaspace ★★★
()

Как определить внутри скрипта или с консоли сколько необходимо памяти на хостинге для работы модуля DBI?

Ну например

perl -MDBI -e 'DBI->connect("DBI:mysql:database=test;host=192.168.1.1","test","test"); sleep 10'
# ps -eo pid,%mem,rss,vsz,command | grep perl
 2722  1.9  6080 114992 perl -MDBI -e DBI->connect("DBI:mysql:database=test"....

Или лучше

... estimates of source-to-compiled code bloat suggest an eightfold increase. This means that the compiled form of reasonable (normally commented, properly indented etc.) code will take about eight times more space in memory than the code took on disk.
http://perldoc.perl.org/perldebguts.html#Debugging-Perl-Memory-Usage


По хорошему конечно надо учитывать размер данных, хэши например могут очень сильно разбухать. Размер переменных показывает https://metacpan.org/pod/Devel::Size

pru-mike ★★
()

Основной сайт написан на php и проблем с коннектом к БД при 40МБ на хостинге не возникает. Получается что на perl с его модулями сайты писать неэффективно?

Еще один все понял

umren ★★★★★
()
Ответ на: комментарий от pru-mike

в моем случае perl еще больше отъедает цифр 174МБ.

[root@hosting mysql]# ps -eo pid,%mem,rss,vsz,command | grep perl
14655  0.0  7168 164344 perl -MDBI -e DBI->connect("DBI:mysql:database=test;host=mysql.ip.pro","test","test"); sleep 10
Модуль Devel::Size возвращает размер 240 байт на указатель объекта DBI->connect, странно может что не понимаю. На объектах типа хэш, список возвращается что то соизмеримое и понятное

Для "http://perldoc.perl.org/perldebguts.html#Debugging-Perl-Memory-Usage" видимо perl необходимо перекомпилять
PERL_DEBUG_MSTATS=2 perl -e «use DBI» ничего не выводит.
Вообщем туманно все.

Vlad-76 ★★★★
() автор топика
Последнее исправление: Vlad-76 (всего исправлений: 1)
Ответ на: комментарий от umren

Какой тогда ЯП ест меньше всего оперативу при таком же многообразии модулей подходящий для web разработки?

Vlad-76 ★★★★
() автор топика
Ответ на: комментарий от Vlad-76

меньше пхп? Go если только, но инфраструктура для веб победнее, хотя если тебе не нужно экзотики то подойдет.

umren ★★★★★
()
Ответ на: комментарий от AnDoR

Вы уверены что 7МБ?
В настройках апача-а для VirtualHost сейчас выставлена опция RLimitMEM 134217728

[root@hosting cgi-bin]# ps -eo pid,%mem,rss,vsz,command | grep perl
26703  0.3 29664 106340 perl /home/user75/data/www/foto.su/cgi-bin/test5.cgi
rss+vsz 29664+106340=136004КБ

Vlad-76 ★★★★
() автор топика
Последнее исправление: Vlad-76 (всего исправлений: 1)
Ответ на: комментарий от Vlad-76

Можно попробовать опубликовать более конкретное описание проблемы (в виде кода, файлов настроек и т.п. с указанием ошибок и условий их появления).
Сейчас по твоему описанию - ну не хватает памяти значит не хватает, что тут сделаешь-то?

pru-mike ★★
()
Ответ на: комментарий от pru-mike

Да. проблема все равно решилась увеличением памяти. место падения DBI-connect определено на 100%. Закрываю тему.

Vlad-76 ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.