I'm facing an issue that memory used by a container keep increasing when an app inside the container writing log into a file in a mounted directory.
I'd expect memory usage doesn't increase by this. Does anyone have idea why it increases ? Thank you !!
Here is what I did:
-
Write an app which just writes "hello world" into "/home/mylog/test.txt".
func main(){ file, _ := os.OpenFile("/home/mylog/test.txt", os.O_WRONLY|os.O_CREATE, 0666) defer file.Close() for { fmt.Fprintln(file, "hello world") } }
Build a docker image
docker build -t mylog .
Dockerfile
FROM golang RUN mkdir -p /home/mylog COPY main.go /go WORKDIR /go CMD ["go","run","main.go"]
- Run a container with -v option mouting the current dir.
docker run -d -v $PWD:/home/mylog mylog
- Check memory usage
docker stats
- It's using 527MiB.
CONTAINER CPU% MEMUSAGE / LIMIT MEM% NET I/O BLOCK I/O PIDS 100.41% 527MiB / 15.5GiB 3.32% 648B /0B 72.3MB / 0B 15
- After a few seconds, it is 844.8 MiB
CONTAINER CPU% MEMUSAGE / LIMIT MEM% NET I/O BLOCK I/O PIDS 100.15% 844.8MiB / 15.5GiB 5.32% 648B /0B 72.3MB / 0B 15
- It keeps increasing and the host downs in the end.