Pull to refresh
  • by relevance
  • by date
  • by rating

Что внутри высоконагруженных сервисов?

High performance *
По роду деятельности интересуюсь различными аспектами реализации высоконагруженных сервисов, тут возник вопрос, на чем же лучше всего делать сервис расчитанный на многомиллионный сайт. Правильный ответ конечно зависит от того кто его будет разрабатывать, то есть кто какой язык хорошо знает.

Но интересно было наткнуться на вот такую табличку, которая собственно показывает тенденции разработки highload структур.



Чуть попозже я сделаю такую же табличку для российских стартапов, думаю многим будет интересно на чем они работают.

Также кому интересна эта тема как и мне, рекоммендую периодически заглядывать на сайт
highscalability.com

п.с.спасибо что добрые люди подняли карму до 1, что позволило этот первый пост написать;)
п.с.2 какие то проблемы версткой.
Читать дальше →
Total votes 74: ↑70 and ↓4 +66
Views 506
Comments 72

What's all this fuss about Erlang?

Erlang/OTP *
Translation
by Joe Armstrong

Никто не в состоянии предсказывать будущее — но я сделаю несколько обоснованных предположений.

Предположим, что Intel правы, что их проект Keifer выстрелит. Если это случится, то 32-х ядерные процессоры появятся на рынке не позже 2009-2010.

Ничего удивительного здесь нет. Sun уже продает восьмиядерные Niagara с 4-мя «hyperthreads» на каждом ядре, что эквивалентно 32-ум ядрам.

Это разработка, которая осчастливит программистов на Erlang. Они 20 лет ждали этого события, и теперь настало время расплаты.

Хорошие новости для Erlang-программистов:

На N-ядерном процессоре ваша программа будет работать в N раз быстрее.

Читать дальше →
Total votes 77: ↑73 and ↓4 +69
Views 2.8K
Comments 271

Обслуживание тысяч запросов в секунду на примере XBT Tracker

Server optimization *
Недавно проводили тест, результаты которого показали, что одно приложение обрабатывает 2000 запросов в секунду на скромном сервере, где это было не единственной нагрузкой. При этом результат каждого запроса записывается в 3-5 таблиц в MySQL. Честно говоря, меня такой результат удивил, поэтому решил поделиться с хабрасообществом описанием архитектуры этого приложения. Подобный подход применим от баннерных показов до чатов и микроблогов, надеюсь кому-нибудь покажется интересным.

Во-первых, это приложение однопоточное. Всё делается одним процессом, работа с сокетами — неблокирующими epoll/select, никаких ожидающих ввода/вывода потоков (threads). С развитием HTTP, сначала появлением Keep-Alive, затем AJAX и набирающим популярность COMET, количество постоянных соединений с веб-сервером растёт, на нагруженных проектах измеряется тысячами и даже десятками тысяч, и если для каждого создавать свой поток (thread) со своим стеком и постоянно переключаться между ними — ресурсов сервера очень быстро не хватит.

Второй ключевой момент — что один SELECT… WHERE pk in (k1, k2, ..., kN) выполняется быстрее, чем несколько SELECT… WHERE pk=… Выполняя работу с базой данных большими пачками можно уменьшить не только число запросов в секунду, но и общую нагрузку.
Читать дальше →
Total votes 69: ↑67 and ↓2 +65
Views 7.1K
Comments 41

Twidiko — публикуем видео в твиттере

Social networks and communities

Короткие видеосообщения


Еще одно применение вашим микрофону и камере. Наш сервис позволяет публиковать короткие аудио- и видеосообщения в твиттере. Все происходит прямо в браузере и дополнительные плагины не нужны.


Так это выглядит в браузере

Осталось только потрогать!
Total votes 60: ↑47 and ↓13 +34
Views 1.4K
Comments 16

А что вы знаете о высоких нагрузках?

ITmozg corporate blog Website development *Programming *

Во всем мире подозревают, что лучшие разработчики, архитекторы, системные администраторы и другие IT-специалисты родом из России.

Было создано много крутых highload проектов, но, к сожалению, сейчас у нас нет комьюнити, где бы мы могли постоянно собираться, общаться и делиться опытом.
С другой стороны у нас очень многие любят писать свои «велосипеды», а не использовать уже готовые решения, которые позволяют сильно сократить время на разработку и внедрение.
Поэтому мы решили постепенно исправлять данную ситуацию:
ITmozg.ru организует конференцию по высоконагруженным системам High Performance Conference.
Своим опытом будут делиться Гуру, которые не понаслышке знают о высоких нагрузках:

  • Badoo
  • Mail.ru Group
  • ITmozg.ru
  • Фотострана




Читать дальше →
Total votes 75: ↑62 and ↓13 +49
Views 25K
Comments 77

Как мы перешли с 30 серверов на 2: Go

High performance *Go *
Translation

Как мы перешли с 30 серверов на 2: Go


Когда мы выпустили первую версию IronWorker около 3 лет назад, она была написана на Ruby, а API было написано на Rails. Через некоторое время нагрузка стала быстро расти и мы быстро достигли предела возможностей наших Ruby приложений. Короче говоря, мы перешли на Go. И если вы хотите узнать подробности — продолжайте читать…
дальше
Total votes 134: ↑116 and ↓18 +98
Views 68K
Comments 275

Highload Dev Conf'2015 прошла 17 октября в Минске

Ruby *PHP *Java *.NET *Big Data *
17 октября прошла ежегодная брутальная конференция Highload Dev Conf.
Участниками стали более 300 суровых разработчиков, которым интересны высоконагруженные проекты и BigData.

image
Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Views 4.8K
Comments 3

Стресс-тест GPU NVidia на транскодинге живых потоков

Working with video *Video cards
Ниже — подробный рассказ о том, как мы нагрузили карту от NVidia задачами транскодирования видео для его потоковой передачи. Покажем, что попробовали, что получилось, и как лучше всего использовать видеокарты для стриминга в онлайне.
Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Views 15K
Comments 41

12.3 million of concurrent WebSockets

High performance *C++ **nix *Lua *
Recovery mode

One thing about WebSockets is that you need a lot of resources on the client's side to generate high enough load for the server to actually eat up all the CPU resources.


There are several challenges you have to overcome because the WebSockets protocol is more CPU demanding on the client's side than on the server's side. At the same time you need a lot of RAM to store information about open connections if you have millions of them.


I've been lucky enough to get a couple of new servers for a limited period of time at my disposal for the hardware "burnout" tests. So I decided to use my Lua Application Server — LAppS to do both jobs: test the hardware and perform the LAppS high load tests.


Read more →
Total votes 6: ↑3 and ↓3 0
Views 7.9K
Comments 0

Почему может понадобиться полусинхронная репликация?

OTUS corporate blog High performance *Website development *Industrial Programming *Distributed systems *
Всем привет. На связи Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. В преддверии старта нового потока курса «Архитектор высоких нагрузок» я решил написать небольшой авторский материал, которым хочу поделиться с вами.




Введение


Из-за того, что на HDD может выполняться лишь порядка 400-700 операций в секунду (что несравнимо с типичными rps'ами, приходящимися на высоконагруженную систему), классическая дисковая база данных является узким горлышком архитектуры. Поэтому необходимо уделить отдельное внимание паттернам масштабирования данного хранилища.

На текущий момент имеются 2 паттерна масштабирования базы: репликация и шардирование. Шардирование позволяет масштабировать операцию записи, и, как следствие, снижать rps на запись, приходящийся на один сервер вашего кластера. Репликация позволяет делать тоже самое, но с операциями чтения. Именно этому паттерну и посвящена данная статья.
Читать дальше →
Total votes 15: ↑13 and ↓2 +11
Views 3.1K
Comments 5

Как мы тестировали корпоративный портал «1С‑Битрикс24: Enterprise»: 30 тысяч пользователей одновременно

1С-Битрикс corporate blog High performance *IT systems testing *

Решения для больших компаний обычно должны выдерживать высокие нагрузки. 

Когда в штате много десятков тысяч человек, и значительная доля из них ежедневно пользуются какими-либо приложениями и системами, эти продукты становятся критически важными для компании. К ним предъявляются высокие требования по производительности и отказоустойчивости. В том числе и при пиковых нагрузках. С переходом на удалённую работу количество и важность подобных систем лишь возросли. 

Недавно мы вместе с Selectel провели нагрузочное тестирование корпоративного интранет-портала «1С-Битрикс24» в редакции Энтерпрайз. Хотим рассказать, как мы это делали и какие получили результаты.

Читать далее
Total votes 26: ↑25 and ↓1 +24
Views 5.3K
Comments 23

Все еще измеряете latency в персентилях?

High performance *System Analysis and Design *Distributed systems *
Sandbox

Latency - очевидная метрика, приходящая на ум почти всегда, когда дело доходит до мониторинга наших сервисов. Будь это простой контроллер, воркер, вычитывающий ивент из очереди, или сервис, делающий бэкап вашей монги — любой логический кусок кода, перформанс которого для нас важен. Рассмотрим простой пример: у вас есть сервис, принимающий запросы от пользователей и возвращающий на UI необходимые данные. Если этот сервис в продакшне и вы уже достаточно зрелый проект, вполне вероятно, что вы уже настроили метрики и мониторите их. А может даже настроили алерты, pagerduty, назначили on-call инженеров, отчитываетесь за выполнение своих SLA раз в месяц. Почти наверное один из алертов у вас будет на latency этого сервиса. И я попробую угадать - вы используете персентили в качестве статистики.

Угадал? А что если я скажу, что это не лучший вариант? Что если я пойду дальше и буду утверждать, что персентили могут скрывать серьезные изменения в latency после очередного деплоя?

Ну-ка, удиви
Total votes 9: ↑7 and ↓2 +5
Views 2K
Comments 7