<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif;font-size:10pt"><div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif; background-color: transparent; font-style: normal;"><br>То есть простой CPU при обращении к диску будет большем, чем затраты CPU
 на сериализацию данных для отправки в сокет шаблонизатора и чтения 
ответа?<br>А если использовать быстрые SSD диски? А если использовать AIO?<br>Тут цель, чтобы максимально быстро среагировать на запрос или что-бы не простаивал компьютер без полезной нагрузки?<br><br></div><div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif; background-color: transparent; font-style: normal;">P.S.<br>lua внутри nginx? Видал как-то статью про это.<br>А почему не erlnag? :-) Или у него другие слабые стороны?</div><div style="display: block;" class="yahoo_quoted"> <br> <br> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif; font-size: 10pt;"> <div style="font-family: HelveticaNeue, Helvetica Neue,
 Helvetica, Arial, Lucida Grande, Sans-Serif; font-size: 12pt;"> <div dir="ltr"> <font face="Arial" size="2"> On Friday, 22 November 2013, 17:11, Mons Anderson <mons@cpan.org> wrote:<br> </font> </div>  <div class="y_msg_container"><br clear="none">On 22.11.2013, at 18:49, ksvs <<a shape="rect" ymailto="mailto:ksvs1996@ymail.com" href="mailto:ksvs1996@ymail.com">ksvs1996@ymail.com</a>> wrote:<br clear="none"><br clear="none">> <br clear="none">> У вас шаблонизатор внешний ресурс?! Это ему по сокету дают, например json, а он возвращает html?<br clear="none"><br clear="none">Да )<br clear="none"><br clear="none">> <br clear="none">> Я думал, что большинство веб-приложений - получил запрос, пообщался с одной базой данных (3-5 запросов), сформировал html и отдал.
 Когда ждем ответы от базы, CPU занят обработкой запросов в других процессах. Да и формирование html по шаблону тяжелая ведь задача (наверно).<br clear="none"><br clear="none">Тут всегда торговля между: CPU распределяет планировщик между процессами vs CPU распределяется внутри одного процесса.<br clear="none">ШАблонизация на каком-ниубдь xslate это довольно лёгкая (по cpu) задача, но смысл в том, чтоб не заставлять асинхронный процесс обращаться к диску ни при каких обстоятельствах.<br clear="none"><br clear="none">> Думал, что "сходить во внешние ресурсы и применить к
 результатам какую-то простую логику" - это редкие задачи (своя база не в счет). А оказывается наоборот!<br clear="none">> <br clear="none">> А что это "Есть еще пара случаев, когда синхронка хорошо выигрывает у асинхронки, но они довольно редкие и узкоспециализированные"?<br clear="none">> <br clear="none">> Это я так засомневался, когда к своей мултипроцесной асинхроной штуке, прикрутил нагрузку по анализу скачиваемых html, и увидел, что вариант с 2 двумя рабочими дочерними процессами (у меня два ядра) и с 100 асинхронных сокетов в каждом дает такую же
 производительность, как и вариант с 8 рабочими дочерними синхронными процессами. В общем, узкое место стало CPU.<br clear="none">> <br clear="none">> Кончено, если внешние ресурсы тормозят, то да. Но если они свои, то все быстро.<br clear="none"><br clear="none">Пока кол-во дочерних процессов у вас небольшое, то планировщик справляется нормально.<br clear="none">А если обслуживать тысячи параллельных запросов, то тут уже планировщик OS проигрывает асинхронному процессу.<br clear="none"><br clear="none">Не обязательно, чтобы ресурсы тормозили.<br clear="none">Поход по сети куда угодно
 (да даже если это unix сокет) занимает огромное кол-во времени, если считать в тактах cpu.<br clear="none"><br clear="none">> <br clear="none">> В общем, есть пища для размышлений.<br clear="none">> <br clear="none">> Спасибо.<br clear="none">> <br clear="none">> P.S.<br clear="none">> Хотя, если логика простая, то можно и на более быстром языке делать ее.<br clear="none">> Скорость еще выше будет. :-)<br clear="none"><br clear="none">В принипе иногда пользуемся lua, но если для перла есть все, что только можно вообразить, то для lua набор весьма бедноват.<br clear="none"><br clear="none">> <br clear="none">> -- <br clear="none">> Moscow.pm mailing list<br
 clear="none">> <a shape="rect" ymailto="mailto:moscow-pm@pm.org" href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a shape="rect" href="http://moscow.pm.org/" target="_blank">http://moscow.pm.org</a><div class="yqt0656084707" id="yqtfd70349"><br clear="none"><br clear="none">-- <br clear="none">Moscow.pm mailing list<br clear="none"><a shape="rect" ymailto="mailto:moscow-pm@pm.org" href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a shape="rect" href="http://moscow.pm.org/" target="_blank">http://moscow.pm.org</a><br clear="none"></div><br><br></div>  </div> </div>  </div> </div></body></html>