Gor
это да
yopp
или сколько оно уже продрыгало
yopp
законтрибьють
yopp
там в курсоре стопудова какие-то метрики есть, которые можно вытащить
yopp
верхний пилотаж конечно keys/docs examined, bytes read/bytes written
yopp
и _id документа
Gor
железо?
yopp
диски, ага
Gor
Nvme
Gor
Выдают до 500мб/с на чтении
yopp
эм
yopp
тогда час на 11 гигов это оч много
yopp
ты уверен что там 11 гигов? :)
Gor
Ага
Gor
Прикольный момент да?
Ivan
Третья черепашка наверное.
yopp
Ага
оно закончило? :)
Gor
отменил
Gor
оно застапорило всю девелоп тим
Gor
буду ночью прогонять, замерю на сколько
yopp
а как запрос выглядит?
Semyon V
почему запросы с $exists исполняются очень долго?
Semyon V
не смотря на то, что поля проиндексированы
Sergey
почему запросы с $exists исполняются очень долго?
MongoDB не хранит в индексе признаков отсутствия поля. Чтобы такой запрос пустить по индексу, надо {$ne: null}.
yopp
проблема в том, что такие выборки даже по индексам будут плохо работать, так как индекс обладает низкой селективностью
Semyon V
{ $ne : [ null ] }, конечно, шустрее, но мне кажестя контринтуитивно
Semyon V
но не важно, главное работает
yopp
оно шустрее только тем, что оно вместо document scan делает index scan
yopp
но если вы посмотрите в shape запроса там будет ужас в духе [null, null] или [MinKey, MaxKey]
yopp
а exectution stats будет мрак
yopp
keys scanned ~~ index key size
Semyon V
как быть?
yopp
изменить модель данных и не использовать $exists
yopp
$exists говорит о том, что у вас какой-то вид полиморфизма
yopp
из неявного полиморфизма сделайте явный
Semyon V
не-не, я уже через $in и $ne делаю
yopp
$ne не решает проблему
Semyon V
yopp
я же вам говорю, посмотрите на execution stats
Semyon V
да, иду
yopp
если у вас большое число документов без поля, индекс конечно будет эффективнее чем collection scan, но всё ещё будет требовать сканирования по большому диапазону ключей
yopp
явный полиморфизм в случае если у вас мало типов, тоже не будет серебрянной пулей, но обычно это обходится compound index для повышения селективности
yopp
ещё вариант — sparse index
yopp
но опять-же, если количество вариантов для ключей небольшое, то это всё равно будет не очень быстро
Semyon V
спасибо за прояснения. поизучаю топик поглубже
Ренат
Добрый день. Планируется запуск интернет-магазина. В mongodb новичок. Как понимаю, запуск mongodb standalone на одном VPS сервере далеко не самый надеждный вариант? Способен ли бесплатный тариф на Атласе поддерживать работоспособность базы (хотя бы в на первом этапе, пока посетителей магазина будет не очень много)? Или лучше сразу смотреть на платные решения?
yopp
способен
yopp
play.db-ai.co на бесплатном алтасе работает
Ренат
Спасибо 👍
yopp
тысяча-полторы просмотров в месяц, абсолютно никаких проблем
yopp
тут скорее не от трафика будет зависеть, а от количества данных
Artem
yopp
увеличить число доступных файловых дескрипторов
yopp
https://docs.mongodb.com/manual/reference/ulimit/
Artem
noi@noitech:/var/log/mongodb$ ulimit -n 999999
yopp
со стороны клиента тоже проверьте что там не 256
Artem
со стороны клиента тоже проверьте что там не 256
а как проверить со стороны клиента?
yopp
тоже самое сделать там, где у вас ошибка
Artem
тоже самое сделать там, где у вас ошибка
noi@noitech:/mnt/8336-8028/Dropbox/projects/laravel_clear/engine$ mongorestore --db techstudio mongodb/dump_techstudio/ 2019-11-02T16:59:02.618+0400 the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead 2019-11-02T16:59:02.620+0400 building a list of collections to restore from mongodb/dump_techstudio dir 2019-11-02T16:59:02.622+0400 reading metadata for techstudio.posts from mongodb/dump_techstudio/posts.metadata.json 2019-11-02T16:59:02.622+0400 reading metadata for techstudio.projects from mongodb/dump_techstudio/projects.metadata.json 2019-11-02T16:59:02.622+0400 reading metadata for techstudio.comments from mongodb/dump_techstudio/comments.metadata.json 2019-11-02T16:59:03.126+0400 Failed: techstudio.comments: error creating collection techstudio.comments: error running create command: 24: Too many open files
yopp
а ulimit -u сколько?
Artem
самое смешное что ,база не упала. когда я c phpunit тестировал после такой же ошибки ,база сразу упала
Artem
noi@noitech:/mnt/8336-8028/Dropbox/projects/laravel_clear/engine$ ulimit -u 31308
yopp
если «база упала», значит проверьте ulimit у пользователя под которым монга запущена
yopp
Так а если не упала,то значит в чем ошибка?
Too many open files это ошибка с ulimit. Ищите с какой стороны не хватает дескрипторов.
yopp
Либо там где монга, либо там где клиент
Artem
Too many open files это ошибка с ulimit. Ищите с какой стороны не хватает дескрипторов.
2518 noi 20 0 1036048 125440 31452 S 1,0 1,6 0:44.07 mongod noi@noitech:/etc$ ulimit -n 999999 noi@noitech:/etc$ ulimit -u 31308
yopp
перезапустите процесс
Artem
перезапустите процесс
noi@noitech:/var/log/mongodb$ sudo service mongodb restart noi@noitech:/var/log/mongodb$ sudo service mongodb status ● mongodb.service - High-performance, schema-free document-oriented database Loaded: loaded (/etc/systemd/system/mongodb.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2019-11-02 17:06:04 +04; 1s ago Main PID: 4976 (mongod) Tasks: 3 (limit: 4915) Memory: 153.1M CGroup: /system.slice/mongodb.service └─4976 /usr/bin/mongod --quiet --config /etc/mongod.conf ноя 02 17:06:04 noitech systemd[1]: Started High-performance, schema-free document-oriented database. noi@noitech:/var/log/mongodb$
Artem
тут запущено под пользоватлем noi
4976 noi 20 0 1027564 121116 33508 S 1,3 1,5 0:12.23 mongod
yopp
вы как монгу ставили?
yopp
у вас что в unit файле?
Artem
вы как монгу ставили?
так я же говорю у меня mongorestore не работает при импорте данных
Artem
ошибку ту же выдает