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

Один из аспектов понятия «производительность Web» заключается в том, чтобы уменьшить наблюдаемые пользователем задержки; получить готовую к работе страницу как можно быстрее. В отношении протокола HTTP это подразумевает, что идеальный протокол связи выглядит как-то так:

Идеальная производительность протокола HTTP - 1

Клиент шлёт минимально необходимое количество данных, чтобы описать свой запрос, а сервер отдаёт ему минимально необходимое количество данных для отображения страницы и всё это происходит за минимально возможное количество раундов связи. Лишние данные, пересылаемые на сервер или получаемые с сервера, означают увеличение времени загрузки и повышение шансов потери пакетов, перегруженность канала связи. Лишние циклы отправкиприёма данных из-за «болтливости» протокола и задержки (особенно в мобильных сетях, где 100ms — лучшее возможное время отклика) тоже ухудшают ситуацию.

Итак, если мы описали идеальный случай — соответствует ли ему протокол HTTP? И можем ли мы ещё как-нибудь улучшить его?
Читать полностью »

Тихая революция: внедрение x86-архитектуры вместо RISC-машин для процессинга банка - 1

— Смета была 200 миллионов рублей, а стала 650 миллионов! Вы обалдели?

По слухам, именно так начался этот проект на совете директоров банка. Курсовая разница по одной из поставок серверов составляла 450 миллионов рублей. Естественно, хотелось как-то уменьшить эти затраты.

Долгое время считалось, что архитектура x86 «из коробки» не предназначена для серьёзных вычислений. Самые серьёзные в мире вычисления (по нагрузке и требованиям к надёжности) — это банковское ядро, процессинг. Там не закончить считать вовремя 2–3 операционных дня подряд означает просто закрытие банка (и проблемы с банковской системой страны) из-за возникающего разрыва, который догнать уже невозможно.

Один банк из ТОП-10 ещё пару лет назад планировал докупить себе машин P-серии, известных своей надёжностью, масштабируемостью и производительностью. Про x86 там даже не думали, пока не настал кризис. Но кризис настал. Одна машина за 5–7 миллионов долларов (а нужна даже не одна и не две) — это немного перебор. Поэтому руководство решило тщательно изучить вопрос замены RISC на x86.

Ниже — сравнение двух подобных конфигураций (они не совсем одинаковые): P-серия с RISC-процессорами с ядрами на 4 ГГЦ из расчёта одно RISC-ядро на два ядра x86 2.7 ГГЦ. Всё это мы смонтировали в машзале дата-центра банка, загнали туда реальную базу, показывающую несколько банковских дней за прошлый год (у них есть специально заготовленная среда для тестов, полностью симулирующая реальность и полноценную нагрузку от транзакций, банкоматов, запросов и т. п.), и выяснили, что x86 подходит и стоит в разы дешевле.Читать полностью »

Последние полгода всем знакомый интерфейс поисковой выдачи Яндекса (Search Engine Result Page — SERP) переезжает на новую архитектуру, с которой разработка неспецифичных фич становится очень быстрой, а разработка специфичных фич — прогнозируемой. Для большой распределенной команды из 40 фронтендеров это большой успех. Когда все было почти готово и новый код начали обкатывать в production экспериментах, оказалось, что серверная JS-шаблонизация в новой архитектуре ощутимо замедлилась.

Профилирование JS-кода из функций. Опыт Яндекса - 1

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

Простым «разглядыванием» проблему решить не удалось, нужно было разбираться, нужно было профилировать. Читайте дальше, чтобы узнать, как это было сделано.

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

…или правильная работа с коллекциями.

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

В этой статье рассказано о Magento 1.*, но описанное так же подходит и для Magento 2.*.
Читать полностью »

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

Как ухудшить производительность вашего приложения — типичные ошибки разработчиков - 1


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

Немного истории

На заре вычислительной техники динамическая память вполне себе работала на частоте процессора. Мой первый опыт работы с компьютером был связан с клоном компьютера «ZX Spectrum». Процессор Z80 осуществлял обработку инструкций в среднем по 4 такта на операцию, при этом два такта использовалось на осуществление регенерации динамической памяти, что дает нам при частоте в 3,5 МГц, не более 875 000 операций в секунду.

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

Давайте рассмотрим что представляет из себя оперативная память компьютера сейчас, и что с ней можно сделать, чтобы увеличить быстродействие компьютерной системы.
Быстродействие динамической оперативной памяти и нелепая идея как ее увеличить - 1

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

Сравнение производительности Hadoop на DAS и Isilon - 1

Я уже писал о том, с помощью Isilon можно создавать озёра данных, способные одновременно обслуживать по несколько кластеров с разными версиями Hadoop. В той публикации я упомянул, что во многих случаях системы на Isilon работают быстрее, чем традиционные кластеры, использующие DAS-хранилища. Позднее это подтвердили и в IDC, прогнав на соответствующих кластерах различные Hadoop-бенчмарки. И на этот раз я хочу рассмотреть причины более высокой производительности Isilon-кластеров, а также как она меняется в зависимости от распределения данных и балансировки внутри кластеров.
Читать полностью »

Серверный шкаф с интеллектуальным активным шумоподавлением - 1 Не секрет, что серверное оборудование, как правило, устанавливается в стойку/шкаф, которые, в свою очередь, размещаются в специально выделенном месте.
Система охлаждения серверного оборудования проектируется исходя из требований к эффективности отвода тепла из корпуса, а такой параметр как уровень шума в расчет не берётся. Поэтому установка серверного шкафа или стойки вблизи с рабочими местами сотрудников исключена.
В основном, оборудование размещают в удалённых дата-центрах, локальных серверных или любом другом помещении предприятия, которое должно быть изолировано от рабочего пространства офиса и обеспечивать необходимый внутренний температурный режим.
В больших и средних организациях проблем с выделением помещения под серверную комнату не возникает. Да и в маленьких офисах можно встретить серверную «кладовку» размером два на полтора метра.
Но что делать, если IT-инфраструктура включает существенное кол-во стоечного оборудования, а места для серверной, по каким-либо причинам, не предусмотрено? Как решить вопрос размещения серверного шкафа в офисном помещении без ущерба для комфорта рабочего процесса сотрудников компании? Или же стоит задача демонстрации на выставочных мероприятиях стоечного оборудования или комплексных инфраструктурных решений. При установке классического шкафа/стойки, комфортно вести переговоры вблизи подобного стенда не получится.
Для решения подобных задач разработан уникальный серверный шкаф Silentium AcoustiRACK ACTIVE, который позволяет обеспечить отвод до 8 кВт тепла, минимизируя при этом шум, издаваемый установленным в нём оборудованием. Решение не ново, но все же я хочу посвятить ему эту статью, т.к. шкаф уже есть в лаборатории STSS и я проверил его способности на реальных задачах.
Секрет заключён не только в конструкции шкафа: стеклопакет в передней двери, шумоизоляция всех стенок, заглушек и задней двери безусловно снижают звукопроводимость. Но в шкафу должны быть отверстия для беспрепятственного прохода воздушного потока, обеспечивающего эффективное охлаждение оборудования. Как быть с подавлением шума, выходящего через них?
Для этих задач разработаны уникальные вентиляторные блоки, оснащённые интеллектуальной акустической системой активного шумоподавления.
Принцип работы заключается в анализе через встроенный микрофон общего шума оборудования и собственных вентиляторов, и формировании противофазного акустического сигнала, который компенсирует этот шум.
Читать полностью »

Введение
Понимание, каким образом программная переменная принимает значение физического сигнала и как значение программной величины превращается в конкретный сигнал, может помочь разработчикам программного обеспечения систем управления при расчете задержек, решении задач оптимизации, обеспечении устойчивости, разработке интерфейсов и подключении к процессорам и контроллерам периферии: датчиков, исполнительных механизмов, и др.
В этой работе рассматриваются вопросы, связанные с прямым и обратным преобразованием “программная переменная – сигнал”: особенности построения каналов передачи данных, подключения периферии к шинам процессора, вопросы адресной приёма-передачи данных и работа гипотетического процессора при обмене данными с внешним устройством.

Формирование канала передачи данных
Рассмотрим канал передачи данных, который имеет всего два состояния, например, наличие или отсутствие напряжения. Передатчик должен устанавливать напряжении в линии в соответствии с передаваемыми данными, а приемник по измеряемому напряжению выделять данные линии. Простейший передатчик включает источник напряжения и идеальный ключ, который изменением собственного сопротивления (ноль или бесконечность) замыкает или размыкает провода. В качестве идеального приемника используется измеритель напряжения (мультиметр) с бесконечным входным сопротивлением.
image
Рис. 1. Схема с неопределенным напряжением в линии передачи. В реальной схеме функцию ключа может выполнять транзистор.

В схеме Рис. 1 при замыкании ключа приёмнику передается 5В источника, однако, когда ключ разомкнут на входе приемника находится неопределенное напряжение.
Этой неопределенности нет в схеме Рис. 2, которая имеет два устойчивых состояния 5В или 0В. Сопротивление R добавлено в схему передатчика для ограничения тока через замкнутый ключ. Переходный процесс в линии пропорционален произведению ёмкости линии на выходное сопротивление передатчика, которое отличается при установлении и сбросе напряжения в линии. При установке напряжения в линии происходит заряд ёмкости через сопротивление R. Во время сброса напряжения ёмкость разряжается через сопротивление замкнутого ключа.
image
Рис. 2. Передача двух состояний 5В и 0В. Тождественные схемы. Постоянная времени (R*C) перехода из 0В в 5В (заряда емкости) больше постоянной разряда линии через идеальный ключ с нулевым сопротивлением.
Читать полностью »

Перспективы языка го для программиста - 1

Статья написана по мотивам одного не очень приятного разговора на последнем IT global митапе в Питере.
Читать полностью »


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