
yopp
23.04.2017
11:40:01

Mikhail
23.04.2017
14:04:02
как можно запустить монгу с параметрами с помощью pm2?
pm2 start mongod --port 27018 --dbpath data/db --name mongodb
так не получается

Google

Mikhail
23.04.2017
14:04:03
pm2 start mongod
так получается, но нужно с параметрами

yopp
23.04.2017
14:09:47
pm2 <cmd> <name> -- <args>
pm2 start mongod -- --port 27018 --dbpath data/db --name mongodb

Mikhail
23.04.2017
14:11:02
Да, уже разобрался, спасибо, однако это несколкьо непредсказуемо, что перед параметром для скрипта нужно писать дополнительно --. В гугле не нашел.

yopp
23.04.2017
14:11:11
это стандарт

Mikhail
23.04.2017
14:11:16
Окей :)

yopp
23.04.2017
14:11:18
вполне себе предсказуемый

Denis
23.04.2017
20:05:12
defaults? в монге?
default имел ввиду.
Ну т.е когда пишешь
field: {type: Date, default: Date.now)
Как я понимаю туда можно передавать любую функцию

yopp
23.04.2017
20:05:25
это не фича монги
это фича драйвера. все вопросы к драйверу
в монге нет схем, напоминаю
я перестал понимать что они нахуевертили с авторизацией.

Google

Denis
23.04.2017
20:06:56
ну вот судя из документации mongoose можно только синхроно, но она какая-то очень маленькая, забыл указать что mongoose

yopp
23.04.2017
20:07:32
я тут поиграю в jonanc и скажу: ¯\_(ツ)_/¯, обращайтесь к авторам ;)
скорее всего туда надо замыкание какое передать. если ты хочешь чтоб у тебя в нескольких замыканиях была идентичная дата, то это скорее к js вопрос, а не к драйверу
но вообще я бы забил совершенно. разница там будет в пределах мс
я знаю очень мало кейсов где это может играть хоть какую-то роль

Denis
23.04.2017
20:11:21
ну вот тоже думаю всё же вторым путём это сделать, так чище будет, а первый вариант как раз подразумевал замыкание

yopp
23.04.2017
20:11:33
не знаю как там в ноде это принято, но в рубях я бы просто сделал один метод типа def current_<name>_time; @current_<name>_time ||= Date.now.utc;end;
и из замыкания бы его дёргал

Denis
23.04.2017
20:12:08
в жс любая ф-ция это замыкание

yopp
23.04.2017
20:12:19
ты не понял идеи
думаю что на протипной поеботе это вообще решается как-то элементарно типа object['foobar'] ||= Date.now
но идея в том, чтоб сделать у объекта метод/переменную, которая устанавливается один раз
lazily

Denis
23.04.2017
20:18:54
хм, писал телегу, пока писал въехал
да
с ejdb кстати кто-нибудь работал? nw.js просто предлагает его как вариант для локал стораджа
но надо будет ебаться со сборкой под платформы
интересно просто стоит ли оно того или можно взять какой-нибудь PouchDB который будет как бы на 'фронте'
вообще если кто знает какие удобные NoSQL обертки для фронта, буду рад услышать

yopp
23.04.2017
21:28:57
не очень понятно какую проблему ты пытаешься решить

Google

Denis
23.04.2017
23:07:13
Просто проект состоит из вебморды и nw.js обертки с оффлайн фичами. Веб это mean stack, а проблема стоит в выборе хранилища для nw.js которое ему нужно для оффлайн работы. Удобно было бы что-то на подобии монги

Oleg ?
24.04.2017
09:49:30
ребят всем привет
подскажите я правильно понимаю, что жто не оч круто
db.currentOp()
"desc" : "rsSync",
"threadId" : "140500350007040",
"active" : true,
"opid" : 7,
"secs_running" : -1404615,
"microsecs_running" : NumberLong("11480286677028"),
"op" : "none",
"ns" : "local.oplog.rs",
"secs_running" : -1404615
это жопэ получается?
это реплика сет и это примари

yopp
24.04.2017
09:54:09
на самом деле посмотри в rs.status()
если нет лага, то всё норм
монга какой версии?

Oleg ?
24.04.2017
09:55:51
просто у меня мониторинг постоянно жалуется что на серваке цпу ядрышки жрутся. там только эта монга примари. вот и птыаюсь понять мониторинг пздит или монга реал грузит. монга 3.2.4
вроде статус впорядке
примари секондари арбитр

yopp
24.04.2017
10:52:44

Oleg ?
24.04.2017
10:53:46
ну монго жрет канеш. но у меня 4 ядра, Load_avg 1m < 1.5
считаю норм для 4 ядер

yopp
24.04.2017
10:55:11
ну тогда поправь мониторинг чтоб он тоже так считал
а вообще надо на iowait смотреть. и на io в целом

Google

Oleg ?
24.04.2017
10:56:00
ну у меня в том то и дело что графит видит как будето по одному ядру загружается переодически
типа
[BEACON] CRITICAL <CPU LOAD IS TOO HIGH> server_prod.cpu-0.cpu-user failed. Current value: 95.3%
[BEACON] CRITICAL <CPU LOAD IS TOO HIGH> server_prod.cpu-2.cpu-user failed. Current value: 93.7%
io да печален

yopp
24.04.2017
10:58:31
ну если io печален, значит пришло время изучить что тупит
скорее всего индексов нет, а если есть — они неэффективные или в память не влазят
Могу посмотреть (не раньше следующей недели). 120€/hr, контракт, все дела.

Oleg ?
24.04.2017
11:00:54
))) понял спасибо
)

yopp
24.04.2017
11:01:37
можешь сам попробовать разобраться. https://github.com/y8/mongo_collection_exporter
прикрутить к прометею и смотреть на коллекции

Oleg ?
24.04.2017
11:03:59
а у меня не sharded
оно будет работать?

yopp
24.04.2017
11:42:03
да
просто реплики в shards воткни и всё
я арбитрами не пробовал, может что-то сломаться
если сломается — заведи ишшуй

Oleg ?
24.04.2017
12:07:34
))) окай

yopp
24.04.2017
12:10:57
вместа арбитра лучше воткнуть скрытую реплику для бекапов. она тоже голосует если что
Latest: 3.4.4 (Apr 21, 2017), Stable: 3.2.12 (Feb 1, 2017)
3.4.4: https://docs.mongodb.com/manual/release-notes/3.4/#apr-21-2017
3.2.12: https://docs.mongodb.com/manual/release-notes/3.2/#feb-1-2017
Пришло время обновлятся до 3.4.1+: https://aphyr.com/posts/338-jepsen-mongodb-3-4-0-rc3
С выходом новой версии монги, как лучше поступать
Прикрепить новое сообщение и отправить уведомление – 7
??????? 64%
Прикрепить новое сообщение и не отправлять уведомление – 4
???? 36%
? 11 people voted so far.

Alexey
26.04.2017
11:47:56
привет всем
а расскажите про правильный выбор ключа шардирования. Вот скажем, если у меня ключ по date или по _id, который постоянно возрастает, то звпись всегда будет идти на один и тот же шард?

Google

yopp
26.04.2017
11:54:54
да

Alexey
26.04.2017
11:54:55
к примеру, есть в базе id клиента, который что-то добавляет в базу, есть date, есть _id
Правильно ли я понимаю, что в случае client_id чанки будут создаваться на том шарде, где находится этот чанк с совпадающим ID, а если по полю возрастающей date, то всегда на одном?

yopp
26.04.2017
11:56:10
чанки не «создаются»
они делятся
у тебя есть первый чанк {MinKey, MaxKey}
он будет на primary shard
дальше когда он начнёт расти, он будет делится на более мелкие
после чего балансер будет их растаскивать по другим шардам
если у тебя ключ всегда близок к MaxKey, то вероятнее всего у тебя всё это будет происходить на одном и том-же шарде
что не имеет никакого смысла в среднем
более того, под большой нагрузкой чанк может и не поделится
и будешь ты сидеть с этим jumbo chunk, который никуда не может дется.

Alexey
26.04.2017
11:58:51
ок, то есть, в случае, условного client_id поделился чанк, уехал на другой шард. Запись следом за ним переместится? туда где есть данные с нужным client_id?

yopp
26.04.2017
11:59:18
блин, надо уже написать статью про то как шардинг устроен