Pt. Loki
Цель какая?
оптимизация времени ответа-поиска) банально. тупо игра с кучей опций. Где-то есть где-то нет у объектов доп-поля. ну и все это на сокетах и время ответа для онлайна важно
Pt. Loki
Выносите в оперативную память процесса и грузите на запуске
innodb с кешем подводит иногда. отсюда и вопрос как правильнее организовать в таком контексте.
Pt. Loki
над базой ещё рутина проводится по обновлению статистики и подобному. а оно стопорит активность на минут 5-15 ежедневно
Pt. Loki
2.5кк записей пока обновляются)
Pt. Loki
в общем ожидание доступности innodb против файловой очереди fs
Pt. Loki
и по оперативке - если есть советы как хранить хотяб промежуточные сессии не в дБ а внутри ноды тоже было бы круто.
Pt. Loki
Надо перерабатывать, что обновление статы не лочило данные
распределяет нагрузку. но общие затык и именно в области. либо инно ждёт очереди. либо монго ждёт диска.
Pt. Loki
Редис?
редис быстрее монго? я только читал. вроде на 2х полях монго недалеко от редиса. поле сокета поле айди
Nick
редис быстрее монго? я только читал. вроде на 2х полях монго недалеко от редиса. поле сокета поле айди
Ну как бы в редисе держим кэш, читаем из него, изменения и в базу и в кэш вносим и снимаем нагрузку с базы
Тима
Добрый вечер! Не хватает 20 респондентов до полной выборки, не могли вы пройти опрос, если вы специалист из сферы IT, который работал или работает удалённо. Вы очень поможете мне с дипломом 🙏🙏🙏 https://forms.gle/WdpEHf7mFtEZiQxK6
Тима
Тоже подходите)
Pt. Loki
Ну как бы в редисе держим кэш, читаем из него, изменения и в базу и в кэш вносим и снимаем нагрузку с базы
так там поверх ноды висит интерфейс внешки (vue3). он запрашивает только когда совсем надо. понимаю что редис в кеше. но нода сама жрёт и монго поверх. оперативка плюс на nginx идёт) типа спорный момент как лучше потому и спрашиваю. ок. попробую редис для проверки. есть таблица в монго Auth - там тупо айди пользователя в системе и его сокет. а потом авторизация.
Pt. Loki
Ну как бы в редисе держим кэш, читаем из него, изменения и в базу и в кэш вносим и снимаем нагрузку с базы
ну и за редис респект. я сам его рекламировал буквально месяц назад и забыл) если он по оперативке норм то гут решение
Nick
ну и за редис респект. я сам его рекламировал буквально месяц назад и забыл) если он по оперативке норм то гут решение
вообще это несовсем корректно с моей стороны просто советовать воткнуть редис, если у вас проблема только в том что есть лок на 15 минут раз в день то это можно решать по другому. Если же есть именно проблемы чтения при работе с БД, то да тут кэш уже выручит, но также может банальное добавление оперативы помочь. Если же вцелом система медленная, то надо будет комплексно оценивать каждую часть и искать ботлнеки, сначала самые очевидные, а потом уже искать глубже - но возможно это все просто может быть закрыто перездом в более производительное окружение
Pt. Loki
слушай недавно встречал кейс что редис может запускать job которые работают на отдельном от ноды процесерре чтобы ноду не грузить
процессоров хватает. я не все контролю в процессе производства. отсюда куча лишних циклов. 32х ядра и 16 рам нагружаются. оперативка свободна обычно. а процы всегда под нагрузкой nginx от количества входов. а сеть пока строить чуть рано. вот и экономлю)
Pt. Loki
ну и нагрузка в основном на цп и диск. а рам в избытке ибо порезал исполнение)
Pt. Loki
слишком сложно пойду лучше с очередью поиграюсь
да блин. ну я про быт. ну че тут сложного что я не описываю? версию nginx? платформу? (debian10).
Pt. Loki
слишком сложно пойду лучше с очередью поиграюсь
могу sysconf выложить до кучи. там рейд 4 на 8. в полупятерке)
test
да блин. ну я про быт. ну че тут сложного что я не описываю? версию nginx? платформу? (debian10).
ты уходишь в низко уровнеые операции говоря архитектуру процессора и тд. Я если честно про это не думаю когда работаю. Конечно я подбираю 64 bit всегда для сервера но в низ не ухожу)
test
а ок. сорян. я бывший админ. лезу до термопасты)
а ясно ну а я фулл стек. Просто так рутины хвататет а тут про процессоры 0))
Pt. Loki
а ясно ну а я фулл стек. Просто так рутины хвататет а тут про процессоры 0))
ну там важно) разные рейды и разные аппаратные подключения облаков рулят. там КПД скачет дай боже
Pt. Loki
если что за кофе делюсь. сам торговал тачками и кончился на короне) непривычно чуть. сори за сленг если что
Pt. Loki
свет вырубили.... здрасьте....
Nick
пятница, намекают отдохнуть)
Pt. Loki
Pt. Loki
пятница, намекают отдохнуть)
00 42. уже в процессе.)
Pt. Loki
слышали пиканье ибп со всех сторон в радиусе 100 метров? Что-то рванет)
test
слышали пиканье ибп со всех сторон в радиусе 100 метров? Что-то рванет)
когда работаешь сисадминов и не такое услышиш 🤣
Pt. Loki
когда работаешь сисадминов и не такое услышиш 🤣
буль буль из серверной самый норм звук когда помощник сисадмина задел полку с запасами)
Pt. Loki
а какой там запах ах
там 2 кондея на 10 метров. чтоб безотказно
Pt. Loki
влажность чуть меньше 0
Pt. Loki
всики высахало за 5 дней 1л
test
там 2 кондея на 10 метров. чтоб безотказно
подскажи плиз хорошую книгу по linux так чтобы поверхностно было
Nick
влажность чуть меньше 0
а это разве не повышает риски по статике?
Pt. Loki
подскажи плиз хорошую книгу по linux так чтобы поверхностно было
опыт. если меньше 25 то тупо ставь и живи. само решиться. говорил с теми кто читал. не то.
Pt. Loki
а это разве не повышает риски по статике?
там земли везде. и по стойке и по поверхности
Pt. Loki
а это разве не повышает риски по статике?
ну так то да. но есть решения.)
test
опыт. если меньше 25 то тупо ставь и живи. само решиться. говорил с теми кто читал. не то.
да есть у меня тачка я там пару необходимых пакетов поставил из за рекомендация с инета и все
test
8 ядер 64 гига 2 терабайта ssd
Pt. Loki
8 ядер 64 гига 2 терабайта ssd
ну и чтоб навряка чтоб понять - без гугла нормального. тупо k750i)
Pt. Loki
8 ядер 64 гига 2 терабайта ssd
оу. дебиан. нахуй все остальное. там есть опции привычки но дебианка ближе к большинству
Pt. Loki
сам с убунты на дебиан за год. без опыта арх и более низких
yopp
$gte 7000001020000000 & $lt 7000001030000000,
Sergey
Всем привет. Прошу подсказки. Первый раз использую MongoDB с GridFS. С помощью put отправляю туда бинарь предварительно сняв с него хэш. После загрузки в mongo хэш не совпадает. Часть данных из файла пропадает. При этом ни каких ошибок не было. На сколько это распространенное поведение и есть ли какие то практики борьбы с этим?
Sergey
Вероятнее всего вы загружаете не весь файл целиком, а только один чанк. Проверьте как в вашем драйвере правильно получать весь файл
Спасибо, посмотрю. Действительно возможно, более мелкие файлы загружаются не битыми, может быть они в чанк влезают...
Sergey
Что то я ни в доках ни в куче примеров для pymongo не увидел каких либо параметров к put. Все создают клиент, указывают коллекцию и все.
yopp
а как вы читаете файл?
Sergey
а как вы читаете файл?
Это csv файл. Читаю его просто как file = open(f["csv"], 'rb') и потом примерно так: fs.put(file, content_type="text/csv", filename="File_name", metadata=tags)
yopp
я имею ввиду как вы его потом из базы читаете
Sergey
а, примерно так сейчас попробовал: MONGO_HOST = MongoClient("mongodb://IP:27017/") client = MONGO_HOST db = client["datalake"] fs = gridfs.GridFS(db) find_file = fs.find_one({"filename": "info.csv"}, batch_size=60) file_get = fs.get(find_file._id) file_to_landing = file_get.read() df = pd.read_csv(io.BytesIO(file_to_landing), sep=";", low_memory=False, decimal=',')
Sergey
Но я прям в монге вижу что часть файлов с совпадающими хешами с исходными, а часть нет. Пока заливал для теста по 1-2 файла то все было норм. Вчера запустил скрипт загрузки более 200 файлов. Отработало за 3 часа 55 минут. Общий вес 45Гб был. И началось
Sergey
Но сам скрипт на заливку отработал вообще без каких либо ошибок
As@@t
привет всем, проектируем архитектуру проекта, необходимо знать примерные цифры, подскажите пожалуйста, сколько нужно времени примерно залить 100 000 строк в монго за раз в 1 потоке (java)? формат данных такой {"id" : 12334525, "task_id" : 3213, "status" : 1, "work_status" : 1, "dt_update" : "11322332"}
As@@t
на какой машине? Надо взять и протестировать
вообще это нормльно за раз такую тучу данных заливать?
Aziz
единоразово да
Aziz
но не каждую минуту
As@@t
у нас пользователь запускает с админки задание, там есть такое поле как кол-во повторений задания мы каждое повторение разбираем на + 1 строку в базе потом когда обработчики будут исполнять, они будут брать каждую строку себе в обработку и будет каждое повторение как отдельная строка так вот заданий у нас от пользоватлей планируется тысячи, возьмем к примеру условно 2000 заданий и если каждое задание юзер захочет повторить по 10 000 раз, это в сумме будет 2000 * 10 000 = 20 000 000 строк вообще такой подход имеет право на жизнь?
Nick
у нас пользователь запускает с админки задание, там есть такое поле как кол-во повторений задания мы каждое повторение разбираем на + 1 строку в базе потом когда обработчики будут исполнять, они будут брать каждую строку себе в обработку и будет каждое повторение как отдельная строка так вот заданий у нас от пользоватлей планируется тысячи, возьмем к примеру условно 2000 заданий и если каждое задание юзер захочет повторить по 10 000 раз, это в сумме будет 2000 * 10 000 = 20 000 000 строк вообще такой подход имеет право на жизнь?
вполне, если вам надо результаты работы и статус задачи трекать и у вас они параллельно могут запускаться. А если же ничего этого не надо и задачи строго последовательны, то проще переделать все на инстансы групп задач со счетчиками для подсчета количества запусков. Или тоже самое но в рамках групп хранить массивы с результатами отдельного запуска
Nick
ну и всегда можно просто ограничить возможность запускать так много задач, если это допустимо по бизнесу
As@@t
Благодарю за совет, сообщу коллегам
Антон
подскажите пожалуйста, как это можно сделать. есть коллекция с видео и коллекция с авторами. у автора есть поле "пол". нужно отфильтровать видео по полу... сейчас сделан запрос с агрегацией к коллекции с видео - туда агрегируется автор.
Аналоговнет
Жалуется на не уникальный индекс, хотя я и не прописывал чтобы в массиве были уникальные