ixplo
вв это ж node.js чат, сорян )
Ru
Привет. Народ, скажите какое вы считаете хорошим время для генерации html перед передачей вебсерверу? Время от поступления серверу запроса, до получения назад html для передачи обратно клиенту
Ru
Меня зовут Руслан. Занимаюсь веб разработкой. Основной проект интернет-магазин освещения. Сейчас изучаю активнее js node.js Люди говорят, что node.js это быстро.
Evgeny
http://cs9.pikabu.ru/post_img/2016/09/15/7/147393909915812096.jpg
V⚡️
50-100 мс наверно)
Ru
Группу нашел поиском @nodejs Чем могу быть полезен пока не знаю)
Ru
50-100 мс наверно)
Node.js так сможет? Php7 + smarty + lightspeed web server + mysql Для самой сложной страницы удалось добиться 150мс, переезд на node.js обдумывается именно из-за манящей скорости
Артур
Node.js так сможет? Php7 + smarty + lightspeed web server + mysql Для самой сложной страницы удалось добиться 150мс, переезд на node.js обдумывается именно из-за манящей скорости
Ты так же учитывай что нода лучше всего себя покажет именно при большом количестве одновременных запросов, просто за счет архитектуры.
Andrey
Node.js так сможет? Php7 + smarty + lightspeed web server + mysql Для самой сложной страницы удалось добиться 150мс, переезд на node.js обдумывается именно из-за манящей скорости
обычно тормозит работа с базой - тем более синхронная - готов поспотрить что чуть ли половина времени генерации из-за последовательных запросов к базе
Ru
Ты так же учитывай что нода лучше всего себя покажет именно при большом количестве одновременных запросов, просто за счет архитектуры.
Мне для моей кухни надо, чтобы основа моя работала не хуже. Т.е. Важно чтобы mysql_fetch_array , in_array, array_push, array_merge, hash(md4, '') конкатенация строк работали не хуже php. Еще у меня часто strtr используется, на php она довольно быстрая, на js не нашел аналога.
Ru
обычно тормозит работа с базой - тем более синхронная - готов поспотрить что чуть ли половина времени генерации из-за последовательных запросов к базе
Ну в моем случае узким местом стала php часть, базу заставил работать в несколько раз быстрее, так что она теперь не будет слабым местом
Andrey
сколько у вас идёт запросов к базе в процессе генерации страницы?
Ru
сколько у вас идёт запросов к базе в процессе генерации страницы?
Точно не скажу с ходу. Самый сложный случай 2 на дерево категорий, 1 товары из них, 1 опции товаров, 1 значения этих опций у товаров и еще 1 сами товары плюс штук 10 счетчиков товаров. Около 20 получается.
Aleksand
сколько у вас идёт запросов к базе в процессе генерации страницы?
ну есть много довольно быстрых проектов где при открытии главной страницы от 100 до 500 запросов в БД делается)
Aleksand
это ужас но с этим живут и не чахнут
Andrey
ну вот эти запросы и тормозят - вот ради эксперемента возьмите все эти данные в 1 массив и положите в memcached и будет у вас прирост в 2 раза в скорости генерации
Andrey
ну есть много довольно быстрых проектов где при открытии главной страницы от 100 до 500 запросов в БД делается)
мы когда только запускали свой сервер отдачи рекламы - у меня в реалтайме было до 2-3к запросов в секунду на базу по первичному ключу и всё тоже работало
Andrey
на синхронных вещах разницы в скорости меджу пыхой и нодой нету или минимальна.
Ru
Будет побыстрее конечно, но я сказал, что сейчас бд довольно шустрая, что из долгих запросов осталось кеширует в файлы, основное время занимает именно php часть.
Andrey
нода хороша именно в том что хорошо держит большое кол-во коннектов - у меня на 1 физический сервер до 10к RPS может придти и будет всё штатно работать
Ru
цветом показывает долгие вещи
Ru
красная строка со временем 38мс это еще до запросов, smarty собирается
Andrey
собирается?
Andrey
она же должна компилировать шаблон
Andrey
1 раз
Ru
вот уже из шаблонов рожает столько времени
Bogdan
Как субд быстрее редиса?
Anonymous
можно узнать в каком это ряде ситуаций?
Anonymous
SELECT 1; ?
Bogdan
Ой
Aleksand
это как это?)
если вся БД помещается в память и она нормально спроектирована и запросы не написаны диверсантами то сходить в базу часто быстрее чем редис
Bogdan
Селект 1 все равно дольше, потому что парсинг и исполнение запроса)
Aleksand
но такое бывает максимум на средних проектах, выше среднего уже нет
Bogdan
Как это? Запрос быстрее, чем получение значения по точному значению?
Aleksand
нет, я не соглашусь с вами. так не может быть - иначе бы nosql базы не выстрелили бы.
ну я говорю по опыту и измерениям. nosql выстрелили по другим причинам
Andrey
ну я говорю по опыту и измерениям. nosql выстрелили по другим причинам
а вот моя логика говорит что не может быть такого
Aleksand
Как это? Запрос быстрее, чем получение значения по точному значению?
СУБД (я на самом деле про PG) пишут давно, они настолько заоптимизирвоаны и быстры что порой поражаешься
Aleksand
потому что выстрелили nosql?
Andrey
я работаю с pg memcached redis
Aleksand
я работаю с pg memcached redis
я же говорю, в ряде случаев, а не всегда и везде, в том числе у вас
Bogdan
Да потому что там много промежуточных процессов перед получением данных, а редис это дай мне то, что лежит конкретно там
Andrey
я же говорю, в ряде случаев, а не всегда и везде, в том числе у вас
вот выше Богдан написал то что я хотел написать
Bogdan
Парсинг запроса, оптимизация запроса, исполнение запроса
Bogdan
Это минимум :)
Andrey
в БД сначало разбираеться запрос, получаеться его хеш и смотреиться еслть ли его результат в озу если нету то идёт выполнение в редисе и мемкешеде идёт запрос сразу в участок памяти
Bogdan
Sql же язык не точный, а редис как раз точный
Bogdan
О, просмотр индексов в этапе исполнения запроса
Aleksand
Парсинг запроса, оптимизация запроса, исполнение запроса
давай тогда начнем с того что у постгреса протокол асинхронный а у редиса синхронный, а потом продолжим про кэш СУБД, отсутствие обращений к диску и прочее
Bogdan
Это сродни принеси мне это, не знаю что и дай мне конкретно это отсюда
Bogdan
Естественно второе быстрое, потому что конкретизируешь что
Aleksand
О, просмотр индексов в этапе исполнения запроса
ты правда вот думаешь что редис оптимальнее ищет по памяти чем СУБД?
Bogdan
Синк/асинк это для клиента
Bogdan
Естественно Потому что нет ничего более оптимального точного чем ключ/значение :)
Aleksand
Синк/асинк это для клиента
это логика протокола, ты редису можешь только последовательно слать запросы, а постгресу все сразу и по частям ловить ответы
Bogdan
Субд не вернет ответ пока не соберет все данные, друг :)
Aleksand
Естественно Потому что нет ничего более оптимального точного чем ключ/значение :)
узковато как-то смотришь. вот у меня был конкретный кейс, когда редис был на 20-30% медленнее нормально приготовленного постгреса
Aleksand
Субд не вернет ответ пока не соберет все данные, друг :)
она в один коннект примет все запросы и отдавать будет чанкамиа не полностью
Aleksand
речь про постгрес конкретно
Bogdan
Более чем уверен, что проблема в редисе в окружении была :)
Aleksand
Более чем уверен, что проблема в редисе в окружении была :)
ну мы все дураки, надо было звать умных, ага
Bogdan
Не фанат редиса и похожего, но факт в том что редис избавляет от кучи промежуточного что есть в пг
Bogdan
Раз так, то прошу прощения, что поддержал тему
Aleksand
Не фанат редиса и похожего, но факт в том что редис избавляет от кучи промежуточного что есть в пг
то что ты описал в постгресе стоит много только от серьезного объема, на БД до 20-30 гигов спроектированной без диверсий это может стоить меньше чем у редиса
Aleksand
Раз так, то прошу прощения, что поддержал тему
ну ты отчего уверен? вот мы 2 месяца исследовали измеряли, отключили редис и на 20-30% быстрее стали, что мы сделали не так?
Aleksand
повторяю это работает на ограниченных случаях
Bogdan
От понимания того как работают запросы в ключ/значение системах и субд
Aleksand
От понимания того как работают запросы в ключ/значение системах и субд
ну а практика показывает иные результаты порой. если копнуть вглубь то тому есть объективные причины