@MongoDBRussian

Страница 90 из 342
yopp
31.05.2017
12:20:32
3.4.4 пробовали? Когда началось? Что в конфигах?

Artem
31.05.2017
12:23:28
это происходит прямо сейчас и уже во второй раз в прошлый раз рестарт привел к смерти всей реплики, поэтому еще раз мы пытаться не будем :) реплика сет, да, не шард 3.4.4 не пробовали, в конфигах более-менее дефолт, на что особо обратить внимание можно?

yopp
31.05.2017
12:23:54
На всех репликах такое или только на одной?

Aydar
31.05.2017
12:24:00
Где такое говорится?
https://docs.mongodb.com/v3.4/faq/storage/#how-frequently-does-wiredtiger-write-to-disk

Google
yopp
31.05.2017
12:24:01
К смерти в каком виде?

У пользователя монги точно есть право на удаление файлов? И всё-таки расскажи как именно оно умерло

https://jira.mongodb.org/browse/WT-2264

Закрыто в 3.4

И даже бекпорт в 3.2.5

/me ставит на проблему с диском или правами

георгий
31.05.2017
12:48:25
/me

наследие чятиков?

yopp
31.05.2017
12:49:46
Ирц же

Artem
31.05.2017
12:51:14
В serverStatus.wiredTiger.log что?
https://pastebin.com/6xREEu0j

/me ставит на проблему с диском или правами
ну т.к. оно долгое время работало нормально, все же не думаю

Google
yopp
31.05.2017
12:53:25
Сейчас сколько файлов в папке с журналом?

ну т.к. оно долгое время работало нормально, все же не думаю
Расскажи что именно произошло когда попробовали перезапустить?

Artem
31.05.2017
12:54:00
1114 файлов

yopp
31.05.2017
12:54:06
Что за дисковое хранилище используется?

1114 файлов
Исходя из того что монга вроде как всего 28к файлов создавала, с виду все нормально.

Artem
31.05.2017
12:55:34
Расскажи что именно произошло когда попробовали перезапустить?
я неправильно кстати сказал, что реплика сдохла просто этот сервак начал shutdown вместе с докаткой из журнала ну и т.к. журнала было очень много, мы так и не дождались, пока эта операция завершится

yopp
31.05.2017
12:56:34
Эм.

Журнал на диск сливается не реже чем раз в минуту.

Монга не накатывает весь журнал при остановке, только последний чекпоинт

А вот при старте она весь журнал проигрывает.

В serverStatus.wiredTiger.transaction что?

Как себя репликация чувствует?

И вообще как реплика выглядит? Сколько серверов? Какой прирост оплога?

Artem
31.05.2017
13:05:52
не, ситуация только на primary репликация вообще в порядке в реплике 3 сервера

yopp
31.05.2017
13:29:05
Если выбрать другую ноду как праймари, проблема на ней воспроизводится?

Denis
31.05.2017
13:40:25
/me

Max
31.05.2017
13:41:44
о, я тогда сюда вопросы свои зафорваржу про диски и нагрузку

Монго-гуру, подскажите, пожалуйста - как можно разнести IO нагрузку на базу между различными дисками? монга 3.4.4 , WiredTiger. база одна. Может можно журнал на отдельное устройство вытащить?

а то есть пачка неиспользуемых дисков. в рейд их не втулить (точнее рейд там уже есть), надо бы на отдельное устройство.

Google
Max
31.05.2017
13:42:06
объединение дисков на уровне OS пока отложено на последний момент. Было больше интересно, можно ли какую-то логическую единицу в монге вытащить отдельно. К примеру - каждая база в своей директории, и эту директорию можно втулить на конкретный диск. но база одна :) думалось, может можно отщепить какие-то логические модули в отдельную директорию и вынести отдельно. Пока внутри директории монги есть 2 директории - journal, размером в неполный гиг, и diagnostic.data, неполных 200 метров. Вот и думаю можно ли их (и есть ли смысл) вытаскивать отдельно

в журнал должен активно write идти, но файлы преалокейчены. если смотреть чексамы - меняется только 1 файл потому и вопрос - стоит ли овчинка выделки

yopp
31.05.2017
13:44:13
`storage.directoryPerDB`

Max
31.05.2017
13:44:26
`storage.directoryPerDB`
База одна

или admin / local есть смысл выносить?

yopp
31.05.2017
13:44:59
Local да, туда пишется оплог

Увеличить можно просто сделав симлмнки на нужные коллекции

Или индексы

Посмотреть какие коллекции/индексы наиболее нагруженные и поделить их между дисками.

Max
31.05.2017
13:46:48
чтото про симлинки я не подумал. да, есть коллекции, в которые льётся 90% запросов

Алексей
31.05.2017
13:46:49
бекапить то потом всё это дело как ?

yopp
31.05.2017
13:47:05
Алексей
31.05.2017
13:47:11
раскидали по дискам потеряли снапшоты

yopp
31.05.2017
13:47:19
Нет.

Max
31.05.2017
13:48:28
тушить все надо будет и делать снапшот единовременно, я так понимаю.

на данный момент так бекап и работает - тушится нода в репликасете и делается ее снапшот. корявенько, но быстро и не критично

Local да, туда пишется оплог
а на живой системе так можно делать? или придется ресинкаться?

Алексей
31.05.2017
13:51:12
Нет.
пояснения будут :) ?

yopp
31.05.2017
13:52:12
пояснения будут :) ?
Доку про снепшоты почитай внимательно, там про это написано.

Google
yopp
31.05.2017
14:00:18
Делаешь stats на всех коллекциях и индексах во всех базах, записываешься имена файлов. Выключаешь, делаешь резервную копию dbPath, меняешь опцию и раскладываешь файлы по директориям. Запускаешь монгу и смотришь что произошло.

Можно просто снепшот на другой тачке развернуть и там попробовать

Можно вообще на тестовом столе собрать и проверить поведение

Алексей
31.05.2017
14:02:06
именно.

именно fsync.

yopp
31.05.2017
14:02:50
Ну. В чём проблема?

Max
31.05.2017
14:02:53
Спасибо!

буду пробовать

yopp
31.05.2017
14:03:05
Он и так нужен если журналы вынесены.

Учитывая что бекапы надо делать с hidden нод, то можно даже монгу потушить. :)

Что даст 100% гарантию консистености хранилища.

Max
31.05.2017
14:33:31
Хидден ноды пока нет, потому пока просто с реплики рабочей делать вынужден

Changed in version 3.0: To change the —directoryperdb option for existing deployments, you must restart the mongod instances with the new —directoryperdb value and a new data directory (--dbpath <new path>), and then repopulate the data. Какая печаль.

Поделитесь еще своими бест практисами по выбору размера оплога, плиз? кто какой срок ставит? и как его высчитывает?

yopp
31.05.2017
15:01:07
Его должно хватать на время initial sync как минимум

(как следствие должен быть запас на «всё пошло не так»)

Max
31.05.2017
15:04:02
да, именно с этой проблемой я и столкнулся. там дефолтные 50 гиг стоят, буду раздвигать дня на 4 надо будет минимум ставить - с одной стороны с другой - бекапы суточные, и initial sync с нуля делать смысла нет. но если переезжать на directoryPerDB - как раз нужен этот initial sync. В сомнениях, в общем.

yopp
31.05.2017
15:04:38
раздвигать надо аккуратно

плюс надо понимать что его мгновенно больше не станет :)

Google
Max
31.05.2017
15:05:15
на что обратить особенное внимание? в доке процесс описан, буду делать на тестовом стенде, но на стенде данных в разы меньше

плюс надо понимать что его мгновенно больше не станет :)
я так понимаю, что если прикинуть размер до 4-5 дней, то и ждать надо будет эти 4-5 дней, пока этот лог надуется? :)

yopp
31.05.2017
15:05:57
ну да :)

oplog это тупо capped коллекция

oplog size это capped maxsize, который расчитывается при инициализации local базы

Max
31.05.2017
15:06:54
да, понимаю - ужесталкивались с тем, что грохнули данные в базе потом оплог сдампили и выковыривали оттуда нужное :)

yopp
31.05.2017
15:07:06
заведите delayed member на этот случай

Max
31.05.2017
15:07:38
Хорошая идея, всуну в беклог,спасибо!

Max
31.05.2017
15:09:21
потому что иначе может быть очень больно
столько вазелина у меня нет

yopp
31.05.2017
15:10:16
да ладно, это просто время

если оплога остаётся на полчаса, то любой даунтайм больше получаса и тебе надо переливать всё сначала

по этому лучше сначала поднять оплог по очереди на каждом secondary, дождаться пока его не накопиться нужное количество и потом уже когда на всех seconday нужное количество оплога, менять на primary

я не помню, есть ли там процедура без потери оплога

Max
31.05.2017
15:12:35
да тут получилось все как обычно. - сначала я с этим не шарил - потом проверил - вроде норм, 50 гигов хватало на 2 дня и initial sync проходил нормально - потом все "внезапно выросло и мы тут чуть-чуть убили реплику, потом просто поживем на мастере" - sync зафейлился и вообще стало DSPRSv01:SECONDARY> rs.printReplicationInfo() configured oplog size: 51200MB log length start to end: 26882secs (7.47hrs)

yopp
31.05.2017
15:12:37
но наверное можно просто дампнуть коллекцию и заресторить

кек

7 гигов в час

Страница 90 из 342