gpt4 book ai didi

linux - docker 显示没有释放 SQLite 数据库的内存

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:46:33 24 4
gpt4 key购买 nike

我正在检查 SQLite 操作消耗的内存量(主要是插入)。

我在 docker 容器上运行我的程序,并使用 docker stats <container id> 检查内存使用情况.我观察到一种奇怪的行为,即内存使用量只会增加,并且在操作完成后不会恢复正常。

下面是一段代码:

conn =  sqlite3.connect(app.config['DATABASE'])
cur = conn.cursor()
cur.execute('insert into users (uid, full_name, email, username, job_title) values (?,?,?,?,?)', [user_cn, user_full_name, user_email, user_uname, user_jobtitle])
conn.commit()
conn.close()

它只是一个片段(我删除了大部分代码),这个过程发生了数千次(每次插入时提交,最后关闭一次)。

正如我所说,我只观察到 stats 上的内存使用量有所增加。 ,我观察到的另一件事是 top没有显示任何内存事件(保持 0.1%)。

在我的研究中,我尝试在 linux 上运行一些虚拟操作:

for i in {1..100000}; do echo "aaaaaaaaaaaaaaaaaaa" >> woot.data; done

我观察到相同的行为,所以我猜这不是 SQLite 的问题,但我仍然包含它,因为它是我的用例,也许它的配置/连接关闭相关的东西。

任何解决这个谜团的建议都将不胜感激!

编辑: docker 的版本是:Docker version 1.5.0, build a8a31ef/1.5.0

最佳答案

这取决于您的实际主机和 docker 版本。

例如:

  • 使用 docker 1.11-rc4,报告内存泄漏 (issue 21837) 和
  • 在 Mac 上,docker 1.11.0rc3 包含一个错误,该错误不会在统计信息中显示内存限制 (issue 21848)

关于linux - docker 显示没有释放 SQLite 数据库的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36528018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com