 D
    D 
    
    
        
        
        
        /me
    
 
     Max
    Max 
    
    
        
        
        
        о, я тогда сюда вопросы свои зафорваржу про диски и нагрузку
    
 
     Max
    Max 
    
    
        
        
        
        Монго-гуру, подскажите, пожалуйста - как можно разнести IO нагрузку на базу между различными дисками?
        монга 3.4.4 , WiredTiger. база одна.
        
        Может можно журнал на отдельное устройство вытащить?
    
 
     Max
    Max 
    
    
        
        
        
        а то есть пачка неиспользуемых дисков. в рейд их не втулить (точнее рейд там уже есть), надо бы на отдельное устройство.
    
 
     Max
    Max 
    
    
        
        
        
        объединение дисков на уровне OS пока отложено на последний момент. Было больше интересно, можно ли какую-то логическую единицу в монге вытащить отдельно.
        К примеру -  каждая база в своей директории, и эту директорию можно втулить на конкретный диск.
        но база одна :)
        думалось, может можно отщепить какие-то логические модули в отдельную директорию и вынести отдельно.
        
        Пока внутри директории монги есть 2 директории -  journal, размером в неполный гиг, и diagnostic.data, неполных 200 метров.
        Вот и думаю
        можно ли их (и есть ли смысл) вытаскивать отдельно
    
 
     Max
    Max 
    
    
        
        
        
        в журнал должен активно write идти, но файлы преалокейчены. если смотреть чексамы - меняется только 1 файл
        потому и вопрос - стоит ли овчинка выделки
    
 
     yopp
    yopp 
    
    
        
        
        
        `storage.directoryPerDB`
    
 
     Max
    Max 
    
    
 
     Max
    Max 
    
    
        
        
        
        или admin / local есть смысл выносить?
    
 
     yopp
    yopp 
    
    
        
        
        
        Local да, туда пишется оплог
    
 
     yopp
    yopp 
    
    
        
        
        
        Увеличить можно просто сделав симлмнки на нужные коллекции
    
 
     yopp
    yopp 
    
    
        
        
        
        Или индексы
    
 
     yopp
    yopp 
    
    
        
        
        
        Посмотреть какие коллекции/индексы наиболее нагруженные и поделить их между дисками.
    
 
     Max
    Max 
    
    
        
        
        
        чтото про симлинки я не подумал.
        да, есть коллекции, в которые льётся 90% запросов
    
 
     Aleksey
    Aleksey 
    
    
        
        
        
        бекапить то потом всё это дело как ?
    
 
     yopp
    yopp 
    
    
 
     Aleksey
    Aleksey 
    
    
        
        
        
        раскидали по дискам потеряли снапшоты
    
 
     yopp
    yopp 
    
    
        
        
        
        Нет.
    
 
     Max
    Max 
    
    
        
        
        
        тушить все надо будет и делать снапшот единовременно, я так понимаю.
    
 
     Max
    Max 
    
    
        
        
        
        на данный момент так бекап и работает - тушится нода в репликасете и делается ее снапшот.
        корявенько, но быстро и не критично
    
 
     Aleksey
    Aleksey 
    
    
        
                    
                        
                            
                            Нет.
                        
                    
                
        
        
        пояснения будут :) ?
    
 
 
     yopp
    yopp 
    
    
 
     yopp
    yopp 
    
    
        
        
        
        Делаешь stats на всех коллекциях и индексах во всех базах, записываешься имена файлов. Выключаешь, делаешь резервную копию dbPath, меняешь опцию и раскладываешь файлы по директориям. Запускаешь монгу и смотришь что произошло.
    
 
     yopp
    yopp 
    
    
        
        
        
        Можно просто снепшот на другой тачке развернуть и там попробовать
    
 
     yopp
    yopp 
    
    
        
        
        
        Можно вообще на тестовом столе собрать и проверить поведение
    
 
     yopp
    yopp 
    
    
 
     Aleksey
    Aleksey 
    
    
        
        
        
        именно.
    
 
     Aleksey
    Aleksey 
    
    
        
        
        
        именно fsync.
    
 
     yopp
    yopp 
    
    
        
        
        
        Ну. В чём проблема?
    
 
     Max
    Max 
    
    
        
        
        
        Спасибо!
    
 
     Max
    Max 
    
    
        
        
        
        буду пробовать
    
 
     yopp
    yopp 
    
    
        
        
        
        Он и так нужен если журналы вынесены.
    
 
     yopp
    yopp 
    
    
        
        
        
        Учитывая что бекапы надо делать с hidden нод, то можно даже монгу потушить. :)
    
 
     yopp
    yopp 
    
    
        
        
        
        Что даст 100% гарантию консистености хранилища.
    
 
     Max
    Max 
    
    
        
        
        
        Хидден ноды пока нет, потому пока просто с реплики рабочей делать вынужден
    
 
     Max
    Max 
    
    
        
        
        
        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.
        
        Какая печаль.
    
 
     Max
    Max 
    
    
        
        
        
        Поделитесь еще своими бест практисами по выбору размера оплога, плиз?
        кто какой срок ставит? и как его высчитывает?
    
 
     yopp
    yopp 
    
    
        
        
        
        Его должно хватать на время initial sync как минимум
    
 
     yopp
    yopp 
    
    
        
        
        
        (как следствие должен быть запас на «всё пошло не так»)
    
 
     Max
    Max 
    
    
        
        
        
        да, именно с этой проблемой я и столкнулся.
        там дефолтные 50 гиг стоят, буду раздвигать
        
        дня на 4 надо будет минимум ставить - с одной стороны
        с другой - бекапы суточные, и initial sync с нуля делать смысла нет.
        
        но если переезжать на directoryPerDB - как раз нужен этот initial sync.
        В сомнениях, в общем.
    
 
     yopp
    yopp 
    
    
        
        
        
        раздвигать надо аккуратно
    
 
     yopp
    yopp 
    
    
        
        
        
        плюс надо понимать что его мгновенно больше не станет :)
    
 
     Max
    Max 
    
    
        
        
        
        на что обратить особенное внимание?
        
        в доке процесс описан, буду делать на тестовом стенде, но на стенде данных в разы меньше
    
 
     yopp
    yopp 
    
    
        
        
        
        ну да :)
    
 
     yopp
    yopp 
    
    
        
        
        
        oplog это тупо capped коллекция
    
 
     yopp
    yopp 
    
    
        
        
        
        oplog size это capped maxsize, который расчитывается при инициализации local базы
    
 
     Max
    Max 
    
    
        
        
        
        да, понимаю - ужесталкивались с тем, что грохнули данные в базе
        потом оплог сдампили и выковыривали оттуда нужное :)
    
 
     yopp
    yopp 
    
    
        
        
        
        заведите delayed member на этот случай
    
 
     Max
    Max 
    
    
        
        
        
        Хорошая идея, всуну в беклог,спасибо!
    
 
     yopp
    yopp 
    
    
 
     yopp
    yopp 
    
    
        
        
        
        потому что иначе может быть очень больно
    
 
     Max
    Max 
    
    
 
     yopp
    yopp 
    
    
        
        
        
        да ладно, это просто время
    
 
     yopp
    yopp 
    
    
        
        
        
        если оплога остаётся на полчаса, то любой даунтайм больше получаса и тебе надо переливать всё сначала
    
 
     yopp
    yopp 
    
    
        
        
        
        по этому лучше сначала поднять оплог по очереди на каждом secondary, дождаться пока его не накопиться нужное количество и потом уже когда на всех seconday нужное количество оплога, менять на primary
    
 
     yopp
    yopp 
    
    
        
        
        
        я не помню, есть ли там процедура без потери оплога
    
 
     Max
    Max 
    
    
        
        
        
        да тут получилось все как обычно.
         - сначала я с этим не шарил
         - потом проверил - вроде норм, 50 гигов хватало на 2 дня и initial sync проходил нормально
         - потом все "внезапно выросло и мы тут чуть-чуть убили реплику, потом просто поживем на мастере"
         - sync зафейлился и вообще стало
        
        DSPRSv01:SECONDARY> rs.printReplicationInfo()
        configured oplog size:   51200MB
        log length start to end: 26882secs (7.47hrs)
    
 
     yopp
    yopp 
    
    
        
        
        
        но наверное можно просто дампнуть коллекцию и заресторить
    
 
     yopp
    yopp 
    
    
        
        
        
        кек
    
 
     yopp
    yopp 
    
    
        
        
        
        7 гигов в час
    
 
     Max
    Max 
    
    
        
        
        
        вот и сижу изучаю, какой оплог поставить.
        пока в голову приходит время рестора + планы на рост, чтобы этим не заниматься
    
 
     yopp
    yopp 
    
    
        
        
        
        а что у вас там такое в монге хранится?
    
 
     Max
    Max 
    
    
        
        
        
        клики
    
 
     Max
    Max 
    
    
        
        
        
        ну и rps под 50k
    
 
     yopp
    yopp 
    
    
        
        
        
        и всё в одной реплике?
    
 
     Max
    Max 
    
    
        
        
        
        с пиками под 100 :/
    
 
     yopp
    yopp 
    
    
        
        
        
        50к рпс тянет монга на моём стареньком mba 2013 года без каких либо кручений ручек :)
    
 
     yopp
    yopp 
    
    
        
        
        
        вы можете почесать репу об нас.
    
 
     yopp
    yopp 
    
    
        
        
        
        за деньги естественно
    
 
     yopp
    yopp 
    
    
        
        
        
        В настоящий момент, мы — я и мой COO. Но мы от модели продавать меня, приходим к модели продавать услугу «сделать так, чтоб монга не болела»
    
 
     yopp
    yopp 
    
    
        
        
        
        Всё никак, гхм, лендинг не соберём.
    
 
     Max
    Max 
    
    
        
        
        
        30 в час?
    
 
     yopp
    yopp 
    
    
        
        
        
        Вообще 120е :)
    
 
     Max
    Max 
    
    
        
        
        
        или я попутал чатики?