2013-05-27 5 views
1

У меня есть система подачи, использующая вентилятор для записи. Я сохраняю список идентификаторов каналов в отсортированном наборе redis и сохраняю содержимое фида в mongodb, поэтому каждый раз, когда я читаю 30 фидов, мне нужно сделать 30 запросов к mongodb, есть ли способ улучшить его?Как улучшить производительность системы подачи с помощью mongodb

+0

, что это "фан-аут"? – Sammaye

+0

Почему вам нужно читать 30 каналов, если вы делаете разветвление? –

ответ

1

Его значение зависит от вашей настройки базы данных. MongoDb имеет обширную документацию о том, как увеличить одновременное чтение и запись MongoDb conncurrency

  1. Если вам нужно так много операций записи в базе данных с меньшим временем ожидания начинает использовать шардинг Deployment Sharding.

  2. Если вам необходимо увеличить количество операций чтения в базе данных разворачивать каждые черепки как набор реплики и разгромить запрос чтения во вторичном узле Read Prefences

  3. Кроме того, каждый запрос должен охватывается индексом Better indexing, вы можете проверить свой запрос время, просто добавив объяснить после находки он покажет вам время и все факты

    db.collection.find({a:"abcd"}).explain() 
    
  4. Убедитесь, что у вас достаточно оперативной памяти, так что набор данных соответствует с барана по крайней мере ваш индекс должен поместиться внутри барана COz каждый раз выборка данных ed с диска в 10 раз медленнее, чем RAM.

  5. Проверьте статус своего ранения с помощью MongoStat, он будет измерять эффективность вашей базы данных, ошибки страницы, блокировку, запрос подробностей.

  6. Также измерьте производительность вашего оборудования с помощью программы, такой как iostat, и убедитесь, что io wait низкий и менее 1%.

  7. Немногие хорошие ссылки на развертывание mongodb и настройку производительности.

    1. Production deployment of mongodb

    2. Performance tuning of mongodb By 10gen

    3. Using redis before mongodb to cache query and result object

    4. Example of redis and mongo

Смежные вопросы