Jump to content

Recommended Posts

Posted (edited)

Здравствуйте, на 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

 

 

 

Первая инсталляция, сравнивать не с чем. Может кто-то сталкивался, буду рад совету.

Edited by a-zazell
Posted

Это нормально, просто при первом обращении компилируется ruby-код. Можно в логротейте поставить что-то типа curl http://127.0.0.1/redmine 1>/dev/null 2>/dev/null (если вы логротейте делает restart, а не reload. reload иногда приводит в segfault-у)

Posted

Это нормально, просто при первом обращении компилируется ruby-код. Можно в логротейте поставить что-то типа curl http://127.0.0.1/redmine 1>/dev/null 2>/dev/null (если вы логротейте делает restart, а не reload. reload иногда приводит в segfault-у)

 

Не совсем понял, это для ротации ruby или redmine, имя конфига мне бы помог (=?

Posted (edited)

Руби это инетрпретируемый, а не компилируемый язык. Это, однако, не отменяет возможности активации ленивого кеширования при первой загрузке.

В данном случае сервер приложений — это 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 или что-нибудь вроде того.

Edited by decuplet
Posted (edited)

Здравствуйте, на Ubuntu установлен RedMine, при первом обращении процесс ruby жрет 100%, web интерфейс висит в это время (10-20-30 секунд).

После того как просрется откроется, работает нормально ...

 

Прогревается, ага. Ruby 1.9 вместо 1.8 значительно ускорит процесс. Не обязательно пулить по крону, passanger'у можно указать, чтобы он после форка рабочего процесса делал на него запрос: http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerPreStart

Edited by littlesavage
Posted

Здравствуйте, на 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. Кэшем плотно не занимался, не тот масштаб проекта ...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.