kma*_*mat 2 linux memory containers go docker
我面临一个问题,当容器内的应用将日志写入已安装目录中的文件时,容器使用的内存会不断增加。
我希望内存使用量不会因此增加。有谁知道为什么它增加?谢谢 !!
这是我所做的:
编写一个仅将“ hello world”写入“ /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")
}
}
Run Code Online (Sandbox Code Playgroud)建立一个Docker映像
docker build -t mylog。
Docker文件
从高朗
运行mkdir -p / home / mylog
COPY main.go / go
WORKDIR / go
CMD [“ go”,“ run”,“ main.go”]
泊坞窗运行-d -v $ PWD:/ home / mylog mylog
码头工人统计
容器CPU%内存/极限MEM%净I / O块I / O PID
100.41%527MiB / 15.5GiB 3.32%648B / 0B 72.3MB / 0B 15
容器CPU%内存/极限MEM%净I / O块I / O PID
100.15%844.8MiB / 15.5GiB 5.32%648B / 0B 72.3MB / 0B 15
时不时拨打此电话。
file.Sync()
Run Code Online (Sandbox Code Playgroud)
https://golang.org/pkg/os/#File.Sync
如果您不调用它,它将写入内存并等待file.Close()以将更改提交到文件。并且在这种情况下,Close in not called因为它在a中defer(这意味着函数返回时会调用它,在这里它永远不会返回,因为它是永无止境的)。
LE:也尝试使用:
file.WriteString("hello world")
Run Code Online (Sandbox Code Playgroud)
代替
fmt.Fprintln(file, "hello world")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1353 次 |
| 最近记录: |