Комментарии 39
Хм, если там стоит кластер и явно мощности позволяют, то почему было не выставить ulimit для необходимых юзеров и демонов более чем в дефолтное значение?
Кстати, вы не подскажите как правильно выставить ulimit выше стандартного значения? Сейчас у меня стоит в rc.local: «ulimit -n 7000» (система — Debian 6). Заранее спасибо!
Маленький пиар=))
nwel.ru/?p=443
nwel.ru/?p=443
/etc/security/limits.conf
если не ошибаюсь
если не ошибаюсь
Потому что об этом никто не думал, и не проводил нагрузочное стресс-тестирование. Ваш КО.
так в том то и дело, что забыли!
> и лимит операционки (Enterprise RedHat, кстати)
У RHEL, как и у любого линукса данный лимит конфигрурабелен.
У RHEL, как и у любого линукса данный лимит конфигрурабелен.
> Архитектура системы такова:…
> farm8.staticflickr.com/7149/6688291425_033d2c2d65.jpg
мне кажется, на картинке не хватает либо ещё двух стрелочек, либо стрелочки размещены немного не там.
А то получается, что клиент рандомно коннектится либо к app либо к web серверу.
> farm8.staticflickr.com/7149/6688291425_033d2c2d65.jpg
мне кажется, на картинке не хватает либо ещё двух стрелочек, либо стрелочки размещены немного не там.
А то получается, что клиент рандомно коннектится либо к app либо к web серверу.
> Архитектура системы такова:…
> farm8.staticflickr.com/7149/6688291425_033d2c2d65.jpg
суть такова…
> farm8.staticflickr.com/7149/6688291425_033d2c2d65.jpg
суть такова…
Эти странные дефолтные лимиты в *nix системах. Уперется в 1024 открытых файловых дискрипторов даже для сайта на VPS не проблема, а на выделеном сервере с ресурсом средней популярности так вообще в этот лимит утыкается на раз, бъёшь себя кувалдой (да да, кувалдой, что бы наверняка уже запомнить), повышаешь, заодно пересматриваешь сетевые настройки TCP/IP — много где они из такой древности, что жуть.
в Cent OS 5.5 xinetd имеет ограничение в 50 соединений в минуту по-умолчанию
имел глупость поставить Firebird в Classic режиме (работает через xinetd)
эффекты потрясающие
имел глупость поставить Firebird в Classic режиме (работает через xinetd)
эффекты потрясающие
т.е. в секунду
instances = UNLIMITED
cps = 500 60
в конфиге защитит Птичку от жадного Супердемона :) Ещё можно почитать рекомендации Оракла по настройке параметров для их одноимённого сервера — там целая куча параметров задирается в такие значения…
cps = 500 60
в конфиге защитит Птичку от жадного Супердемона :) Ещё можно почитать рекомендации Оракла по настройке параметров для их одноимённого сервера — там целая куча параметров задирается в такие значения…
Если у вас так много коннектов в секунду — возьмите СуперКлассик.
Что такое СуперКлассик? Или супер сервер? я не в курсе :( научите.
Комментарий был xdenser-у и касался Firebird, коего есть 4 версии:
1) Супер — 1 процесс с нитями, работающими кооперативно (т.е. не совсем нити в нынешнем понимании). Хорош тем, что мало жрёт и страницы кэша общие для всех коннектов.
2) Классик — 1 коннект — 1 процесс. Подход древний как сам Юникс. У каждого процесса — свой кэш.
3) СуперКлассик — по нити на коннект, но нити работают в обычном понимании вытесняющей многозадачности. У каждого коннекта/нити — свой собственный кэш. В 3-ке должен быть общий кэш для всех.
4) Embed (встраиваимый) — по сути — работа с файлом БД напрямую, просто через библиотеку клиента. Кем будет — зависит от вашего приложения.
Для веба можно использовать всё из вышеперечисленного, но зависит от решаемой задачи — серебрянной пули не существует ;-).
1) Супер — 1 процесс с нитями, работающими кооперативно (т.е. не совсем нити в нынешнем понимании). Хорош тем, что мало жрёт и страницы кэша общие для всех коннектов.
2) Классик — 1 коннект — 1 процесс. Подход древний как сам Юникс. У каждого процесса — свой кэш.
3) СуперКлассик — по нити на коннект, но нити работают в обычном понимании вытесняющей многозадачности. У каждого коннекта/нити — свой собственный кэш. В 3-ке должен быть общий кэш для всех.
4) Embed (встраиваимый) — по сути — работа с файлом БД напрямую, просто через библиотеку клиента. Кем будет — зависит от вашего приложения.
Для веба можно использовать всё из вышеперечисленного, но зависит от решаемой задачи — серебрянной пули не существует ;-).
где 30 серверов и где один загнувшийся сквид. желтовато как-то заголовок. да и сквид-то не лёг по сути.
> Архитектура системы такова
Плохая архиктерура. Если один из фронтендов на squid приляжет отдохнуть, то 50% запросов будут отбиты.
Кроме того, непонятно, как обеспечивается HA в каждой географической точке.
За идею с медленным чтением спасибо — переписал на портабельный вариант с kevent/epoll ;)
Плохая архиктерура. Если один из фронтендов на squid приляжет отдохнуть, то 50% запросов будут отбиты.
Кроме того, непонятно, как обеспечивается HA в каждой географической точке.
За идею с медленным чтением спасибо — переписал на портабельный вариант с kevent/epoll ;)
Ну желтизной намеренно попахивает, соглашусь что звучит неочень как-то, но не придумал лучше. А сквид лег, или хакнул их запись в ЖЭКе и им отключили электричество — результат-то один: отказ в обслуживании. Причем у них много чего за сквидом было, SVN, базы, фронтэнд к почте.
Пардон, не туда ответил. С другой стороны всунуть новый сквид не проблема, добавь только дырку в файрволе. А как на географической точке — незнаю, не буду врать. А какая архитектура им подошла бы? Я совершенно не шарю в этом, ткни ссылкой, если долго писать.
покажи:)
покажи:)
Под OSX никто не компилировал еще?
Мораль истории проще IMHO — ребята не озаботились нагрузочным тестированием.
Так я писал это под OSX. компилится и работает отлично.
g++ и без хкода должен быть везде, нет? Хотя единственная депенденси — OpenSSL-devel. Куда послать бинарник?
оставил контакт в личных сообщениях
Вот g++ как раз ни на одной из моих трёх убунту/кубунту не было. Час репу чесал, думал почему не компилится :D
так вроде автомейк должен был разобраться и подставить нужный при конфигурации. Или он подставлял gcc, а им не компилится?
Интересно откуда autotools знает как в вашей системе поставить компилятор? ;)
Зачем ему это знать? Ему надо знать прописаны ли у вас CC, CXX, LINK. Если нет, то пытается определить то, что доступно. Так как я не пробовал прятать на своих системах g++, то не в курсе, может с gcc прога и не компилируется, что тем не менее странно.
В частности, если система выдерживает 10000 соединений в течении минуты, это не значит, что она выдержит 1000 соединений в течении 6 секунд, если жизнь соединений 6 секунд, например.
Вообще-то значит. Могу объяснить математически, если станет непонятно.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Завалить 30 серверов за секунду с лаптопа?