Как стать автором
Обновить
85.63

Высокая производительность *

Методы получения высокой производительности систем

Сначала показывать
Порог рейтинга
Уровень сложности

Кризис концепций стартапов и веры в туземун. Медленное развитие как альтернатива

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 2.1K

Все, что написано ниже – субъективный опыт, пропущенный через призму череды жизненных ситуаций. Медленное развитие, как концепция, достаточно спорный предмет для обсуждений, но не лишенный смыслов. Рекомендую его рассмотреть, как инструмент сохранения гибкости и системности. Особенно в контексте исторических событий, через которые продирается человечество последние лет пять.

Читать далее
Всего голосов 22: ↑18 и ↓4 +14
Комментарии 14

Новости

Ускоряем Go: известные и не очень методы оптимизации и связанные с ними штуки

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 4.5K

Привет, Хабр)

В этой статье хотел бы поделиться приёмами, которые позволяют повысить производительность Golang-кода. Некоторые из этих вещей довольно известные и их могут делать за вас линтеры, например go-critic, noctx (эти 2 касаются defer и отправки запросов без контекста).

Обсудим:

простые правила, которые не стоит забывать

мифы о производительности в духе "А я слышал, что X повышает скорость на Y%"

более интересные штуки, типо замены switch на map, проведём пару тестов, поэкспериментируем

Ну и помним, что преждевременная оптимизация — корень всех зол, не стоит сразу пытаться писать скоростной код, это может быть не так просто.

Поехали!

Читать далее
Всего голосов 17: ↑13 и ↓4 +9
Комментарии 14

Как мы управляем инфраструктурой на более 1000 серверов при помощи Ansible

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 11K

Привет, Хабр! Мы системные инженеры X5 Tech — Алексей Кузнецов и Борис Мурашин. У нас за плечами больше 15 лет опыта, в том числе поддержка сервисов Rapida, CyberPlat, TeleTrade, сопровождение стека BigData и внедрение кластеров Hadoop. В этой статье мы расскажем, как выбирали систему управления конфигурациями, какими критериями руководствовались, что в итоге выбрали, с какими проблемами столкнулись и как их решали.

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

Читать далее
Всего голосов 33: ↑33 и ↓0 +33
Комментарии 19

Команда нагрузочного тестирования? Дайте две! Почему иногда подрядчик бонусом к внутренней команде — это хорошая идея

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 1K

Привет! Меня зовут Юля Шамина, я руководитель IT-проектов в СберМаркете. Хочу поделиться нестандартным по всем меркам кейсом, как мы подготовили наши сервисы к высоким предновогодним нагрузкам за 3 месяца благодаря челленджу внутренней команды нагрузочного тестирования. 

Эта статья не про успешный успех, а про то, как и зачем привлекать подрядчика, если вопросом уже занимается внутренняя команда.  А ещё про страх неизвестности, мучительную настройку процессов и то, как в конце концов показать высокие результаты в сжатые сроки с минимальным количеством факапов.

Если бы можно было описать этот проект одной цитатой — «Это было смело, чертовски смело!»

А теперь по порядку. Расскажу,  как мы пришли к тому, что нам понадобился подрядчик, и что вообще это за проект.

Читать далее
Всего голосов 15: ↑11 и ↓4 +7
Комментарии 4

Истории

Эффективное обновление состояний в БД из сервисов потоковой обработки событий

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 1.9K

Как хранить сложные сущности в БД? Что нужно сделать, чтобы не перезаписывать весь рекламный баннер для обновления одного лишь заголовка? Рассмотрим как минимум 5 независимых и взаимно совместимых идей для многократного снижения нагрузки на чтение и запись подобных объектов.

Меня зовут Юрий Печатнов, я уже 6 лет работаю в Яндексе и занимаюсь сервисами потоковой обработки. Это большие распределенные системы, читающие сообщения из большой распределенной очереди и создающие полезный выход. Полезным выходом могут быть сообщения в другой распределенной очереди и/или обновление состояний в БД. Поговорим о том, как их эффективно обновлять.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 9

Оптимизация операционных систем

Уровень сложности Простой
Время на прочтение 19 мин
Количество просмотров 9.8K

Приходилось ли вам загружать операционную систему с механического жёсткого диска в начале 2 декады XXI века? Вероятно, то ещё удовольствие...

И тем не менее, накопители SSD объёмом от 1 Тб всё ещё весьма недёшевы, менее 1 Тб не всегда удобны для хранения значительного объёма используемых программ, перевод ПО большого объёма на дополнительный HDD не всегда удобен, а гибридные накопители всё ещё имеют только необходимый минимум SSD кэша, не всегда достаточный для скоростного доступа как к файлам ОС, так и к файлам регулярно используемого ПО и часто открываемых документов. А если эти документы совсем не текстовые, а графические или редактируемые видеоролики - их открытие снова упрётся в быстродействие вашего дешёвого и надёжного HDD. И хотя HDD и близко не сравнится по своему быстродействию со своим значительно более дорогим конкурентом SSD, ситуацию всё же можно немного улучшить, а затем регулярно поддерживать в состоянии, далёком от катастрофического. Тем более, что и срок службы HDD всё ещё заметно выше, чем SSD.

Попробуем разобраться, что для этого нужно, на примере трёх разных семейств операционных систем - MacOS, Linux и Windows.

Далее
Всего голосов 7: ↑4 и ↓3 +1
Комментарии 35

Выгорание, прокрастинация и все остальное

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 12K

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

Данный текст отвечает на два вопроса:

Читать далее
Всего голосов 26: ↑14 и ↓12 +2
Комментарии 71

Hadoop в Облаке: история миграции сотен петабайт

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 3.1K

Миграция с «железа» в облако в большинстве случаев уже не кажется чем-то сложным или удивительным — тенденция на развертывание решений в облаке общая и устоявшаяся. Но если с переносом в облачную среду небольших ИТ-компонентов все просто, то в случае с глобальными системами на сотни петабайт данных все несколько иначе — такие кейсы встречаются редко. 

Меня зовут Михаил Марюфич. Я руководитель Data Platform в ОК, отвечаю за инфраструктуру для Big Data и машинного обучения. В этой статье я расскажу о нашем опыте переноса Hadoop с Bare Metal в облако: с чего стартовали, какие варианты рассматривали, как выстроили миграцию и с чем сталкивались в процессе.

Читать далее
Всего голосов 29: ↑29 и ↓0 +29
Комментарии 4

Оценка потенциальной производительности информационных систем на задачах OLTP

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

Все мы сегодня наблюдаем неприятное явление деградации эффективности ПО. Эффективность проседает во всём, от неэффективного пользовательского интерфейса и до того, в чём компьютеры, вроде бы, просто обязаны быть самыми быстрыми, то есть в массовых задачах повседневной обработки информации.

Решение задачи повышения производительности ПО не может быть получено без понимания, а на что мы в принципе можем рассчитывать? Именно такую отправную точку и предлагается рассмотреть в данном тексте.

Далее показаны потенциальные возможности ПО на самых массовых на сегодня задачах, заключающихся во взаимодействии оператора с информационными системами. Англоязычное название этой группы задач - on-line transaction processing (OLTP). К этому классу, в том числе, относится всё взаимодействие с браузером, которые представляют клиентскую часть системы. За кадром, невидимая для операторов, остаётся почти чистая задача параллельной обработки множества запросов.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 5

ТОП-20 тайм-трекеров, которые сделают работу вашей команды продуктивнее

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 2.3K

В сфере управления удаленными командами и работниками с почасовой оплатой труда, такими как программисты, бухгалтеры и специалисты службы поддержки, наблюдается рост популярности тайм‑трекеров. Разберемся в достоинствах этих средств и рассмотрим известные сервисы.

Читать далее
Всего голосов 13: ↑2 и ↓11 -9
Комментарии 3

Exception Handling: сквозь мультивселенные интероперабельности

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


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

Меня зовут Максим Кокряшкин, я занимаюсь поддержкой и расширением функциональности форка LuaJIT, интегрированного в Tarantool. В этой статье мы обсудим, как интероперабельность исключений помогает упростить обработку ошибок на стыках разных языковых рантаймов, а также посмотрим, как можно реализовать интероперабельность стандартными механизмами обработки исключений.
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Комментарии 0

Впихнуть невпихуемое, или Как мы боролись с сервисами, которые слишком много «ели»

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

Всем привет! Меня зовут Максим, я релиз-инженер Ozon, и в этой статье я расскажу про впихивание невпихуемого, или про оптимальную с точки зрения используемых ресурсов стратегию деплоя в Kubernetes, которая позволила нам сэкономить тысячи ядер CPU и терабайты RAM.

Читать далее
Всего голосов 28: ↑26 и ↓2 +24
Комментарии 6

Новые процессоры от Intel, AMD и видеокарты от Nvidia: что еще представили на CES 2024

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

В начале января 2024 года в Лас-Вегасе прошла выставка Consumer Electronics Show, CES. На ней собрались производители, дистрибьюторы, ритейлеры и потребители со всего мира, чтобы продемонстрировать инновации и достижения электроники, бытовой техники, компьютерных технологий.

Selectel следит за новинками в рамках выставки. Несмотря на то, что CES обычно ассоциируется с потребительской электроникой, мы используем некоторые модели оборудования в наших дата-центрах. А еще ищем идеи для серверных решений в сегменте enterprise. В этой статье — обзор на некоторые интересные новинки. Подробности под катом.
Читать дальше →
Всего голосов 46: ↑45 и ↓1 +44
Комментарии 3

Ближайшие события

Открытый урок «Behaviour Tree в Unity»
Дата 8 февраля
Время 19:00
Место
Онлайн

Как мы начали использовать виртуальные потоки Java 21 и на раз-два получили дедлок в TPC-C для PostgreSQL

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 14K

В этом посте мы расскажем о примере дедлока в TPC-C для PostgreSQL, причиной которого является исключительно переход на виртуальные потоки Java 21 - и никаких проблем обедающих философов.

Читать далее
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 31

Оптимизируя неоптимизируемое: ускорение компиляции C++

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 6.8K

В этой статье речь пойдёт о повышении скорости компиляции библиотеки {fmt} до уровня библиотеки ввода-вывода Cи stdio.

Дня начала немного теории. {fmt} – это популярная открытая библиотека С++, представляющая более эффективную альтернативу С++ библиотеке iostreams и библиотеке Си stdio. Последнюю она обошла по целому ряду аспектов:

  • Безопасность типов с проверками форматирующих строк во время компиляции. Эти проверки включены по умолчанию начиная с С++ 20, и присутствуют в качестве дополнения для С++ 14/17. Форматирующие строки среды выполнения в {fmt} также оказываются безопасными, чего невозможно достичь в printf.
  • Расширяемость. Определяемый пользователем тип можно сделать форматируемым. При этом большинство типов стандартных библиотек, например, контейнеры и пакеты для обработки даты и времени, предлагают возможность форматирования изначально.
  • Производительность. {fmt} намного быстрее любой распространённой реализации printf, порой на несколько порядков (например, в форматировании чисел с плавающей запятой).
  • Возможность переноса поддержки Unicode.

Тем не менее одной из областей, в которой stdio по-прежнему опережала {fmt}, являлось время компиляции.
Читать дальше →
Всего голосов 56: ↑55 и ↓1 +54
Комментарии 29

Nvidia выпустила три новых видеокарты и заявила о лидерстве в гонке систем AI PC. Что это за адаптеры?

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

Nvidia представила новые графические адаптеры в рамках стратегии развития AI PC. Три новые модели выпущены в рамках линейки GeForce RTX™ 40 SUPER Series, это GeForce RTX 4080 SUPER, GeForce RTX 4070 Ti SUPER и GeForce RTX 4070 SUPER. В начале января на выставке CES в Лас-Вегасе компания сообщила о том, что новые технологии помогут геймерам, дизайнерам и другим категориям пользователей эффективнее использовать возможности искусственного интеллекта на персональных компьютерах, не прибегая к помощи облачных сервисов. Подробности — под катом.
Читать дальше →
Всего голосов 34: ↑33 и ↓1 +32
Комментарии 19

Это просто праздник какой-то: две линейки процессоров Intel, новые GPU от AMD, платформы и российские серверы

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

Наша регулярная рубрика обзоров серверного железа продолжает свою работу — теперь в 2024. В этом выпуске рассмотрим устройства, представленные в декабре. Погрузимся в новые платформы, изучим новые диски и системы хранения данных. Уже присматриваете новое железо для своих серверов? Тогда добро пожаловать под кат! Подробности под катом!
Читать дальше →
Всего голосов 38: ↑37 и ↓1 +36
Комментарии 12

Петафлопс на петафлопсе: заработал суперкомпьютер MareNostrum 5 стоимостью в €202 млн. Что это за система?

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

Пару лет назад Китай анонсировал процессор Zhaoxin KX-6640MA, обычный x86-чип, не ARM и не RISC-V. Тогда же стало появляться большое количество новостей о скором выходе мини-ПК и ноутбуков на его базе. На Хабре сообщалось, что устройства доступны ограниченными партиями.

Сами чипы удалось протестировать лишь сейчас, и надо сказать, что результаты тестов не особо впечатляющие. Судя по GeekBench, производительность чипа из КНР примерно равна производительности процессоров от AMD 2011 года. Подробности — под катом.

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 4

Неожиданное взаимодействие предсказания ветвлений и подсистем памяти

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

Это 15-я статья в серии, посвящённая оптимизации подсистем памяти. Остальные доступны здесь (англ.).

В ней мы изучим взаимодействие механизма предсказания ветвлений с подсистемой памяти. В повествовании мы будем исходить из предположения, что вам знаком принцип предсказания ветвлений и работы подсистем памяти в современных процессорах.
Читать дальше →
Всего голосов 45: ↑43 и ↓2 +41
Комментарии 6

Тесты новейшего процессора Loongson 3A6000

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

Недавно был представлен 8-ядерный процессор следующего Loongson 3A6000 на базе ядра LA664, а знакомый энтузиаст смог приобрести плату на данном процессоре (модель процессора LS3A6000-HV и чипсет LS7A2000).

Читать далее
Всего голосов 47: ↑45 и ↓2 +43
Комментарии 30

Вклад авторов