11.01.2011, 09:53 | #11 |
Мне повезёт!
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 281
|
boric, нет, там есть опция brust.
Настроить так, чтобы статика шла без ограничения. А те разделы, которые выкачиваются - 1 запрос одновременно + brust до 2-5 запросов. Тогда если к динамике будет больше 1 запроса, то последующие будут за ним как бы становиться в очередь, и обрабатываться друг за другом таким образом, что к бекенду одновременно будет идти не больше 1 запроса.
__________________
If it's not great, it's not the end. |
14.01.2011, 18:10 | #13 |
Эксперт
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 254
|
poiuty,
Alexey, Наконец нашел время и поставил на тестовую машину nginx. Понравилось. Буду использовать limit_req, но надо подумать, какую частоту и burst ставить. В общем буду nginx ставить. Нагрузка растет, рано или поздно все равно пришлось бы ставить. По-любому, разруливать такие ситуации лучше перед апачем. |
16.01.2011, 13:48 | #14 |
Эксперт
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 254
|
В общем поставил nginx фронтэндом на боевых серверах.
Правда пришлось повозиться. В пакетах дебиан nginx древней шестой версии, которая не поддерживает нужные мне лимиты. Ставить на боевом сервере средства разработки и компилить из исходников свежую версию - не комильфо. Делать свой пакет тоже не стал ибо серверов у меня всего два. Сделал проще - на тестовом дебиане в virtualbox-е установил из исходников свежую версию nginx, и получившуюся папку (/usr/local/nginx) тупо скопировал на серверы. Первый день - полет вроде нормальный. Лимиты пока выставил такие: limit_req_zone $binary_remote_addr zone=delay_zone1:20m rate=5r/s; limit_req zone=delay_zone1 burst=50; Потестил. С двух разных серверов одновременно запустил: ab -n 1000000 -c 50 "http://..." раньше с апачем были бы проблемы, а сейчас хорошо - средняя нагрузка меньше 1, с других ip страницы открываются быстро и беспроблемно. Еще раз всем спасибо. |
16.01.2011, 14:05 | #15 |
Мне повезёт!
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 281
|
Уху, нгинкс ролет Только лимит можно было поставить не на весь сервер, а на динамику.
Т.е. на динамику проксируемую лимит пожестче, типа rate=3r/s, brust=7, а на статику наоборот послабей, т.к. статика отдается в обход апача самим нгинксом, и ее не особо жалко, там и тыщу подключений проглотит - не поперхнется.
__________________
If it's not great, it's not the end. |
16.01.2011, 14:52 | #16 | |
Эксперт
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 254
|
Alexey,
Цитата:
Я сначала на более слабом сервере потестил под большой нагрузкой (скачка страниц в 70 потоков). С rate=5r/s он работал нормально, с rate=10r/s стал загибаться. Поэтому оставил rate=5r/s и на слабом и на более мощном сервере. На сервере помощнее загрузка с двух ip по 50 потоков никак практически не отражается. Апач бы уже сильно тормозил бы. В общем я доволен. |
|
16.01.2011, 15:27 | #18 | |
Эксперт
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 254
|
Alexey,
Цитата:
Я там еще полезные варианты использования для себя увидел. Похоже с его помощью можно распределять запросы по разным серверам. Например /search/ перенаправлять на отдельный поиковый сервер, который жрет много ресурсов, но не столь критичный (например, я его временно дома могу держать. Если будут перебои, то это не критично). |
|
16.01.2011, 15:30 | #19 |
Мне повезёт!
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 281
|
Да, можно многое, и не только это Но подобные фичи востребованы для реально нагруженных проектов, а не сайтов.
__________________
If it's not great, it's not the end. |
22.01.2011, 15:22 | #20 |
Эксперт
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 254
|
Что-то штормит сегодня - load average временами до 15 доходит, хотя в среднем около 1.0. Снизил rate до 2, а burst до 20. Вроде LA больше 5.0 не становился пока.
Основная нагрузка приходится на БД. Наверно пора кеширование включать. В принципе у меня большинство страниц и так быстрые (<0.1 сек), правда есть несколько больших списков, которые требуют около 1 сек на открытие, но к ним не должно быть частого обращения, хотя надо будет уточнить. Также индексы в БД проверю. Возможна связано с АПом яндекса - по рейтингу LI сегодня в топ5 поднялся. А сегедня суббота, надо готовиться к понедельнику. Сегодня понаблюдаю еще малек и включу кеширование и сравню нагрузку. Пока написал скриптик, который каждые 5 мин проверяет загрузку и при превышении порога отсылает email. Кому интересно, вот код: Код:
import smtplib from email.mime.text import MIMEText import os def mail(mailto, mailfrom, subject, message): msg = MIMEText(message) msg['Subject'] = subject msg['From'] = mailfrom msg['To'] = mailto s = smtplib.SMTP('localhost') s.sendmail(mailfrom, [mailto], msg.as_string()) s.quit() avg = os.getloadavg() if avg[1] > 2.0: mail('boris@site.ru', 'boris@site.ru', 'Load Average: %f, %f, %f' % avg, 'Load Average: %f, %f, %f' % avg) |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как уменьшить нагрузку на хостинг | Kiparis | Вопросы по работе системы | 18 | 06.10.2010 10:48 |
Как определить, какую нагрузку на сервер создаёт сайт? | Штрафная РОТА | Общие вопросы оптимизации | 14 | 05.05.2010 16:26 |
Как уменьшить нагрузку на сайт? | kamar87 | Вопросы по работе системы | 6 | 08.11.2009 14:17 |
Как уменьшить нагрузку на сервак? двиг Джумла. | Maniak | Разработка и сопровождение сайтов | 11 | 23.04.2009 17:45 |
Sape создает нагрузку на сервер | websar | Вопросы по работе системы | 20 | 28.08.2008 20:05 |
Часовой пояс GMT +3, время: 19:38.