Рубрика «высокая производительность» - 148

Суперкомпьютер Watson обучили ставить диагнозы пациентам и тренировать студентов медиков

Еще несколько лет назад суперкомпьютер Watson (IBM) отправили на обучение, если так можно выразиться, в Кливлендскую клинику. Все это делалось с целью создания надежного инструмента, позволяющего ставить диагнозы пациентам. Возможно, способности суперкомпьютера не будут использоваться для того, чтобы без участия врача ставить диагноз, но для обучения студентов-медиков проект уже используется. К слову, IBM осуществляет сразу два проекта в медицинской сфере (с участием этого суперкомпьютера): WatsonPaths и Watson EMR Assistant.

Читать полностью »

Я упомянул, что разработал балансировщик на Go, хотя есть мнение, что фронтендом должен быть ngnix.

У меня есть такое чувство, что в комментах люди бывает фантазируют, о чем угодно. Возможно кто-то думает, что и я брешу и нет балансировщика на Go. Поэтому, я решил выложить код балансировщика сразу. Этот код был написан в “особой ситуации” за 4 часа, и потом работал примерно в такой форме 2 недели без перегрузки так, как “все” были в Греции. Код не красив и даже содержит ошибки, но так как он работал и балансировал, то уже чего то стоит.

Под катом почти оринальный скорописный балансировщик. Я убрал оригинальные константы и код декодирования кук.
Читать полностью »

Как мы мигрировали миллионные страны за рабочий день Badoo — крупнейшая в мире социальная сеть для знакомств с новыми людьми, насчитывающая 190 миллионов пользователей.
Все данные хранятся в двух дата-центрах — европейском и американском. Некоторое время назад мы исследовали качество интернет-соединения у наших пользователей из Азии и обнаружили, что для 7 миллионов пользователей наш сайт будет загружаться в 2 раза быстрее, если мы переместим их из европейского дата-центра в американский. Перед нами впервые встала задача крупномасштабной миграции данных пользователей между дата-центрами, с которой мы успешно справились: мы научились перемещать 1,5 миллиона пользователей за один рабочий день! Мы смогли перемещать целые страны! В первой части мы подробно расскажем о поставленной перед нами задаче и о том, какого результата мы достигли.
Читать полностью »

Если вам интересно, какой недочёт есть во всех вебприложениях на языке Go размещенных на хабре. И хотите знать, как сделать своё Go вебприложение на один шаг ближе к production ready, то добро пожаловать по кат.
Читать полностью »

В прошлой статье речь шла о том, как Big Data вообще и продукты LSI в частности позволяют предсказывать погоду, и почему это так важно. С момента выхода той статьи произошло одно интересное событие, подтверждающее важность затронутой темы. Всем известная компания Monsanto, мировой лидер биотехнологии растений приобрела компанию The Climate Corporation из Сан-Франциско за 930 миллионов долларов, последняя как раз занимается анализом «больших данных» связанных с погодой и климатом. По словам СЕО Monsanto: «Climate Corporation фокусируется на том, чтоб предоставить сельскому хозяйству больше возможностей за счет науки обработки данных». Но, разумеется, не одними только прогнозами состояния атмосферы полезны для нас «большие данные», давайте рассмотрим еще пару интересных применений.

Каждый год, в конце осени — начале зимы, мы все с определенной покорностью ожидаем начала неизбежной эпидемии гриппа. Несмотря на относительную «безопасность» этой болезни, часто она способна дать огромные осложнения, а ежегодное число жертв по всему миру по данным ВОЗ составляет от 250 до 500 тысяч человек.

Большие данные — неотъемлемая часть нашей жизни
Читать полностью »

В прошлом году Америке не слишком повезло – в конце октября на нее обрушился тропический ураган Сэнди – восемнадцатый атлантический циклон с женским именем и неженским характером. Не соврем, если скажем, что запомнился он жителям всей планеты, хотя и не был самым мощным в истории человечества – тому виной вышедший ранее на большие экраны фильм-катастрофа «2012», в котором предсказания индейцев Майя о конце света, который якобы должен наступить именно в 2012 году, трактовались весьма однозначно: мир погибнет от сильнейших землетрясений и цунами. И вот, события фильма стали разворачиваться в режиме реального времени, и наблюдать за этим страшно было даже по телевизору – что уж говорить о жертвах и свидетелях разбушевавшейся стихии.Читать полностью »

Производительность фронтэнда. Часть 2 — кешируем динамический контент с помощью etagifyОт переводчика: Это шестая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.


Возможно, вам известно, что Connect ставит ETag-и на статический контент, но не динамический. К сожалению, если вы динамически генерируете локализованные версии статических страниц, они не кешируются вообще, если только вы не решите генерировать их все заранее, на стадии сборки проекта. Этого вполне можно избежать.

Эта статья посвящена etagify — модулю middleware для Connect, который генерирует ETag-и на лету на основе MD5-хешей ответов, и хранит эти хеши в памяти. Etagify избавляет от лишней рутины при сборке проекта, предельно прост в использовании и увеличивает производительность больше, чем можно было бы ожидать (в своих тестах мы получили ускорение загрузки страниц на 9%):

myapp = require('express').createServer();
myapp.use(require('etagify')());
...
app.get('/about', function(req, res) {
  res.etagify(); 
  var body = ejs.render(template, options);
  res.send(body);
});

Читать полностью »

Пишем сервер, который не падает под нагрузкойОт переводчика: Это пятая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.


Как написать приложение Node.js, которое будет продолжать работать даже под невозможной нагрузкой? В этой статье показана методика и библиотека node-toobusy, её воплощающая, суть которой наиболее кратко может быть передана этим фрагментом кода:

var toobusy = require('toobusy');
 
app.use(function(req, res, next) {
  if (toobusy()) res.send(503, "I'm busy right now, sorry.");
  else next();
});

В чём заключается проблема?

Если ваше приложение выполняет важную задачу для людей, стоит потратить немного времени на раздумья над самыми катастрофичными сценариями. Это может быть катастрофа в хорошем смысле — когда ваш сайт попадает в фокус внимания социальных медиа, и вместо десяти тысяч посетителей за сутки к вам вдруг приходит миллион. Подготовившись заранее, вы можете создать сайт, который выдержит внезапный всплеск посещаемости, превышающий обычную нагрузку на порядки. Если же этими приготовлениями пренебречь, сайт ляжет именно тогда, когда вы меньше всего этого хотите, когда он у всех на виду.

Это может быть и злонамеренный всплеск трафика, например от DoS-атаки. Первый шаг к борьбе с такими атаками — написание сервера, который не падает.
Читать полностью »

Представьте, что вы можете выступить спонсором какого-нибудь захватывающего спортивного мероприятия. Чемпионата мира по футболу, например, или соревнований по синхронному плаванью. Было бы круто, правда? А нам, кстати, тоже есть чем похвастаться: Dell официально поддерживает команду «Формулы-1» Caterham. Ну, а кто с детства не мечтал поучаствовать в гонках или хотя бы посидеть за рулем настоящего болида? Тем более, что скорость для нас не в диковинку – все знают, какими шустрыми бывают сервера Dell: ) Читать полностью »

Охотимся за утечками памяти в Node.js (1 я из 12 статей о Node.js от команды Mozilla Identity)От переводчика: Это первая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona. Как клиентская, так и серверная часть Persona написаны на JavaScript. В ходе работы команда проекта создала несколько инструментов на все случаи жизни — от локализации до отладки, управления зависимостями и многого другого. В этой серии статей разработчики Mozilla делятся с сообществом своим опытом и этими инструментами, которые пригодятся любому, кто пишет высоконагруженный сервис на Node.js.

Первая статья цикла посвящена распространённой проблеме Node.js — утечкам памяти, особенностям утечек в высоконагруженных проектах и библиотеке node-memwatch, которая помогает найти и устранить такие утечки в Node.


Зачем заморачиваться?

Вы можете спросить, зачем вообще отслеживать утечки памяти? Неужели нет более важных дел? Почему бы просто не перезапускать процесс время от времени, или просто добавить памяти на сервер? Есть три причины, по которым устранять утечки всё-таки важно:

  1. Возможно, вы не сильно переживаете об утечках памяти, но этого нельзя сказать о V8 (движок JavaScript на котором работает Node). Чем больше памяти занято, тем активнее работает сборщик мусора, замедляя ваше приложение. Так что в Node утечки напрямую вредят производительности.
  2. Утечки могут привести к другим проблемам. Протекающий код может блокировать ограниченные ресурсы. У вас могут закончиться файловые дескрипторы или вы вдруг не сможете открыть ещё одно соединение с БД. Такие проблемы могут возникнуть задолго до того, как кончится память, но обрушат ваше приложение ничуть не хуже.
  3. Рано или поздно ваше приложение упадёт. И это наверняка случится во время наплыва посетителей. Вас все засмеют и будут писать про вас гадости на Hacker News.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js