Павел
900 rps на локальном докере выдаёт у меня
ну у тебя комп то наверное почетче. У нас там 2 ядра еле живых и то 250 рпс выдает. Просто что фпм 250рпс, что РР при рибуте на каждый запрос
Павел
а, ну типа резеттеры эти
Ну в бандле есть стартегии ребута контейнера, кернела. Вот я потестил на исключения и на каждый запрос
Юра
А вообще хочешь реальный буст, бери какой-то свуль
Юра
Там тебе будет рпс
Павел
это роут без доступа к БД был, если что
Ну вот у нас еще и в редис бегал
Павел
А вообще хочешь реальный буст, бери какой-то свуль
Ну да, на него тоже смотрел, решил с чего попроще начать)))
Юра
Если у тебя орм используется то рпс можно забыть
Kirill
А вообще хочешь реальный буст, бери какой-то свуль
ващет нужно не только свуль брать, но ещё и писать свой фрейм тогда)))
Юра
Все эти десерилазацит мапинги все это на не слишком быстром пхп съедает.рпс
Юра
Вам нужен рпс на бизнес логику?
Павел
Вам нужен рпс на бизнес логику?
Нет, апишка для выдачи raw из редиса
Юра
Тогда не знаю.. проще реально свуль
Юра
Руками запросы понаписать и все
Kirill
а нафиг он нужен, когда кернел всё равно каждый раз с нуля поднимать?
Павел
Тогда не знаю.. проще реально свуль
Ну там еще есть мороки с коннекшенами
Павел
Юра
Ну да там нужны свои либы
Kirill
ну под чтение можно мемоизацию зафигачить
Юра
Для бд редиса и т.д.
Юра
Эти мороки стоят того
Павел
Какие мороки
Докладик про свуль смотрел, там вот ньюансы расказывали. Что надо коннекшены проверять, что редис, что мускул. Можно конечно создавать каждйы раз новые, но минус перфоманс. Опять же начали говорить про какие то пулы и самописные механизмы отдачи коннекшенов из пула. Короче я малось прифигел от того, что не понимаю проблем, а они есть))
Kirill
ну коннекшн пул на викмапах написать - дело пары минут
Юра
Обычно там есть конекшн пул
Павел
ну коннекшн пул на викмапах написать - дело пары минут
Ксатти вот да, они викмапы для em делали
Юра
Т.ею пришел запрос, оно смотрит есть ли в пуле свободный сокет грубо говоряя если есть то оно его использует, если нет, ждёт когда освободится
Kirill
привязываешь к хттп запросу коннект, срабатывает деструктор - отвязывается и возвращается обратно в пул
Юра
Иначе миллион запросов откроет миллион коннектов
Юра
И все упадет
Павел
а что их делать-то?)
Да я просто хз что это )) ты вот расписал, чуть более понятнее стало что за флоу)
Павел
@zim_it тоже спасибо :)
Юра
На ноде никогда не писал что-ли?
Kirill
Да я просто хз что это )) ты вот расписал, чуть более понятнее стало что за флоу)
1) https://github.com/helix-php/framework/blob/d711cf681f0218b86c5f905d5ec554f69cbbc38b/libs/pool/src/Pool.php 2) https://github.com/helix-php/framework/blob/d711cf681f0218b86c5f905d5ec554f69cbbc38b/libs/bridge/doctrine/src/Connection/EntityManagerInstantiator.php Тупо коннекты двигаются из "активного" в "свободное" состояние и всё.
Юра
Марсоходы ниразу не кодил что-ли?
Юра
Тогда почитай что такое конекшн пул
Павел
Иначе миллион запросов откроет миллион коннектов
Тут чет подумал, а какая разница открывает миллион коннектов fpm или RR/swoole ? Ну если мы говорим, что делаем новый коннект при реквесте
The Ant
Нет, апишка для выдачи raw из редиса
Если реально маленькое, то можно редис + нгинкс вообще, нахер пхп. Ну ещё можно прям в нгинксе мапить с редиски джсом. Все равно в редис через жс бегать будешь 😄 Жс не отдельный, а прям в конфиге нгинкса
The Ant
🤷 ну тады чето придется мудрить )
Сергей
Nano) раз про свуле заговорили
Юра
В этом разница
Павел
В свуле мы не делаем новый конект при реквесте
В РР я тоже попробовал не пересоздавать - норм. Но видимо нужно следить за его работоспособностью (пинг)
Павел
В свуле все же наверное еще асинхронщина, там же ака-горутины есть, и наверное имеет смысл пулы
Павел
Чтобы одновременно не использовались коннекты
Юра
Ну в итоге вся асинхронщина все равно упрется как раз в пул соединений в бд
Павел
Ну в итоге вся асинхронщина все равно упрется как раз в пул соединений в бд
Я еще не дошел до прочтения про пулы, но все равно не понимаю зачем он вообще нужен, этот пул
Павел
в РР синхронные запросы
Юра
Ну в итоге вся асинхронщина все равно упрется как раз в пул соединений в бд
У тебя просто будет 1000 соединений, 100 из них будут что-то запрашивать в бд, а остальные 900 ждать свободного конекшена
Юра
Но допустим соединение 1 получило результат и пошло сериализовать дто в это время 101 соединение получилос доступ к бд
Юра
Так это и работает
Юра
Потом соединение 1 снова пошло в бд и ждёт пока кто-то отдаст соединение
Юра
Ну в пхп есть настоящая асинхронщина
Павел
Ну в пхп есть настоящая асинхронщина
Где? Только в свуле и есть вроде
Юра
Ещё есть react PHP
The Ant
А какая конечная цель то вообще? Рпс поднять? Бери голенг 🤣
Павел
А какая конечная цель то вообще? Рпс поднять? Бери голенг 🤣
Да это понятно:) Ды да, поднять дешево рпс
Юра
А вообще я недавно написал на расте чисто просто сервис по отдаче данных в бд, запустил бенч, оно все зависло, думаю всё наверное. Через минуту отвисло 120 тысяч rps
Юра
После этого я не могу смотреть уже ни на что другое )
The Ant
Го изичный язык, ну как изичный, за пару дней в базу въедешь. И напишешь себе проксю эту )
Юра
Го норм тоже для таких штук
Павел
У меня еще и с бенчем какой то трабл. Мб кто подскажет. Не могу яндекс-танк локально разогнать. У меня тупо ломается интернет. Думал в убунте коннекшены какие то кончаются - а нет. С телефона по вайфаю тоже инет пропадает. Примерный 250 рпс что дома, что на работе. Мб есть какие идеи?
Юра
Пхп всё-таки проигрывает на этом поле учитывая что под асинк пхп нужны либы которые его поддерживают. Хотя вроде основные есть
The Ant
Ну раст тож потыкать, но в расте сильно меньше всякой шары. На го много либ уже понаписали
Павел
Го изичный язык, ну как изичный, за пару дней в базу въедешь. И напишешь себе проксю эту )
Да я уже пытался зайти несколько раз, на уровне хелло ворд, но через 2 дня забываю синтаксис)))
Павел
Нужно полноценно садиться и работать с реальными задачами
Юра
Пока выучишь го появится ещё пару языков )
Павел
Хз, основное отличие это справа тип )
Ну приколюхи с типизацией еще.
The Ant
Хотя мне после тса привычно мб было
Юра
В го дурацкая система типов реально. На любителя
The Ant
Ну на расте попробовать 🤷