Ответы пользователя по тегу MongoDB
  • Как оптимизировать составные индексы для сложной сортировки с разным порядком?

    onyxmaster
    @onyxmaster
    Программист, ненастоящий сисадмин
    Сколько продуктов в базе? Меньше 100000? Загружать в память и сортировать не в БД?
    Ответ написан
  • Как правильно хранить статистику?

    onyxmaster
    @onyxmaster
    Программист, ненастоящий сисадмин
    Тут основной вопрос в том, хотите ли вы хранить именно статистику или всё-таки события?
    Ответ написан
    Комментировать
  • Блокировки mongodb?

    onyxmaster
    @onyxmaster
    Программист, ненастоящий сисадмин
    Если использовать storage engine WiredTiger (включена по умолчанию в 3.2, но при апгрейде с предыдущих версий может остаться MMAPv1), то блокировки на уровне документов. Если это не так, думаю стоит собрать статистику (хотя бы на уровне описания нагрузки, ожидаемого и реального уровня производительности) и написать в https://jira.mongodb.org/.
    Ответ написан
    Комментировать
  • Логгер mongodb?

    onyxmaster
    @onyxmaster
    Программист, ненастоящий сисадмин
    Настроить slowMs и использовать https://github.com/rueckstiess/mtools.
    Ещё можно слать логи в graylog/ELK/etc. через какие-нибудь фильтры, но это уже следующий уровень.

    Ещё есть Dex (https://github.com/mongolab/dex), но я им не пользовался, так что именно посоветовать не могу.
    Ответ написан
    Комментировать
  • Почему у MongoDB сильно варьируется время ответа?

    onyxmaster
    @onyxmaster
    Программист, ненастоящий сисадмин
    Если нет мониторинга (кастомного или через MMS), я бы начал с mongostat.
    xm:~$ mongostat -h d3.s1.fs.drive.bru:27021
    connected to: d3.s1.fs.drive.bru:27021
    insert  query update delete getmore command flushes mapped  vsize    res faults  locked db idx miss %     qr|qw   ar|aw  netIn netOut  conn       set repl       time
        *0     15     *0     *0       0     4|0       0  2590g  5183g  2.32g     14     a:0.1%          0       0|0     2|0     2k   426k   552 driveFS-1  PRI   13:20:00
        *0     17     *0     *0       0     4|0       0  2590g  5183g  2.33g     27     a:0.1%          0       0|0     0|0     4k   772k   552 driveFS-1  PRI   13:20:01
         1     10     *0     *0       2     6|0       0  2590g  5183g  2.33g     15     a:0.1%          0       0|0     0|0    18k   355k   552 driveFS-1  PRI   13:20:02
        *0     20      2     *0       0     4|0       0  2590g  5183g  2.33g     17     a:0.0%          0       0|0     0|0     3k   374k   552 driveFS-1  PRI   13:20:03
         1     14      2     *0       2     4|0       0  2590g  5183g  2.33g     21     a:3.3%          0       0|0     0|0   113k   690k   552 driveFS-1  PRI   13:20:04
        *0     11     *0     *0       0     3|0       0  2590g  5183g  2.32g     16     a:0.1%          0       0|0     0|0     2k   290k   552 driveFS-1  PRI   13:20:05

    А потом бы посмотрел в логи MongoDB (если включён slowms) на предмет длинных запросов вроде:
    2015-01-24T13:18:26.824+0300 [conn121317] query a.fs.chunks query: { query: { files_id: 2318948981658353664, n: 0 }, $readPreference: { mode: "nearest", tags: [ { group: "d2" }, {} ] } } planSummary: IXSCAN { files_id: 1, n: 1 } ntoreturn:2 ntoskip:0 nscanned:1 nscannedObjects:1 keyUpdates:0 numYields:1 locks(micros) r:126010 nreturned:1 reslen:52407 599ms

    Ну и дальше попробовал бы скоррелировать какие нибудь page fault и прочее по времени с медленным запросом. Можно подключить dstat/iostat, если есть подозрение на диск.
    Ответ написан
    Комментировать