Skip to content
This repository has been archived by the owner on Mar 7, 2018. It is now read-only.

Dashing Maintenance #620

Open
4 tasks
pushmatrix opened this issue Sep 28, 2015 · 16 comments
Open
4 tasks

Dashing Maintenance #620

pushmatrix opened this issue Sep 28, 2015 · 16 comments

Comments

@pushmatrix
Copy link
Member

Here is an outline of the next tasks that @tylermauthe and I will be looking at for Dashing. We'll be trying to tackle one of these a week, and we'll be posting our findings here.

  • Investigate memory leaks and performance issues
    Memory leaks are causing low-memory devices like the PI to crap out after a while. Let's take a look at where these are happening, and nip them in the bud. There are also issues with the list/number widget where raspberry PIs are not able to render them within ugly flashing on the screen. Let's see if we can optimize that.
  • Switch to Puma
    Thin is causing many issues, and we' like to investigate using Puma. One added benefit is now Dashing can run on jruby!
  • "Inbox-zero" the issues/pr list
    Let's go through the PR list and figure out which ones should be included. Also, let's close up old issues and ones that don't deal with issues in dashing itself. Non-related issues should be sent to Stack Overflow.
  • Convert app.rb to use a classful sinatra approach instead of the current classless one.
    Makes it easier to monkeypatch and extend.
@agassner
Copy link

agassner commented Oct 6, 2015

+1 for the memory leak issue.
Running dashing in a docker container with limited memory has been quite a challenge.
After a quick investigation it seems that rufus scheduler could possibly be the reason - keeping objects referenced and not allowing them to be GC'd

@pushmatrix
Copy link
Member Author

@agassner How much memory?

@agassner
Copy link

agassner commented Oct 6, 2015

@pushmatrix 512MB

@pushmatrix
Copy link
Member Author

Is your box crashing or is the browser tab crashing?

@agassner
Copy link

agassner commented Oct 6, 2015

Box(server) is crashing.
Browsers are in multiple screens(separate machines) showing different dashboards and all working fine.

@robacarp
Copy link

robacarp commented Oct 6, 2015

hey @pushmatrix, you said you're running dashing on puma back at Shopify. I spent some time reading through the puma-related issue chatter and don't see a certain path forward (some people report success, while others don't). What method are you using to launch with puma instead of thin?

@terraboops
Copy link
Contributor

@agassner - We're investigating memory leaks in the client side.

@pushmatrix - Maybe we should update Rufus to the latest? (#237)

@terraboops
Copy link
Contributor

  • Add therubyracer gem in a sensible fashion to enable JS engine portability on Linux

@mal
Copy link

mal commented Oct 12, 2015

+1 for server leaks

I've had to limit the server to 1 gig of memory, it now crashes every hour or so, but previously it was taking out the entire machine it's on! ;(

@MartynKeigher
Copy link

Hey @pushmatrix and @tylermauthe!!

Was wanting to know when the switch to PUMA is on the roadmap! This month, next month, Xmas? I'm loving dashing more and more, and as i add more and more... that need for puma is, well... ya know! ;p

That (swith to puma) along with FontAwesome 4.4 being put into the master branch are my 2 items for a HUGE +1!

FWIW: Here is a step by step I did to switch to the current master (at the time of this post) to Puma... http://pastebin.com/6LvgBFmb (cc: @robacarp)

Keep up the awesome work guys!!

://mk

@robacarp
Copy link

@MartynKeigher thanks, i'll have a look

@pushmatrix
Copy link
Member Author

@robacarp I unfortunately was mistaken. I thought we were running Puma at Shopify, but it turns out we aren't :(. It was a discussion a few ops peeps had and I had thought they switched it, but didn't. Sad...

I will have to look into it further then. I'd like to have Puma in shortly. Can't give an exact date @MartynKeigher, but will look into your pastebin. Thanks for putting that together.

@davidhrbac
Copy link

+1 for the memory leak issue.

@simzen85
Copy link

simzen85 commented Feb 3, 2016

This is what dashing does to my MBP https://monosnap.com/file/xHVCgRgST7Qp7U8NjcaHS5NPVs8lbx

@terraboops
Copy link
Contributor

Doing this helped me out, I was hitting memory caps on a Heroku free dyno: https://github.com/Shopify/dashing/wiki/How-To:-Prevent-a-job-from-overlapping-with-itself

Based on some anecdotal testing of my own, I've become convinced that the memory leak I was experiencing was related to my jobs. If you're doing something like creating an array outside your job and filling it indefinitely during your job, you're going to have problems eventually. However, I couldn't find anything obvious like that -- though it may be that a library I was using does something like that.

@terraboops
Copy link
Contributor

Also: Sorry about the delays on Puma everyone, life happens. I took the work done in #427 and updated to the latest release here: https://github.com/tylermauthe/dashing/tree/puma_server

I will endeavour to clean up the outstanding isues (outlined in #427) by the end of Feb.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants