このブログを検索

2013/02/20

mongodbはHDDの容量が大きい

わけが有り32bitOSでKPI取得ツールを作成して運用中。
が、1ヶ月も立ってないのにstorage sizeが200M超え(Rockmongoから確認)!!

MySQLからCSVにしたデータは何M(何十M?)のはずだが
MongoDBは結構食う。

急ぎで作った(かつ、知識もなかった)から
英字で10文字以上のフィールド名をそのまま利用したり
CSVからのImportなので年月日と時分秒をそのまま文字として保持してる部分はある。
が、それでも怪しいので一段落したら調べる。

2013/03/05追記
CSVファイル容量の約2.5倍のDataSizeを食う事が分かった。
上のようにField名の工夫をしてない、日付をStringとして格納、
_idをObjectIdではなく個別にしてするなどの理由はあるがそれでもよりサイズが大きい事がわかった。


【容量記録】
| 日付 |SIZE | StorageSize | DataSize | Index Size |Objects | CSV size |DataSize増減|
| 2013/02/20 |-| 200m程度  | - | - | - |- |
| 2013/02/21 |1000m程度|294.52m | 209.55m | 18.4m | -|23m | -|
| 2013/02/22 |1023.75m| 387.91m | 258.68m | 22.8m | 862,368 |19m|49.13m|
| 2013/02/25 | 1.5G | 513.77m | 375.49m | 33.8m | 1,248,860 |46m |116.81m|
| 2013/02/26 | 1.5G | 514.54m | 404.36m | 33.15m | 1,344,394 | 12m |28.87m|
| 2013/02/26※1 | 1.5G | 170.60m | 127.56m | 11.45m | 453,500 | - |-276.8m|
| 2013/02/26※2 | 1.5G | 288.78m | 227.88m | 20.12m | 733,270 | 41.4m |100.32m|
| 2013/02/27 | 1023.75m | 320.09m | 242.35m | 26.96m | 789,443 | 13.7m |14.47m|
| 2013/02/28※4 | 1023.75m | 365.41m | 261.58m | 29.73m | 864,312 | 12.2m |19.23m|
| 2013/03/01※3  | 1.5G | 355.66m | 260.32m | 51.85m | 840,641| 4m |-1.26m|  

※1:02/26に不要と判断したcollectionを3つDropして、Importしないようにした。
| Collection | StorageSize | Index Size | Objects | lastExtentSize|
| log_rxxxx |166.64M | 13.8M | 571,957 | 48.45M |
| log_s_xxx |166.64M | 7.29M | 300,781 | 48.45M |
| t_c_xxxxx |10.6M | 0.58M | 18,246 | 8M |

※2:41.4mのCSVファイルを新規にimportして「_id」を指定する時としない時の容量を比較したが、
ObjectIDにしたほうが少し小さかった。
| Collection | StorageSize | Index Size | Objects | lastExtentSize|
| t_u_xxxxx  | 118.18m | 8.67m | 279,767 | 35.88m |:_idをObjectIDにした
| t_u_xxxxx  | 118.18m | 9.72m | 279,767 | 35.88m | : _idをIntにした

 ※3 約30万Objects程のcollectionに対してindexに_id以外に2パータンを追加した。
  totalIndexSizeが37.55mだった。複数キーのindexはサイズも大きい!!

 ※4 2m程はupdateされるデータ、不要ログの削除処理を追加

0 件のコメント:

コメントを投稿