Echo Coser 1.0

топ 100 блогов lionet27.06.2011 Сегодня утром запустили наш специализированный HTTP сервер Coser на полную мощность.

Я рассказывал об этом сервере в посте «Заменяем Erlang на Си», говоря, что он делает 16,500+ HTTP/1.0 (non-persistent) запросов в секунду на половине одного ядра. В смысле, утыкается в амазоновскую сеть раньше, чем в CPU.

Так вот, после этого поста сервер вырос с 1500 до 7900 LOC, начал уметь HTTP/1.1 keep-alive, gzip и научился отдавать наши LiveUpdate запросы. LiveUpdate запросы периодически делаются виджетами комментариев на странице для того, чтобы подгрузить новые записи. Пока виджетами запросы на сервер делаются периодически (раз в несколько секунд), но в дальнейшем полностью уйдёт на COMET.

На HTTP/1.1+keep-alive сервер нельзя нагрузить несколькими десятками тысяч запросов — раньше сдыхают генераторы запросов (три сервера). Поэтому я пока нагрузочное тестирование до логического конца не доводил. Тем более, что пока мы работаем на старой версии Haproxy в качестве балансера, у которой нет Keep-Alive в сторону сервера. Будем менять Haproxy на новый — заодно и посмотрим.

Некоторые спрашивали про экономический эффект этой системы. Отвечаю. Четыре ядра с работающими на них Coser'ом, загруженных на 45%, убирают ~75% нагрузки с шестидесяти машин с Erlang'ом. То есть, экономия получается в 45*$(c1.medium) = $6.1k в месяц. Это на текущем трафике, который прямо сейчас есть. А ведь он более чем в два раза возрос за последний месяц!

Вот график загрузки одной из машин с Эрлангом:

Echo Coser 1.0

Больше чем в два раза убрана нагрузка в 15:00. Это в текущем релизе, в котором на Coser переброшены LiveUpdates. А при первом своём релизе Coser убрал тоже два раза с эрланговских боксов, когда начал обслуживать Counters. Отсюда цифра ~75% (сначала половину убрали, потом половину от оставшейся половины).

Прямо сейчас четыре ядра с косером (каждое загружено на 35-45%) обслуживают в сумме 700 мегабит в секунду трафика (480 down, 220 up) с суммарной скоростью 23560 запроса в секунду.

Косер поддерживает gzip-компрессию. Примерно 3.5% динамических ответов косера идут в сторону клиента сжатыми. Это в сумме 3188 запросов в секунду, 169 мегабит в секунду на этих четырёх половинках ядер.

Про gzip в серверах надо сказать отдельное спасибо Microsoft'у. Если вы не в курсе, зачем веб-сервера часто первые два килобайта ответа заполняют пробелами — посмотрите, приколитесь: http://support.microsoft.com/kb/312496.

Про поддержку ASN.1 в Erlange надо сказать отдельное спасибо команде-разработчикам эрланга. Эрланг не умеет парсить правильно значение 0.0 (ноль) в типе REAL. Смеялсо. Баг отослан: http://erlang.org/pipermail/erlang-bugs/2011-June/002486.html

Про поддержку ASN.1 в asn1c надо сказать мне, ибо я тоже там баг нашёл в парсинге REAL. Не смеялсо. https://github.com/vlm/asn1c/commit/0959f.

Оставить комментарий

Архив записей в блогах:
13:58:55 _DSC2334-2 Taken on February 22, 2023 Nikon D3100 ,18.0-55.0 mm f/3.5-5.6 ƒ/7.1 24.0 mm 1/200 200 Riga, the capital of the Republic of Latvia ...
«О каких дополнительных занятиях, кружках, секциях вы мечтали в детстве? Смогли реализовать мечту?»- спрашивает Евгения joe_alex ...
- Прежде чем начать с вами плотно работать, мне необходимо понять- кто вы в эзотерическом плане. - Очарованный стрелец, огненный пёс. - О! Независим по воле, ревнив по капризу, верен до конца. И вы ещё говорили, что сам не подарок. ...
Вероятностно подходить ко всему рационально.Может, так, а, может, эдак.Вероятность события - 90%, но, может, случиться то, вероятность чего, очень мала.Спроси лучших экспертов в январе 1917-го, что ждать в начале марта, вряд ли бы кто предсказал ...
Не скажу, чтобы Нью-Йорк был самым украшенным к Рождеству городом в мире. Скорее наоборот. Но все равно, этот день здесь очень особенный. В одной части пустые улицы, нарядные елки в окнах домов, семьи собравшиеся за праздничным столом и фургончик Федекс развозящий подарки. В другой ...