LINUX.ORG.RU

Пожирание памяти популярными веб-феймворками


2

6

Кто-нибудь бенчил свои фреймворки? Сколько памяти пожирает он?

А нужно это для того, чтобы понять, на чем делать сайт под хостинг с 512 мегабайтами рамы и процом 400МГц.

Playframework2, Symfony2, Ruby on Rails, Django

Особенно интересно Playframework2, но у меня нету на нем ни одного достаточного сложного сайта, чтобы вот сейчас загнать в локальную виртуалочку и помучить httperf'ом. С одной стороны, умом я понимаю, что мегабайт 700 оно жрать обязано, плюс память на какую-нибудь БД (postgres поди мегабайт 300 жрет). Т.е. минимальный хостинг для Плея должен иметь гиг рамы. С другой стороны, в интернетах случаются люди, которые ставили лимиты и в 200 мегабайт, но при этом не отписывались о результатах.

★★★★☆
Ответ на: комментарий от kavkaz

круто. Настоящие цифры! Спасибо!

stevejobs ★★★★☆
() автор топика

У нас сейчас на бесплатной (для сертифицированных партнеров) ажуровской виртуалке (полтора гига памяти, одно ядро, около гигагерца) вполне себе крутится тестовый стенд, представляющий из себя томкат с тремя веб-приложениями, каждое их которых на спринге + апачевская кафка вместе с zookeeper + монга + nginx. Так что при правильных руках ява-стек вполне себе адекватен в пожирании ресурсов. Собственно единственное неудобство - что периодически с out of memory валится maven при пересборке варников для редеплоя.

Nagwal ★★★★
()

лишнее поскипано, сервер - openvz:

root      1615  0.0  1.8  53452  7528 ?        Ss    2013  16:31 /usr/bin/python /usr/bin/supervisord
root      7348  0.5  3.5  53968 14616 ?        S    13:50   0:00 python runav3nc.py
radicale 16105  0.0  2.3  63184  9760 ?        Sl   Янв19   3:03 /usr/bin/python /usr/bin/radicale --pid=/var/run/radicale/radicale.pid --daemon
root     25960  0.0  2.9  46908 11980 ?        S    Янв10   1:25 python run.py
root     25961  0.0  2.8  47256 11860 ?        S    Янв10   1:21 python run.py 2
root     25962  0.0  2.7  50952 11264 ?        S    Янв10   1:28 python run.py
root     25964  0.0  3.2  57260 13200 ?        S    Янв10   1:40 python rundem.py
root     25968  0.0  4.9  72004 20332 ?        S    Янв10   1:41 /srv/py/bin/python /srv/py/bin/hg serve --web-conf hgweb.conf -a 127.0.0.1 -p 5001
root     25969  0.0  5.4  66588 22240 ?        S    Янв10   0:30 python run.py
root     25972  0.0  3.1  47936 12876 ?        S    Янв10   1:23 python run.py 2
root     26153  0.0  2.6  46104 10988 ?        S    Янв10   1:21 python run.py
root     32536  0.0  3.2  50304 13396 ?        S    Янв17   0:42 python run.py
root     23343  0.0  0.4  62632  1884 ?        Ss   Янв14   0:00 nginx: master process /usr/sbin/nginx
www-data 23344  0.0  0.7  63240  3264 ?        S    Янв14   0:26 nginx: worker process
www-data 23345  0.0  0.7  63240  3232 ?        S    Янв14   0:26 nginx: worker process
www-data 23346  0.0  0.7  63240  3192 ?        S    Янв14   0:27 nginx: worker process
www-data 23347  0.0  0.7  63240  3268 ?        S    Янв14   0:27 nginx: worker process
# free -m
             total       used       free     shared    buffers     cached
Mem:           400        192        207          0          0         75
-/+ buffers/cache:        116        283
Swap:            0          0          0
anonymous
()
Ответ на: комментарий от stevejobs

На текущей визитке есть кнопка «скачать прайс», сейчас прайсы качают часто, предполагаю что на реальный сайт будет ощутимая нагрузка.

а какая разница фреймворку, кем отдавать статику? статику отдаёт nginx/lighttpd. если прайс динамический, то его можно генерировать хоть кроном раз в день, раз в час, раз в полчаса. или прайс каждые две секунды меняется?

anonymous
()
Ответ на: комментарий от anonymous

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

Поставил задачу - разобраться как там с кэшированием неавторизованных ресурсов в Симфони, ОК, спасибо.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

прайс лежит в БД, страничка генерится динамически из БД, я пока не знаю как без гемора превращать его в статику не поломав всего остального.

вгет в крон засунь, и всего делов.

anonymous
()
Ответ на: комментарий от Vit

btw, зделал сайт-заглушку на Ноде. Ничего нет, только пустая страничка с меню, авторизация и пустая админка. Картинки, ужатые в нищебродский PNG-8.

Фронтенд - nginx, обслуживающий статику и делающий proxy_pass->upstream ноду на трехтысячном порту. Статика еще отдается нодовским модулем, на случай если кто-то полезет прямо на 3000й порт, н-р в целях тестирования nginx'а.

http://new.asterelectro.ru

203 мегабайта.

  "dependencies": {
    "express": "3.4.8",
    "jade": "*",
    "less-middleware": "*",
    "optimist": "*",
    "passport": "*",
    "passport-local": "*",
    "connect-flash": "*",
    "connect-ensure-login": "*"
  },
  "devDependencies": {
    "grunt": "*",
    "grunt-contrib": "*",
    "grunt-contrib-less": "~0.7.0",
    "grunt-contrib-watch": "*",
    "grunt-contrib-jshint": "~0.6.4",
    "grunt-contrib-concat": "*",
    "grunt-iced-coffee": "~0.7.0-a",
    "grunt-shell-spawn": "~0.3.0"
  }

такие дела.

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

Сколько 404 повылезло, стыдоба.

Алсо, кто же голым портом в сеть глядит, чудило. И статику «на случай» раздавать не придётся.

anonymous
()
Ответ на: комментарий от anonymous

чего? какие 404? там весь сайт - 1 страница, а на все остальные пути должно выдаваться «cannot serve GET»+путь.

что не так в голом порте? На SO вообще советуют прямо так и раздавать, без всякого nginx'а, только перевесить на 80й порт. Но мне так неудобно, вдруг захочется повесить больше одного сайта.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от anonymous

плюс моща у nginx в раздаче статики повыше

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

Такие 404. Вынь голову оттуда, куда ты её засунул, и посмотри в консоль или лог.

<script type=«text/javascript» src=«/public//public/javascripts/

anonymous
()
Ответ на: комментарий от anonymous

а, да насрать на это.

впрочем, спасибо что сказал, посмотрю есть ли это в текущей версии сайта, и если да - то поправлю) Но это вряд ли что есть

stevejobs ★★★★☆
() автор топика
Последнее исправление: stevejobs (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.