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

Сaжаем на диету индексы PostgreSQL для Zabbix - 1 Недавно мы перевели Zabbix на работу с БД PostgreSQL. Вместе с переездом на сервер с SSD это дало существенный прирост скорости работы. Также решили проблему с дублирующими хостами в базе данных, bug request. Здесь статья могла бы закончиться, но мы заметили, что Zabbix использует много дискового пространства, поэтому ниже я расскажу, как это вышло. И как мы с этим разобрались.

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

В начале мая 2016 года, еще до окончания объединения с Dell, компания EMC объявила о выходе нового поколения массивов среднего уровня под именем Unity. В сентябре 2016 года к нам привезли демо-массив Unty 400F в конфигурации с 10 SSD дисками на 1.6TB каждый. В чем различие между моделями с индексом F и без оного можете почитать по данной ссылке в блоге Дениса Серова. Так как перед передачей демо дальше заказчику возник временной лаг, то было принято решение погонять массив тем же самым тестом, которым ранее уже нагружались VNXe3200 и VNX5400. Что бы посмотреть хотя бы на «синтетике» так ли хорош Unity по сравнению с предыдущими поколениями массивов EMC, как это расписывает вендор. Тем более что, судя по презентациям вендора, Unity 400 является прямой заменой VNX5400.

DellEMC Unity 400F: небольшое тестирование - 1

А DellEMC утверждает, что новое поколение по крайней мере в 3 раза производительнее, чем VNX2.
Если интересно, что из всего этого вышло, то…
Читать полностью »

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

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

image

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

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

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

(В статье ниже присутствуют анимированные гифги, которые начинают раздражать после первого цикла. Поэтому я советую открыть dev tools и удалить DOM ноды, которые отвечают за изображения.)

Итак, поехали:

Копируем переменную в буфер обмена

Об этой возможности я узнал из комментариев, и считаю ее достаточно полезной чтобы быть описанной в начале. Иногда бывает нужно скопировать содержимое переменной в буфер обмена. Например html код или json объект. Для этого можно использовать copy функцию.

copy (someVariable)

Теперь текстовое представление переменной скопировано в буфер обмена.
Читать полностью »

Ключ к высокой производительности приложений – оптимизация. При этом, чем ниже уровень, на котором код подстраивают под особенности аппаратного обеспечения – тем большего можно добиться. А ещё более впечатляющих результатов можно достичь тогда, когда при проектировании аппаратного обеспечения учитываются особенности кода. Сегодня мы расскажем о том, как идёт работа над ускорением PHP 7, которую совместно, практически непрерывно, ведут Intel и сообщество PHP-разработчиков.

Двойная скорость и половина памяти: оптимизация PHP 7 - 1
Читать полностью »

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

image

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

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

Причина выбрать ОС, которая потребляет меньше ресурсов виртуального сервера вполне понятна: не очень приятно платить за то, чтобы «кормить» современную операционную систему при том, что её расширенный функционал не используется.

В данной статье мы решили рассмотреть, сколько же можно получить дополнительных ресурсов (и можно ли вообще) если установить устаревшую ОС на арендуемый сервер.

В тесте участвовали 64-битные операционные системы:

  1. Windows Server 2012 R2
  2. Windows Server 2008 R2 SP1
  3. Windows Server 2003 R2 SP2

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

В недавней статье про производительность Java разгорелась дискуссия на тему измерения производительности. Глядя на неё, с грустью приходится сознавать, что многие люди до сих пор не понимают, насколько сложно правильно измерить время выполнения того или иного кода. Кроме того, люди вообще не привыкли, что один и тот же код в разных условиях может выполняться существенно разное время. К примеру, вот одно из мнений:

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

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

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

51 инструмент для APM и мониторинга серверов - 1

После создания веб- или мобильного приложения начинается не менее интересный этап: нужно арендовать или приобрести серверы, развернуть на них бэкенд и наблюдать, как твой продукт пользуется бешеной популярностью у пользователей. А чтобы всё шло гладко, необходимо мониторить работу серверов и приложений, контролируя их производительность и устраняя намёки на проблемы. А чтобы не терять время на поиски подходящих инструментов для мониторинга и управления, предлагаем вам — сисадминам и разработчикам — воспользоваться этой подборкой.
Читать полностью »

Привет!

Напоминаем, что все желающие по-прежнему могут приобрести отличную книгу Сэма Ньюмена "Создание микросервисов". Поскольку наши ожидания эта тема более чем оправдала, мы продолжаем искать связанную с ней литературу и не так давно обратили внимание на книгу о программировании микросервисов на языке Go

Язык Go, микросервисы и DevOps – хорошая компания? - 1

Интересную статью с обоснованием этого подхода мы нашли в блоге Agile Maverick, и ее перевод размещаем под катом.

Приятного чтения!

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


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