SQLite操作が消費するメモリの量をチェックしています(ほとんど挿入します)。dockerはSQLiteデータベースのメモリ解放を示していません
ドッカーコンテナでプログラムを実行し、メモリ使用量を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()
その(私は、コードのほとんどをcutted)、この手順は、一度に近い、何千回は、(すべての挿入時にコミット行われます終わり)。
stats
のメモリ使用量が増えただけで、私が観察したもう1つのことは、メモリが何も表示されないことです(0.1%のままです)。私はLinux上でいくつかのダミー操作を実行しようとした私の研究で
:
for i in {1..100000}; do echo "aaaaaaaaaaaaaaaaaaa" >> woot.data; done
私はので、私はそれがSQLiteのの問題ではないと思いますが、私はまだその私のユースケースと、おそらくその設定/以来、それを含めると同じ行動を観察しました接続は関連するものを閉じます。
このミステリーを解決するためのアドバイスは高く評価されます!
EDIT:ドッキングウィンドウのバージョンは次のとおりです。Docker version 1.5.0, build a8a31ef/1.5.0
こんにちは、ありがとう、答えは1.5.0です。メモリリークの場合にはかなり問題のようです。 –
@ Anton.Pあなたはドッカー1.5.0を使用していますか? – VonC
はいバージョンは1.5.0、 'Dockerバージョン1.5.0、ビルドa8a31ef/1.5.0' –