1

私はTomcat7でアプリケーションを実行しており、仮想マシンで実行しています。これは、写真の配布という1つの目的を目的としています。

アプリケーションを初期化するとき、次のようにMongoDBに接続します。

//Create mongo reference
Mongo mongo = new Mongo(new MongoURI(url));

次に、参照をメモリに保持し、次のように写真を検索します。

//Update R/W Strategy
dbManager.setMongoReadWritePreferences(mongo, app);

//Use database dbname
DB db = mongo.getDB(dbname);

try {           
    db.requestStart();
    db.requestEnsureConnection();

    //Open gridFS connection
    GridFS fs = new GridFS(db, GlobalConfig.GRIDFS_COLLECTION_BUCKET_BLOBS);

    GridFSDBFile photos = fs.findOne(filename);
    log.debug("[+]"+photos);

    if (photos == null){
        throw new Exception("[PHOTO_NOT_FOUND]");
    } else {
        return photos.getInputStream();
    }

} finally {
    //Request is finished
    db.requestDone();
}

それは非常にうまく機能しています。(70GBの写真セットで、すべての写真で最大35ミリ秒

最近、写真が返されないという問題が発生し始め、監視グラフに奇妙なピークが表示されました。

スレッド数 1分あたりのリクエスト 平均時間 1分あたりのバイト数

トラフィックはそれほど多くはありませんが、それは奇妙なことを続け、null写真をランダムに送信します。

誰もがそれが何であるかについての手がかりを持っていますか?

4

0 に答える 0