2014-09-02 1 views
0

Есть ли у меня зомби?Mongo продолжает вставлять документы, медленно, долго после завершения скрипта

Мой скрипт завершил ввод большого количества новых данных.

Однако сервер продолжает высокие скорости блокировки и медленно вставляет новые записи. Прошло около часа с момента написания сценария, в котором закончились вставки, и документы все еще запутываются.

Откуда они берутся и как я очищаю очередь? (Я переработан код, чтобы использовать индекс и хочу повторить процесс, чтобы избежать блокировок скорости 100-200%)

+2

Использует ли ваш скрипт непризнанные записи при вставке? Если это так, фактические вставки могут иметь место после завершения вашего скрипта. – JohnnyHK

+0

Используйте db.currentOp(), чтобы проверить, что работает. Небезопасный режим записи может привести к этому условию. –

ответ

1

Это может быть из-за следующие сценарии,

1..Throughput связанного диск IO

можно посмотреть в следующих показателей с помощью «mongostat» и «Service Management MongoDB»:

  • Среднее время промывки (как долго периодическая синхронизация MongoDB на диск принимая)
  • IOStats на вкладке оборудования (смотрите в частности IOWait)

Поскольку диск IO медленнее, чем время обработки CPU, все вставки будут поставлены в очередь, и это может продолжаться в течение длительного периода времени, можно проверить статус сервера, используя db.serverStatus(), и посмотрите в поле «globalLock» (как запись получает глобальную блокировку) для «currrentQueue», связанного с блокировкой, чтобы увидеть количество писателей в очереди.

2..Another Возможной причиной может быть управляемой Sharded Cluster балансир был поставлен в О статусе (который по умолчанию)

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

3..Write Концерн Это может также способствовать проблемы немного, если они установлены на Replica Признанный или режим Признанный, это зависит от вас, на основе вашего типа данных, чтобы решить эти проблемы ,

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