Jeroen - thanks for the advice. Yeah, SNAPSHOTS in prod is a poor practice
anyway, this gives me a good incentive to find them and kill them.

Static files on boot... dang. When I was first investigating our slow boot
time I swear I checked Enlive, but another quick glance at the source
indicates it's almost certainly a contributor. Expletive! I will start
capturing some metrics on how much time we're spending loading HTML
templates at init. We're not loading a godawful number of separate HTML
files, so I'd like to avoid a bunch of delays throughout my views if
possible.

Thanks a bunch Jeroen.
-SP


On Wed, Jan 23, 2013 at 11:19 AM, Jeroen van Dijk <
jeroentjevand...@gmail.com> wrote:

> Hi Scott,
>
> We had some issues as well. SNAPSHOTS are likely to be an issue because
> they are re-checked at least once a day. So if your app needs a restart
> this will be re-checked and might slow down boot time. We also had problems
> due to this in combination with failing maven mirrors. It is probably best
> to just not use SNAPSHOT versions in production.
>
> Another thing that can have impact on boot time is the reading of static
> files on booting. We solved this by using '(def resource (delay
> (expensive-task ))) and @resource to post-pone this execution for after
> booting.
>
> We also use this feature
> https://devcenter.heroku.com/articles/labs-preboot/ to minimize possible
> downtime between deploys (not sure if this works for restarts as well)
>
> On top of that, we always have a minimum of two dynos for redundancy if
> one is down.
>
> HTH,
> Jeroen
>
>
>
> On Wed, Jan 23, 2013 at 5:00 PM, Scott Parker <scott.p.par...@gmail.com>wrote:
>
>> Anyone else running a production website with Clojure in Heroku and
>> struggling with boot time problems? After digging through our logs
>> from the past month, I've noticed it's not uncommon to have a dyno
>> crashed for awhile because of boot time problems. It seems especially
>> likely when dynos are cycling once/day - I'm guessing because of
>> additional delays in picking up latest snapshot dependencies.
>>
>> Has anyone else run into this problem and has a bright idea? I have
>> already verified we're using lein compile :all at deploy (by virtue of
>> being on lein2), running in the production profile, and I am working
>> on removing those snapshot dependencies. I've checked the app for
>> obvious bottlenecks like web/DB/IO requests during initialization with
>> no luck. We don't have a ton of code or dependencies right now, so I'm
>> a bit skeptical that we can remain on Heroku as we grow. As a last
>> resort, I suppose we could try a proxy bound to a Unix socket as in
>> https://github.com/dblock/heroku-forward but I'd rather avoid that if
>> possible.
>>
>> If not advice specifically in the context of pleasing Heroku, advice
>> on troubleshooting slow app init times generally would also be
>> welcome. I've done some minimal code benchmarking in Clojure
>> previously, but never specifically towards resolving time-to-init.
>>
>> Thanks,
>> -SP
>>
>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>>
>>
>>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Reply via email to