Gor
это да
yopp
или сколько оно уже продрыгало
yopp
законтрибьють
yopp
там в курсоре стопудова какие-то метрики есть, которые можно вытащить
yopp
верхний пилотаж конечно keys/docs examined, bytes read/bytes written
yopp
и _id документа
yopp
Gor
железо?
yopp
диски, ага
Gor
Nvme
Gor
Выдают до 500мб/с на чтении
yopp
эм
yopp
тогда час на 11 гигов это оч много
yopp
ты уверен что там 11 гигов? :)
Gor
Ага
Gor
Прикольный момент да?
Ivan
Третья черепашка наверное.
yopp
Gor
отменил
Gor
оно застапорило всю девелоп тим
Gor
буду ночью прогонять, замерю на сколько
yopp
а как запрос выглядит?
Semyon V
почему запросы с $exists исполняются очень долго?
Semyon V
не смотря на то, что поля проиндексированы
Semyon V
yopp
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
увеличить число доступных файловых дескрипторов
Artem
yopp
https://docs.mongodb.com/manual/reference/ulimit/
Artem
noi@noitech:/var/log/mongodb$ ulimit -n
999999
yopp
со стороны клиента тоже проверьте что там не 256
Artem
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 у пользователя под которым монга запущена
Artem
Artem
yopp
Либо там где монга, либо там где клиент
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$
yopp
yopp
вы как монгу ставили?
yopp
у вас что в unit файле?
Artem
ошибку ту же выдает