Искам да преминем на Nginx + Mongrel, но за сега имаме проблем. Има един-два
сайта от които, след пускане на "кофти" заявки към нас и Mongrel-a връща
Errors. Същите грешки, чупят напълно Thin. От друга страна, ако се пуне
Nginx с Монгрел, не се чупи но пък се натоварва прекалено много от писане на
error logs (апачито, някак по-кротко "плюе" подобните грешки).
Стан.
> Отбелязвам ей това:
> http://clockingit.wordpress.com/2008/06/18/ruby-on-rails-and-memory-u...
> За момента останах на thin + nginx + monit. Станчо, вие перете с
> enterprise, нали?
> On Aug 11, 10:50 am, Петьо Иванов <under...@gmail.com> wrote:
> > Мерси много.
> > 1. И на мен ми направи впечатление това. Монгрелите наистина гълтат
> > памет.
> > 2. По принцип карам с компилирано от сорс ръби. Причини - собствената
> > ми глупост. Има части от сайта (за щастие, административни), които
> > ползват стара версия на hobo, която работи с пачнат rexml, страшно
> > бавен. Който на всичкото отгоре не работи с нови ruby дистрибуции. Май
> > първото което трябва да направя, е да ги изхвърля. Ето и резултата от
> > strace:
> > <pre>
> > % time seconds usecs/call calls errors syscall
> > ------ ----------- ----------- --------- --------- ----------------
> > nan 0.000000 0 9 read
> > nan 0.000000 0 16 open
> > nan 0.000000 0 16 close
> > nan 0.000000 0 32 27 stat
> > nan 0.000000 0 9 fstat
> > nan 0.000000 0 27 mmap
> > nan 0.000000 0 8 mprotect
> > nan 0.000000 0 2 munmap
> > nan 0.000000 0 13 brk
> > nan 0.000000 0 12 rt_sigaction
> > nan 0.000000 0 2 rt_sigprocmask
> > nan 0.000000 0 9 9 access
> > nan 0.000000 0 1 execve
> > nan 0.000000 0 1 getrlimit
> > nan 0.000000 0 1 getuid
> > nan 0.000000 0 1 getgid
> > nan 0.000000 0 2 geteuid
> > nan 0.000000 0 2 getegid
> > nan 0.000000 0 1 arch_prctl
> > ------ ----------- ----------- --------- --------- ----------------
> > 100.00 0.000000 164 36 total
> > </pre>
> > Имам някакви проблеми точно с GC, ще прегледам enterprise-а. Макар че
> > думичката ми вдъхва страх.
> > Мерси и за останалите препоръки. Ще пробвам да swap-на с thin, и ще
> > пиша впечатления. Upload-а за сега не боли.
> > Петьо
> > On Aug 11, 5:05 am, Stoyan Zhekov <sto...@gmail.com> wrote:
> > > On Aug 10, 5:37 am, Петьо Иванов <under...@gmail.com> wrote:
> > > > От една седмица деплойвам дълго разработвания и мигриран семеен
> > > > бизнес, който бъхтя от половин година. Реших да си споделя
> > > > впечатленията, белким помогнете, или помогнат на някого.
> > > Универсални рецепни няма, но все пак ето някой неща, които надявам се
> > > да помогнат:
> > > 1. slicehost: Използват 64-битови Xen domUs - хубаво за mysql, но Ruby
> > > процесите използват доста памет - почти два пъти повече, отколкото на
> > > 32 битови domU. Затова се отказах от slicehost.
> > > 2. Ruby: Не знам каква дистрибуция ползваш, поне на Debian/Ubuntu Ruby
> > > се компилира с --enable-pthread заради ruby-tk, което при vps доста
> > > забавя нещата. Малък тест:
> > > strace -c ruby -e '1.upto(100000) {|i| i.to_s}'
> > > и виж реда:
> > > 99.65 1.462627 7 200006 sigprocmask
> > > Дискусия по проблема:
> http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/a3...
> > > Добра идея е може би също да използваш ruby-enterprice [
> http://www.rubyenterpriseedition.com/] - patch-нати са garbage
> > > collection, memory allocator и др.
> > > 3. nginx: всички напоследък го препоръчват, но все пак не е silver
> > > bullet - Добър е за статиката, но като load balancer е слаб. По
> > > принцип си идва с прост Round Robin. RoR е извесна с това, че обслужва
> > > само по един request - то си е CGI базирано. Затова и ти трябват
> > > повечко application servers, било то mongrel или thin. Но ако е прост
> > > Round Robin и вече се обслужва някой request, nginx просто натиква
> > > следващия в опашката на поредния app server и той си чака там. Така
> > > скоро всички процеси са заети. Решения:
> > > - nginx-fair balancer: [
> http://wiki.codemongers.com/NginxHttpUpstreamFairModule
> > > ]
> > > - HAproxy (което бих ти препоръчал) -
> http://affectioncode.wordpress.com/2008/06/28/another-comparison-of-h...
> > > 4. god: Поне аз предпочитам monit [http://www.tildeslash.com/monit/]
> > > - лично мнение. Мисля, че ползва по-малко памет.
> > > 5. thin: предимствата са, че може да го "вържеш" с nginx на unix
> > > socket - някой твърдят, това ускорява нещата -
> http://macournoyer.wordpress.com/2008/01/26/get-intimate-with-your-lo...
> > > . Но ако ползваш HAproxy, това май губи смисъл.
> > > 6. Може да помислиш по пренаписването на някой части (специално ако
> > > има upload) от сайта на Merb [http://merbivore.com/] - по-малко
> > > памет и по-бърз (не е CGI базиран и би трябвало да обслужва няколко
> > > request-а едновременно).