Why is heroku dyno consuming a bunch of hours? - heroku

So I currently have a Java Spring Boot app deployed on Heroku and is the only dyno I have deployed on the account. I had made a call to it and it started up the server but then immediately logged ~1.2 hours off of my free dyno hours. I only had it open for ~10 minutes and then with the added 30 minutes to go to sleep it should only have logged 40 minutes. Is it possibly because it is making multiple calls to the same dyno that it is spinning up multiple thread and then charging double? What causes this?

Related

Heroku - Can app get recycled while it is being used?

I plan to deploy a mini web app to resize photos to the heroku free tier. I read that the heroku file system is ephemeral - uploaded files get deleted when the dyno restarts. What I want to know is if I upload an image only for a short duration to change its properties and then download it, is there a chance that it will get deleted before I download it? That is, can the app get cycled when it is in use?
Regards,
Debashish
On a free tier a web dyno gets cycled on:
1) Dyno restarting - according to the documentation
Dynos are also restarted (cycled) at least once per day to help maintain the health of applications running on Heroku. Any changes to the local filesystem will be deleted. The cycling happens once every 24 hours (plus up to 216 random minutes, to prevent every dyno for an application from restarting at the same time).
Restart can happen at any time then, when occurring, also in progress web request could be terminated. After the restart is triggered, you have 30 seconds to graceful shutdown before the process gets killed
2) Dyno sleeping - according to the documentation
If an app has a free web dyno, and that dyno receives no web traffic in a 30-minute period, it will sleep
If your web request executes during the same session all the operations to upload/change/download the image, you should be guaranteed the file does not get deleted in the process. However, you can avoid these events using monitoring services such as Pingdom or New Relic that can prevent a web dyno from sleeping

Heroku Free Tier - Can a single app spend all Dyno quota?

If I only have one active app is it possible that it could spend all free Dyno hours quota?
My app is a PHP process which is always active (while (true) { do_something}). I launch this process as a worker.
I thought the free Dyno hours quota were like real hours so you can spent 24h as max per day. But if I view my remaining free hours quota in two consecutive days using 'heroku ps -a app' command then I get that I am spending more than 24h per day.
Another question, how many hours do you have in a Hobby plan?
If you are running 2 dynos (for example, a web dyno and a worker dyno), they will each use 24 hours, for a total of 48 dyno hours used in a day. Of course in reality it would probably be less than 24 hours each, if the dynos slept for part of the day.
I solved my problem disabling the web Dyno.

Is it possible to stop a Heroku Daily Dyno Restart for a Hobby Dyno

Is it possible to stop a Heroku Daily Dyno Restart for a Hobby Dyno?
My Goal is to stop the Dyno from restarting.
In short, No (with an aside that the restart shouldn't be seen as a bad thing).
From the Heroku Dynos and Dyno Manager Docs
Dynos are also restarted (cycled) at least once per day to help maintain the health of applications running on Heroku. Any changes to the local filesystem will be deleted. The cycling happens once every 24 hours (plus up to 216 random minutes, to prevent every dyno for an application from restarting at the same time).
Cycling happens for all dynos, including one-off dynos, so dynos will run for a maximum of 24 hours + 216 minutes.
In addition, dynos are restarted as needed for the overall health of the system and your app. For example, the dyno manager occasionally detects a fault in the underlying hardware and needs to move your dyno to a new physical location.
Additionally, Dynos Restart if you:
create a new release by deploying new code
change your config vars
change your add-ons
run heroku restart
With Hobby Dynos, the real issue is that inactivity causes the Dyno to sleep throughout the day. From my personal experience, waking up a sleeping dyno can cause a page to take ~30s to load.
There are many solutions to 'ping' the dyno on regular intervals to keep it 'awake'.
An example solution for a Node Server is heroku-self-ping

Issue with Heroku's production configuration: a set of two dynos takes 8 seconds to respond

I have an interrogation regarding Heroku's dynos.
As of now my app runs two 512MB dynos and I was pretty certain that this configuration, i.e. more than one dyno, ensured that the container's application was started and ready to serve clients.
However, I frequently notice that the dynos are not always started and it takes something like 8 seconds to load the app. See screen shot below. The host XXXX.herokuapp.com spends nearly 8 seconds in "waiting".
Has anyone else experienced such issues with Heroku? How can they be resolved?

Heroku free quota per-app or total?

Is heroku's free 750 hours separate per app, or is it a total of 750 hours shared across all your apps?
From their site:
"Each app you create has free access to 750 dyno-hours per month and a starter-tier database."
However, from another answer on StackOverflow:
"Heroku provides, for free, 1 dyno. A dyno is an instance of your application running and responding to requests. If each instance of your application can serve each request in 100ms, then you get 600 requests/minute with the free account."
Based off of what it says there and my experience it's per app. That's talking about instances of dynos not apps. "If each instance of your application can serve each request in 100ms, then you get 600 requests/minute with the free account."
Each app you create within Heroku gets 750 dyno-hours per month for free. The number of requests your app can receive depend on the configuration of the app. For example, an app running unicorn can handle more requests than an app running something else, as unicorn can run multiple workers per dyno.
I've personally run an app on Heroku with 3 unicorn workers on one dyno, 24 hours a day, all month, and always been free (because that is ~750 dyno-hours).

Resources