<br><br><div><span class="gmail_quote">14.11.07, <b class="gmail_sendername">MZ</b> &lt;<a href="mailto:zuborg@advancedhosters.com">zuborg@advancedhosters.com</a>&gt; написал(а):</span><blockquote class="gmail_quote" style="margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">
В ср, 14/11/2007 в 15:07 +0300, Alexey Karagodov пишет:<br><br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; А по поводу схемы балансировки по времени ответа очень<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; хорошо сказал<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; на РИТе Олег Оболенский из Яндекса - &quot;пятисотки отдаются
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; офигенно быстро&quot;.<br>&gt;<br>&gt;<br>&gt; ошибки 5ХХ наверно<br>они, только непонятно почему при балансировке по загрузке они должны<br>возникать чаще чем при балансировке по кол-ву обработанных запросов.
</blockquote><div><br class="webkit-block-placeholder"></div><div>непонял :) &nbsp;</div><br><blockquote class="gmail_quote" style="margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Не присутсвовал, из контекса не понимаю про какие пятисотки
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; идет речь. И<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; не понимаю что за &quot;балансировка по времени ответа&quot; - я<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; вообще-то имел<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ввиду балансировку по текущей загруженности бекендов - по<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; текущему
<br>&gt;<br>&gt;<br>&gt; как Вы узнаете загруженность бекенда? Cisco CSS в нгинх вкрячить?<br>Сейчас загруженность вообще никак не узнается. Запросы шлются по<br>очереди, с учетом весов. Мое предложение состояло (и сейчас состоит, я
<br>просто давно уже об этом писал, но особого интереса оно не вызвало) в<br>том что загрузка должна определяться по текущему кол-ву запросов,<br>которые определенный бекенд обрабатывает в данный момент - чем больше<br>запросов он обрабатывает тем больше шансов что он загружен, и
<br>следовательно новый запрос надо проксировать на тот бекенд что не сильно<br>занят обработкой запросов, с учетом проставленных весов, но независимо<br>от того сколько запросов было обработано каким-либо бекендом в прошлом.
</blockquote><div><br class="webkit-block-placeholder"></div><div>всё гораздо проще. как это сделано на моих площадках:&nbsp;</div><div>нгинх отдаёт по фастцги на несколько пхп-серверов&nbsp;</div><div>тайм-аут соединения - 1 с&nbsp;</div>
<div>тайм-аут получения ответа - 20 с (скрипты очень тяжёлые на некоторых площадках, в идеале надо ставить секунды 4 конечно)&nbsp;</div><div>так вот, за 5 сек не успел, 5ХХ ошибка получилась, обработали (неважно как, повторили запрос на фастцги, нарисовали красивую хтмл-ю страничку, что угодно)&nbsp;
</div><div>зачем тут pipelining, keep-alive и пр. красивые и умные слова&nbsp;</div><div>ну как pipeline с keep-alive-ом тут помогут бекенду? если физически не способоен &quot;держать&quot; больше 50 юзеров (к примеру) в секунду с их безмерными хотелками&nbsp;
</div><div>бекенду - НИКАК. если он МРЁТ, он будет УМИРАТЬ ВСЕГДА&nbsp;</div><div>тут только одно мне видется, была проблема, когда при раздаче запросов нгинх &quot;перебирал&quot; сервера пхп-фастцги и возникала большая куча tcp коннектов, сервер отваливался, невозможно было с ним установить новое tcp соединение&nbsp;
</div><div>куча коннектов возникала потому, что все сервера пхп были загружены запросами по самое небалуйся, а им приходили и приходили новые запросы&nbsp;</div><div>вот тут бы pipelining между nginx и php fastcgi помог бы, но и то, ЗАЧЕМ он там?&nbsp;
</div><div>гораздо проще и надёжнее грамотно и красиво (а способов КУЧИ несметные) обработать ошибки 5ХХ и не заниматься извратом &nbsp;</div><div><br class="webkit-block-placeholder"></div><div>если проблема в другом, например пхп всегда в определённые границы времени вписывается, то начинается проблема с tcp стеком, ну вот хотим мы на одном сервере держать 8 к коннектов. но тут надо tcp нормально настроить (sysctl) и можно будет спокойно ждать нормальной реализации pipelining-а&nbsp;
</div><div><br class="webkit-block-placeholder"></div><br><blockquote class="gmail_quote" style="margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; кол-ву запросов в обработке бекендом. А не балансировать по
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; кол-ву<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; запросов вообще, как сейчас.<br>&gt;<br>&gt;<br>&gt; если только косвенно определить, сколько отдали запросов, сколько<br>&gt; получили, разница и будет показателем примерной загруженности
<br>&gt; если чего на бекенде не случится<br>Эта разница равна кол-ву запросов, которые бекенд обрабатывает в данный<br>момент, верно ?&nbsp;</blockquote><div><br class="webkit-block-placeholder"></div><div>примерно так (в штатной ситуации - точно так). точную цифру может сказать только сам бекенд, при условии, что он этим функционалом обладает&nbsp;
</div><div>&nbsp;</div><br>&nbsp;</div><br>