Как стать автором
Обновить
0
0
Александр @Alexandrbor

Пользователь

Отправить сообщение

Go Channels Internals

Время на прочтение12 мин
Количество просмотров25K
На Go можно реализовать тысячи goroutine одновременно без больших требований к железу. При этом горутины могут легко и просто обмениваться данными между собой и синхронизироваться с помощью каналов. Но как устроены каналы внутри? Об этом написано не так уж много, а в условиях многопоточки и асинхронного кода хорошо бы не просто работать с каналами, а понимать, как их использовать более практично и эффективно.

Егор Гришечко, старший разработчик в Insolar, разрабатывает блокчейн для b2b сегмента (по сути, стартап), и у команды как раз большая многопоточка и много асинхронного кода. Егор не только разобрался на практике, как работают каналы, что это такое и как они вообще устроены внутри. Он еще рассказал о каналах внутри команды, а потом, увидев интерес, поделился на конференции Golang Conf 2019.

Сегодня мы публикуем расшифровку его доклада.


Читать дальше →
Всего голосов 30: ↑29 и ↓1+40
Комментарии2

Масштабируем WebSocket соединения на Go

Время на прочтение21 мин
Количество просмотров32K
Мессенджер Авито – это:

  • 12 m уникальных пользователей в месяц;
  • Версии для всех современных платформ (Web, iOS, Android);
  • Достаточно нагруженное приложение – около 800 тысяч подключений онлайн по WebSocket (основной протокол общения с пользователями).

Александр Емелин из компании Авито — автор проекта Centrifugo — open-source сервера real-time сообщений, где основной протокол передачи данных как раз WebSocket. Сервер используется в проектах Mail.Ru (в том числе в Юле), а также во внутренних проектах Badoo, ManyChat, частично Авито и за рубежом (например, Spot.im). Сейчас сервер базируется на доступной всем Go-разработчикам библиотеке Centrifuge.

На конференции Golang Conf 2019 Александр рассказал, как команда Авито решала проблемы при работе с WebSocket — как про детали, касающиеся Go в частности, так и вообще про работу с большим количеством постоянных соединений.


Читать дальше →
Всего голосов 40: ↑39 и ↓1+49
Комментарии1

Пресбиопия: «климакс» глаз у мужчин и женщин

Время на прочтение10 мин
Количество просмотров128K

Первые симптомы — ухудшение зрения вблизи. Объекты при близком рассмотрении расплываются. Женщина с трудом справляется с маникюром. Мужчина едет на рыбалку и там понимает, что червяка он насаживает с трудом. А при этом дальнее зрения как бы не изменилось. Традиционно это состояние называют «болезнью коротких рук» — вроде и зрение хорошее, а вот длины рук не хватает для четкости вблизи. Это у тех, кому за 40.

Это — пресбиопия. С возрастом зрение человека в плане легкости фокусировки на разные расстояния ухудшается. Точные причины такой «амортизации» зрительного аппарата ещё исследуются: известно, например, что этот механизм работает только у высших приматов. У собак и кошек пресбиопии нет, у обезьян есть. Кстати, отчасти поэтому пресбиопию сложно изучать: для исследования динамической рефракции (аккомодации) нужен живой объект.

Хрусталик уплотняется и становится менее эластичным, страдает связочный аппарат, мышцы теряют способность действовать как раньше – возникает пресбиопия. До недавнего времени единственно верной признавалась теория аккомодации немецкого врача Гельмгольца, выдвинутая еще в 19 веке, которая затрагивает только хрусталик и его связочный аппарат, но более свежие исследования говорят, что участвуют все структуры глаза – роговица, стекловидное тело и даже сетчатка. Итог пресбиопии — утрата возможности аккомодировать, то есть способности рассматривать объекты на разные расстояния без дополнительной коррекции.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии63

Как правильно мерять производительность диска

Время на прочтение14 мин
Количество просмотров340K
abstract: разница между текущей производительностью и производительностью теоретической; latency и IOPS, понятие независимости дисковой нагрузки; подготовка тестирования; типовые параметры тестирования; практическое copypaste howto.

Предупреждение: много букв, долго читать.

Лирика



Очень частой проблемой, является попытка понять «насколько быстрый сервер?» Среди всех тестов наиболее жалко выглядят попытки оценить производительность дисковой подсистемы. Вот ужасы, которые я видел в своей жизни:
  • научная публикация, в которой скорость кластерной FS оценивали с помощью dd (и включенным файловым кешем, то есть без опции direct)
  • использование bonnie++
  • использование iozone
  • использование пачки cp с измерениема времени выполнения
  • использование iometer с dynamo на 64-битных системах


Это всё совершенно ошибочные методы. Дальше я разберу более тонкие ошибки измерения, но в отношении этих тестов могу сказать только одно — выкиньте и не используйте.

Как мерять правильно
Всего голосов 151: ↑145 и ↓6+139
Комментарии164

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность