Kısa yaşam verilerini depolamak için mongo kullanan bir uygulamam var. 45 dakika daha eski tüm veriler gibi komut şey tarafından kaldırılır:MongoDB - dosya boyutu çok büyük ve büyüyen
oldSearches = [list of old searches]
connection = Connection()
db = connection.searchDB
res = db.results.remove{'search_id':{"$in":oldSearches}})
ben mevcut durumu kontrol ettim -
>db.results.stats()
{
"ns" : "searchDB.results",
"count" : 2865,
"size" : 1003859656,
"storageSize" : 29315124464,
"nindexes" : 1,
"ok" : 1
}
Yani, verilerin bu 1gb göre depolama 29TR kaplar. Veri klasör bu (Birçok dosyalar çok eski olduğunu görebilirsiniz - Son mayıs ortasında erişilir) aşağıdaki gibidir: göre
ls -l /var/lib/mongodb/
total 31506556
-rwxr-xr-x 1 mongodb nogroup 6 2011-06-05 18:28 mongod.lock
-rw------- 1 mongodb nogroup 67108864 2011-05-13 17:45 searchDB.0
-rw------- 1 mongodb nogroup 134217728 2011-05-13 14:45 searchDB.1
-rw------- 1 mongodb nogroup 2146435072 2011-05-20 20:45 searchDB.10
-rw------- 1 mongodb nogroup 2146435072 2011-05-28 00:00 searchDB.11
-rw------- 1 mongodb nogroup 2146435072 2011-05-27 13:45 searchDB.12
-rw------- 1 mongodb nogroup 2146435072 2011-05-29 16:45 searchDB.13
-rw------- 1 mongodb nogroup 2146435072 2011-06-07 13:50 searchDB.14
-rw------- 1 mongodb nogroup 2146435072 2011-06-06 01:45 searchDB.15
-rw------- 1 mongodb nogroup 2146435072 2011-06-07 13:50 searchDB.16
-rw------- 1 mongodb nogroup 2146435072 2011-06-07 13:50 searchDB.17
-rw------- 1 mongodb nogroup 2146435072 2011-06-06 09:07 searchDB.18
-rw------- 1 mongodb nogroup 268435456 2011-05-13 14:45 searchDB.2
-rw------- 1 mongodb nogroup 536870912 2011-05-11 00:45 searchDB.3
-rw------- 1 mongodb nogroup 1073741824 2011-05-29 23:37 searchDB.4
-rw------- 1 mongodb nogroup 2146435072 2011-05-13 17:45 searchDB.5
-rw------- 1 mongodb nogroup 2146435072 2011-05-18 17:45 searchDB.6
-rw------- 1 mongodb nogroup 2146435072 2011-05-16 01:45 searchDB.7
-rw------- 1 mongodb nogroup 2146435072 2011-05-17 13:45 searchDB.8
-rw------- 1 mongodb nogroup 2146435072 2011-05-23 16:45 searchDB.9
-rw------- 1 mongodb nogroup 16777216 2011-06-07 13:50 searchDB.ns
-rw------- 1 mongodb nogroup 67108864 2011-04-23 18:51 test.0
-rw------- 1 mongodb nogroup 16777216 2011-04-23 18:51 test.ns
"top" mongod
sanal bellek 29G (ve RSS 780Mb) kullananNeden böyle anormal değerlerim var? Veritabanını eski değerlerden temizlemek için .remove() işlevine ek bir şey çalıştırmam gerekiyor mu?
, sorunun bu tür Capped Koleksiyonlar kullanarak araştırdık Bu her şeyi açıklıyor? Bu, disk alanı sorunlarını ortadan kaldıracak, bir kaldırma komut dosyasına olan ihtiyacı ortadan kaldıracak ve uygulamayı daha hızlı hale getirecektir ... – Rich
Bir sidenote olarak: Bu kısa ömürlü veriler için, herhangi bir verinin süresinin dolmasına neden olan Redis'i kullanacağım. –
Mongo sadece düz depolama alanıdır. BSON, bir alandaki her alanın değerinin yanı sıra tam anahtar adını da kaydettiği için çok yer kaplar. Başkalarının söyledikleri gibi, geçici çözümler var, ancak MongoDB kullanıyorsanız büyük dosya sistemi kullanımını kabul etmeniz gerekecek. –