Mongodb увеличил проблему с db.currentOp () - PullRequest
1 голос
/ 17 февраля 2012

Мой сайт использует mongodb для приложения чата.Запросы Mongodb истекают, поэтому я проверил db.currentOp ().Ниже приведены данные currentOp () и Mongodb,

637 активных операций, 750 неактивных операций

Другие подробности о mongodb:

  1. БД Mongo работает с sharding
  2. У меня есть две базы данных

  3. a) Первая база данных, только две таблицы b) Вторая база данных, 5 таблиц

Мои вопросы: почему счетчик current.Op () внезапно увеличился, и о каких причинах мы должны позаботиться, если счетчик currentOp () увеличился.Пожалуйста, помогите мне в этом и извинитесь за мой плохой английский.

Ниже приведен пример вывода моей currentOp ()

MongoDB shell version: 1.8.2
    > db.currentOp()
    {
        "inprog" : [
        {
            "opid" : "msdata1:234234234",
            "active" : true,
            "lockType" : "read",
            "waitingForLock" : false,
            "secs_running" : 43534,
            "op" : "getmore",
            "ns" : "local.oplog.rs",
            "query" : {

            },
            "client_s" : "70.52.078.123:12345",
            "desc" : "conn"
        },
        {
            "opid" : "msdata1:2342323423",
            "active" : true,
            "lockType" : "read",
            "waitingForLock" : false,
            "secs_running" : 231231,
            "op" : "query",
            "ns" : "ichat.chatmemberlist",
            "query" : {
                "count" : "chatmemberlist",
                "query" : {
                    "Mid" : "23423",
                    "bmid" : "23423"
                }
            },
            "client_s" : "70.52.078.123:12345",
            "desc" : "conn"
        },
        {
            "opid" : "msdata1:2342323423",
            "active" : false,
            "lockType" : "write",
            "waitingForLock" : true,
            "op" : "update",
            "ns" : "?ichat.useravail",
            "query" : {
                "Mid" : "23423"
            },
            "client_s" : "70.512.078234.423:12345",
            "desc" : "conn"
        },

        ...
        ...
        ...

1 Ответ

0 голосов
/ 17 февраля 2012

Из ограниченного объема информации я вижу, что ваши запросы выполняются очень долго: "secs_running" : 231231, означает 231 секунду.Вероятно, у вас недостаточно ресурсов для того типа запросов, которые вы выполняете.Это может быть связано с тем, что у вас недостаточно памяти или слишком много запросов, которые получают блокировку.Если вы еще не используете MongoDB 2.0.x, возможно, вы захотите обновить его до этого, поскольку он значительно улучшил блокировку: http://blog.pythonisito.com/2011/12/mongodbs-write-lock.html

Я бы посоветовал проверить файл mongodb.log, чтобы узнать, какойзапросы выполняются медленно, затем используйте объяснение, чтобы выяснить, есть ли у вас индексы для столбцов, а затем либо добавьте индексы, либо посмотрите, как можно изменить дизайн схемы, если это может выглядеть как лучшее решение.

...