From: Eric Wong <e@80x24.org> To: Sarkis Varozian <svarozian@gmail.com> Cc: Michael Fischer <mfischer@zendesk.com>, unicorn-public <unicorn-public@bogomips.org> Subject: Re: Request Queueing after deploy + USR2 restart Date: Wed, 4 Mar 2015 20:35:14 +0000 [thread overview] Message-ID: <20150304203514.GA17826@dcvr.yhbt.net> (raw) In-Reply-To: <CAGchx-JUBAcaRwaMknZF+rtB+3dTZ+1jQUw5H1Nb=8YmFQRaBg@mail.gmail.com> Sarkis Varozian <svarozian@gmail.com> wrote: > On Wed, Mar 4, 2015 at 12:17 PM, Michael Fischer <mfischer@zendesk.com> > wrote: > > > I'm not exactly sure how preload_app works, but I suspect your app is > > lazy-loading a number of Ruby libraries while handling the first few > > requests that weren't automatically loaded during the preload process. > > > > Eric, your thoughts? (top-posting corrected) Yeah, preload_app won't help startup speed if much of the app is autoloaded. Sarkis: which Ruby version are you running? IIRC, 1.9.2 had terrible startup performance compared to 1.9.3 and later in case you're stuck on 1.9.2 > That does make sense - I was looking at another suggestion from a user here > (Braulio) of running a "warmup" using rack MockRequest: > https://gist.github.com/brauliobo/11298486#file-unicorn-conf-rb-L77 > > The only issue I am having with the above solution is it is happening in > the before_fork block - shouldn't I warmup the connection in after_fork? If preload_app is true, you can warmup in before_fork; otherwise it needs to be after_fork. > If > I follow the above gist properly it warms up the server with the old > activerecord base connection and then its turned off, then turned back on > in after_fork. I think I am not understanding the sequence of events > there... With preload_app and warmup, you need to ensure any stream connections (DB, memcached, redis, etc..) do not get shared between processes, so it's standard practice to disconnect in the parent and reconnect in the child. > If this is the case, I should warmup and also check/kill the old > master in the after_fork block after the new db, redis, neo4j connections > are all created. Thoughts? I've been leaving killing the master outside of the unicorn hooks and doing it as a separate step; seemed too fragile to do it in hooks from my perspective.
next prev parent reply other threads:[~2015-03-04 20:35 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-03-03 22:24 Sarkis Varozian 2015-03-03 22:32 ` Michael Fischer 2015-03-04 19:48 ` Sarkis Varozian 2015-03-04 19:51 ` Michael Fischer 2015-03-04 19:58 ` Sarkis Varozian 2015-03-04 20:17 ` Michael Fischer 2015-03-04 20:24 ` Sarkis Varozian 2015-03-04 20:27 ` Michael Fischer 2015-03-04 20:35 ` Eric Wong [this message] 2015-03-04 20:40 ` Sarkis Varozian 2015-03-05 17:07 ` Sarkis Varozian 2015-03-05 17:13 ` Bráulio Bhavamitra 2015-03-05 17:28 ` Sarkis Varozian 2015-03-05 17:31 ` Bráulio Bhavamitra 2015-03-05 17:32 ` Bráulio Bhavamitra 2015-03-05 21:12 ` Eric Wong 2015-03-03 22:47 ` Bráulio Bhavamitra 2015-03-04 19:50 ` Sarkis Varozian [not found] ` <CAJri6_vidE15Xor4THzQB3uxyqPdApxHoyWp47NAG8m8TQuw0Q@mail.gmail.com> 2015-09-13 15:12 ` Bráulio Bhavamitra 2015-09-14 2:14 ` Eric Wong
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: https://yhbt.net/unicorn/ * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20150304203514.GA17826@dcvr.yhbt.net \ --to=e@80x24.org \ --cc=mfischer@zendesk.com \ --cc=svarozian@gmail.com \ --cc=unicorn-public@bogomips.org \ --subject='Re: Request Queueing after deploy + USR2 restart' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: ../../unicorn.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).