a-zazell Опубликовано 8 августа, 2013 (изменено) · Жалоба Здравствуйте, на Ubuntu установлен RedMine, при первом обращении процесс ruby жрет 100%, web интерфейс висит в это время (10-20-30 секунд). После того как просрется откроется, работает нормально ... Инфа по системе и пакетам: # aptitude show redmine Package: redmine State: installed Automatically installed: no Version: 1.1.3-4 Priority: extra Section: universe/web Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Uncompressed Size: 12.7 M Depends: ruby1.8, ruby-rails-2.3 | rails, dbconfig-common, redmine-sqlite | redmine-mysql | redmine-pgsql, debconf (>= 0.5) | debconf-2.0 PreDepends: debconf Suggests: libsvn-ruby (>= 1.3), ruby-rmagick, libopenid-ruby Conflicts: redmine Breaks: redmine-plugin-botsfilter (<= 1.02-1), redmine-plugin-botsfilter (<= 1.02-1) Description: flexible project management web application Redmine is a flexible project management web application. Written using Ruby on Rails framework, it is cross-platform and cross-database. Dependencies for database support are provided by these metapackages: redmine-mysql, redmine-pgsql, redmine-sqlite. Features * Multiple projects support * Flexible role based access control * Flexible issue tracking system * Gantt chart and calendar * News, documents & files management * Feeds & email notifications * Per project wiki * Per project forums * Time tracking * Custom fields for issues, time-entries, projects and users * SCM integration (SVN, CVS, Git, Mercurial, Bazaar and Darcs) * Issue creation via email * Multiple LDAP authentication support * User self-registration support * Multilanguage support Homepage: http://www.redmine.org # uname -a Linux edge 3.0.0-22-generic #36-Ubuntu SMP Tue Jun 12 17:37:42 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux # aptitude show ruby Package: ruby State: installed Automatically installed: yes Version: 4.8 Priority: optional Section: interpreters Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Uncompressed Size: 36.9 k Depends: ruby1.8 (> 1.8.7.334-1) Suggests: ri, ruby-dev Conflicts: irb, irb, rdoc, rdoc, ruby Replaces: irb, irb, rdoc, rdoc Provides: irb, rdoc Provided by: ruby1.8 Description: Transitional package for ruby1.8 This is a transitional package which ensures that users of ruby will use ruby1.8 in the future. It can safely be removed. Homepage: http://www.ruby-lang.org/ Ветка процессов: 5245 ? Ss 0:26 /usr/sbin/apache2 -k start 2569 ? Sl 0:00 \_ /usr/lib/phusion_passenger/ApplicationPoolServerExecutable 0 /usr/lib/phusion_passenger/passenger-spawn-server /usr/bin/ruby /t 2570 ? Sl 9:08 | \_ Passenger spawn server 8667 ? S 0:31 | \_ Passenger ApplicationSpawner: /usr/share/redmine 15345 ? S 0:03 \_ /usr/sbin/apache2 -k start 6921 ? S 0:03 \_ /usr/sbin/apache2 -k start 6925 ? S 0:03 \_ /usr/sbin/apache2 -k start 6926 ? S 0:03 \_ /usr/sbin/apache2 -k start 8539 ? S 0:01 \_ /usr/sbin/apache2 -k start 4289 ? S 0:00 \_ /usr/sbin/apache2 -k start 1760 ? S 0:00 \_ /usr/sbin/apache2 -k start 1762 ? S 0:00 \_ /usr/sbin/apache2 -k start 1763 ? S 0:00 \_ /usr/sbin/apache2 -k start 1793 ? S 0:00 \_ /usr/sbin/apache2 -k start TOP top - 13:00:58 up 36 days, 19:17, 1 user, load average: 0.33, 0.16, 0.19 Tasks: 92 total, 2 running, 90 sleeping, 0 stopped, 0 zombie Cpu(s): 24.9%us, 0.3%sy, 0.0%ni, 74.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 2055888k total, 1360796k used, 695092k free, 146692k buffers Swap: 11717628k total, 1052k used, 11716576k free, 674488k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 8743 www-data 20 0 194m 114m 2112 R 100 5.7 0:19.28 ruby 1760 www-data 20 0 215m 18m 4300 S 0 0.9 0:00.55 apache2 1762 www-data 20 0 209m 14m 3888 S 0 0.7 0:00.58 apache2 1763 www-data 20 0 208m 12m 3452 S 0 0.6 0:00.09 apache2 1793 www-data 20 0 214m 17m 4488 S 0 0.9 0:00.34 apache2 4289 www-data 20 0 210m 14m 3840 S 0 0.7 0:00.36 apache2 6921 www-data 20 0 232m 35m 4608 S 0 1.8 0:03.92 apache2 6925 www-data 20 0 232m 35m 4672 S 0 1.8 0:03.76 apache2 6926 www-data 20 0 214m 18m 4440 S 0 0.9 0:03.08 apache2 8539 www-data 20 0 215m 18m 4468 S 0 0.9 0:01.36 apache2 8667 www-data 20 0 191m 112m 3596 S 0 5.6 0:31.62 ruby 15345 www-data 20 0 232m 35m 4668 S 0 1.8 0:03.14 apache2 Первая инсталляция, сравнивать не с чем. Может кто-то сталкивался, буду рад совету. Изменено 10 августа, 2013 пользователем a-zazell Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
srg555 Опубликовано 8 августа, 2013 · Жалоба Это нормально, просто при первом обращении компилируется ruby-код. Можно в логротейте поставить что-то типа curl http://127.0.0.1/redmine 1>/dev/null 2>/dev/null (если вы логротейте делает restart, а не reload. reload иногда приводит в segfault-у) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
a-zazell Опубликовано 8 августа, 2013 · Жалоба Это нормально, просто при первом обращении компилируется ruby-код. Можно в логротейте поставить что-то типа curl http://127.0.0.1/redmine 1>/dev/null 2>/dev/null (если вы логротейте делает restart, а не reload. reload иногда приводит в segfault-у) Не совсем понял, это для ротации ruby или redmine, имя конфига мне бы помог (=? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
srg555 Опубликовано 9 августа, 2013 · Жалоба a-zazell это ротация для апача. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
decuplet Опубликовано 10 августа, 2013 (изменено) · Жалоба Руби это инетрпретируемый, а не компилируемый язык. Это, однако, не отменяет возможности активации ленивого кеширования при первой загрузке. В данном случае сервер приложений — это Phusion Passenger, который подгружается в апач как модуль. Именно он ответственнен за управление рельсами (фреймфорк, на котором написан редмайн). Проблема холодного старта пассажира в общем-то известна и, как мне известно, решается настройкой. Задача в том, чтобы пассажир подготавливал процесс приложения до прихода первого запроса. Вот ссылки в гугл с правильными запросами: https://www.google.ru/?gws_rd=cr#bav=on.2,or.r_cp.r_qf.&fp=3c92bd72a20de06a&newwindow=1&q=phusion+passenger+slow+startup&safe=off Вот обсуждение на стэк оверфлоу: http://stackoverflow.com/questions/853532/slow-initial-server-startup-when-using-phusion-passenger-and-rails Конфигурация пассажира должна находиться где-то в /etc/apache2/mods-enabled. Наверно passenger.conf или что-нибудь вроде того. Изменено 10 августа, 2013 пользователем decuplet Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
littlesavage Опубликовано 10 августа, 2013 (изменено) · Жалоба Здравствуйте, на Ubuntu установлен RedMine, при первом обращении процесс ruby жрет 100%, web интерфейс висит в это время (10-20-30 секунд). После того как просрется откроется, работает нормально ... Прогревается, ага. Ruby 1.9 вместо 1.8 значительно ускорит процесс. Не обязательно пулить по крону, passanger'у можно указать, чтобы он после форка рабочего процесса делал на него запрос: http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerPreStart Изменено 10 августа, 2013 пользователем littlesavage Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
a-zazell Опубликовано 10 августа, 2013 · Жалоба Спасибо за советы, про кэширование уже "догнал", читаю про Passenger ... По результатам отпишусь. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
a-zazell Опубликовано 10 августа, 2013 · Жалоба Здравствуйте, на Ubuntu установлен RedMine, при первом обращении процесс ruby жрет 100%, web интерфейс висит в это время (10-20-30 секунд). После того как просрется откроется, работает нормально ... Прогревается, ага. Ruby 1.9 вместо 1.8 значительно ускорит процесс. Не обязательно пулить по крону, passanger'у можно указать, чтобы он после форка рабочего процесса делал на него запрос: http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerPreStart Спасибо за наводку, привел к пре старту пассажира в момент apache2 restart. Кэшем плотно не занимался, не тот масштаб проекта ... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...