Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

High CPU when using file watchers and volumes #279

Open
JeremyLoy opened this issue Mar 24, 2020 · 4 comments
Open

High CPU when using file watchers and volumes #279

JeremyLoy opened this issue Mar 24, 2020 · 4 comments

Comments

@JeremyLoy
Copy link

JeremyLoy commented Mar 24, 2020

My project (A small, ~8 endpoint express app) uses typescript compiler file watching (tsc --watch) and nodemon for local development.

The combination of these two processes running outside of docker, on MacOS, uses approximately 5% of one CPU core when idle, 25% cpu of one core when compiling/reloading, and finishes in approximately 2 seconds.

We've been experimenting with developing inside of Docker, as an alternative to using Node Version Manager and juggling multiple projects with different node versions.

Here is the example script we have been running:

yarnWatch.sh

#!/bin/sh

tsc --watch
nodemon app.js
docker run \
  --volume $(pwd):/proj \
  --workdir /proj \
  --rm \
  --publish 3030:3030 \
  --detach \
  node:12.16.1-alpine scripts/yarnWatch.sh

When running in this way, the hyperkit process idles at 200% CPU (my guess is 100% of two cores), uses 500%cpu when compiling/relaoding, and finishes in 20 seconds.

My hypothesis is this is some sort of bottleneck regarding volumes, as running the app in a custom built image has no performance problems.

@manast
Copy link

manast commented Nov 23, 2020

Did you find any workaround?

@fatso83
Copy link

fatso83 commented Oct 8, 2021

Seeing very similar results (just for PHP). > 100% cpu is being used on a process that's essentially idle. Seems to be a Mac thing from googling this?

@adamkdean
Copy link

I also see this with Docker for Mac and nodemon — block I/O, CPU, and memory spiral out of control

@baishi
Copy link

baishi commented Aug 10, 2022

We experienced exactly same thing with watchfiles and uvicorn. This is a ampere arm64 host. I think something is notify handling.

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

No branches or pull requests

5 participants