За момента останах на thin + nginx + monit. Станчо, вие перете с
enterprise, нали?
> Мерси много.
> 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-а едновременно).