[Moscow.pm] асинхронный код позволяет сильно сэкономить ресурсы серверов

Alexander Lourier aml на rulezz.ru
Пн Фев 9 06:30:16 PST 2015


>
> > Всё выбросить и переписать - это для богатых :) Работает - не трогай.
> зачем - выбросить? остановить одного воркера из 50, и вместо него
> запустить нового. и посмотреть, как справляется.
>

Это не единственное место, где воркеры память жрут. Ещё бывает, что надо из
базы данных выбрать много данных, чтобы сформировать ответ.

Например, у меня есть монитор цен по магазинам всего мира в игре: надо
получить список магазинов, отфильтровать те, к которым игрок не имеет
доступа, загрузить ассортимент их товаров, сформировать отчёт, показать
игроку. Память отводится под ответ базы, потом освобождается, но Perl так
устроен, что операционке память уже никогда не возвращает. В результате,
воркеры запускаются небольшими, а со временем толстеют. Я их прибиваю после
каждой 1000 обработанных запросов, но всё равно - они успевают прилично
растолстеть, и в среднем занимают много памяти. Асинхронное приложение от
этой проблемы тоже бы не страдало.
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150209/599404c4/attachment-0001.html>


Подробная информация о списке рассылки Moscow-pm