[解決済み] GridFSは実運用に耐えうる速度と信頼性を持っているか?
質問
私は新しいウェブサイトを開発し、すべてのユーザのアップロードのためのストレージとしてGridFSを使用したいと思っています。
nginxで提供されるGridFSのベンチマークによると、nginxで提供される通常のファイルシステムほど速くはないようです。
GridFSをすでに本番環境で使っている人、あるいは新しいプロジェクトで使おうとしている人はいますか?
解決方法は?
私は仕事で gridfs を使用しています。このサーバーは、価格比較サイトの一部で、立派なトラフィック統計 (約 25k/day) があります。サーバーの RAM は 2 ギガとそれほど多くなく、CPU もそれほど高速ではありませんが (Core 2 duo 1.8Ghz) 、サーバーには 10TB (sata) の RAID 0 構成の十分なストレージ容量があります。このサーバーが行う作業は非常に単純です。
価格比較サイトの各製品には画像があり (製品データベースでは約 1,000 万の製品があります)、サーバーの仕事は、画像をダウンロードしてサイズを変更し、gridfs に保存して、グリッドに存在しない場合は訪問者のブラウザに配信し......、グリッドに既に保存されている場合は訪問者のブラウザに配信することです。つまり、これは「伝統的な cdn スキーマ」と呼ぶことができます。
このサーバーが稼働して以来、私たちは400万枚の画像を保存し、処理してきました。リサイズと保存はシンプルな php スクリプトで行っていますが、python スクリプトや java のようなもののほうが確実に速いです。
現在のデータサイズ:11.23g
現在のストレージサイズ:12.5g
インデックス : 5
インデックスサイズ:849.65m
信頼性について : これは非常に信頼できます。サーバーに負荷がかからず、インデックスサイズも問題なく、クエリも高速です。
速度について : 確かに、ローカルファイルストレージほど速くありませんが、10%ほど遅いかもしれません。しかし、画像処理が必要なときでもリアルタイムで使用できるほど速く、私たちの場合、非常にphpに依存しています。メンテナンスと開発の時間も短縮されました:単一または複数の画像を削除するのがとても簡単になりました。もう一つ興味深いのは、ローカルファイルストレージ(何千ものフォルダに何百万ものファイル)を持つ古いサーバーを再起動すると、システムがファイルの整合性チェックを行うため、何時間もハングアップすることがありました(これは本当に何時間もかかりました...)。gridfs ではこの問題はなくなり、画像は大きな mongodb チャンク (2gb ファイル) に保存されるようになりました。
それで...私の考えでは... はい、gridfs は実稼働に使用するのに十分な速度と信頼性を持っています。
関連
-
[解決済み] 複合リテラルのキー無しフィールドの使用
-
[解決済み] コマンド1つでmongo DBを停止する方法
-
[解決済み] ネストされた配列の中で、マッチしたサブドキュメントの要素のみを返す
-
undefinedエラー: getaddrinfo ENOTFOUND localhost または MongoDB connected disconnected
-
[解決済み] MongoDBの命名規則とは何ですか?
-
[解決済み] SocketException: アドレスはすでに使用中です MONGODB
-
[解決済み】mongoコンソールでObjectIdを使用してオブジェクトを検索する方法は?
-
[解決済み】MongoDB: 1つのフィールドですべてのドキュメントを更新する
-
[解決済み】MongoDBをWindowsサービスとして実行するにはどうすればいいですか?
-
[解決済み] MongoDb への現在の接続数をチェックする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 複合リテラルのキー無しフィールドの使用
-
[解決済み] MongoDB - 管理者ユーザが認証されていない
-
[解決済み] Mongodb ホットフィックス KB2731284
-
[解決済み] MongoDB Compass フィルタ (クエリ)
-
[解決済み] Mongo Restart Error -- /var/run/mongodb/mongod.pid が存在する
-
[解決済み] ネストされた配列の中で、マッチしたサブドキュメントの要素のみを返す
-
[解決済み] mongodb aggregation sort
-
[解決済み] MongoDBでフィールドが存在することを確認する
-
[解決済み】MongoDBのすべてのドキュメントのフィールド名を変更するにはどうすればよいですか?
-
[解決済み] Mongoose Unique インデックスが機能しない!