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

Серверная оптимизация *

Разгружаем сервер

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

От DVD и флешек до современных решений: как мы автоматизировали установку ОС на серверы

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

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

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

Как Uber сэкономил 70 тысяч ядер благодаря полуавтоматической настройке сборки мусора

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

Введение


В рамках мер повышения рентабельности наша команда недавно занялась снижением затрат на вычислительные мощности посредством увеличения их эффективности. Один из самых значимых вкладов был внесён в области оптимизации GOGC. В этом посте мы хотим поделиться высокоэффективным, малоопасным, крупномасштабным полуавтоматизированным механизмом настройки сбора мусора в Go.

Технологический стек Uber состоит из тысяч микросервисов на базе нативной облачной архитектуры на основе планировщика. Большинство этих сервисов написано на Go. Наша команда Maps Production Engineering ранее сыграла важную роль в значительном повышении эффективности множества сервисов Java при помощи настройки сборки мусора. В начале 2021 года мы исследовали возможности достичь такого же эффекта в сервисах на Go. Мы запустили несколько профилей CPU для оценки текущего состояния дел и выяснили, что сборка мусора была главным потребителем ресурсов CPU в подавляющем большинстве критически важных сервисов. Ниже приведено описание некоторых профилей CPU, в которых сборка мусора (определяемая объектом runtime.scanobject) потребляет значительную долю выделенных вычислительных ресурсов.
Читать дальше →
Всего голосов 25: ↑24 и ↓1 +23
Комментарии 4

Использование PowerShell с $PSStyle

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

В PowerShell 7.2 появилась автоматическая переменная $PSStyle для новой функции под названием PSAnsiRendering. В этой статье я покажу, как можно использовать ANSI-рендеринг для управления оформлением текста, например цветом и стилизацией шрифта, в PowerShell.

Уже некоторое время мы можем использовать в сеансе PowerShell escape-последовательности ANSI. Вы уже могли наблюдать это при вводе команд в командной строке. Команды, параметры, строки и операторы отображаются цветом. Эти цвета определяются как опции PSReadline.
Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Комментарии 3

Девочка, балансирующая на NVME-over-TCP 2.0

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

Привет всем! Рад вас снова видеть, и я счастлив, что вам так понравилась моя предыдущая статья под названием «А все ли врут? Продолжаем издеваться над NVME».

Напомню, что в этой статье я объяснил, как правильно подключить ваш NVME диск удалённо по сети. Не «как расшарить папку на диске?» и не «какой стороной впихивать NVME в компьютер?» а именно «Как подключить ваш NVME диск по сети».

Что вам это даёт? Вы можете подключить NVME диск на одном компьютере в другой компьютер прямо по сети. По самому обыкновенному медному кабелю. И вам не нужно будет устанавливать какие-то левые программы и настраивать что-то сомнительное. Вся система — часть стандартного набора драйверов Linux.

Более того, при наличии сети на 10Gbps вы сможете в полной мере насладиться полной скоростью NVME устройства. Вам будет казаться, что устройство работает как будто на вашем компьютере и с максимальной скоростью. Главное, чтобы сеть позволяла.

Всё это кажется магией, но на самом деле это возможно. И, конечно, у многих из вас это вызвало массу вопросов. Что же, у меня есть ответы. Всё, что вы хотели узнать об NVME-over-TCP, но боялись спросить.

Давайте под кат.
Читать дальше →
Всего голосов 55: ↑55 и ↓0 +55
Комментарии 15

Истории

Фаззинг сокетов: Apache HTTP Server. Часть 3: результаты

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

Прим. Wunder Fund: наш СТО Эмиль по совместительству является известным white-hat хакером и специалистом по информационной безопасности, и эту статью он предложил как хорошее знакомство с фаззером afl и вообще с фаззингом как таковым.

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

Эта статья, третья и последняя, посвящена результатам моих исследований. Я расскажу тут об обнаруженных мной уязвимостях Apache.

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

Пересаживаем высоконагруженный игровой проект с Photon на кастомные решения

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


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

Но, как это часто бывает, с развитием продукта универсальные решения требуют обработки напильником. А ведь War Robots существует уже почти восемь лет — инфраструктура серверов за это время менялась неоднократно по мере масштабирования проекта, который сейчас уже перешагнул через порог 200 млн установок.

В нашем случае такая обработка вылилась в собственные реализации тех или иных компонентов. Матчмейкинг и социальные фичи перекочевали в отдельные сервисы, новые игровые механики реализовывались на сервере для лучшей согласованности. В итоге от Photon остался транспорт, прослойка PUN на стороне клиента и некоторые сопутствующие расходы в виде лицензии, привязки к Windows и .Net Framework и чрезмерных аллокаций на клиенте.

Стало понятно, что затраты на фреймворк превышают его ценность, и надо тiкать.
Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 3

Фаззинг сокетов: Apache HTTP Server. Часть 2: кастомные перехватчики

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

Прим. Wunder Fund: наш СТО Эмиль по совместительству является известным white-hat хакером и специалистом по информационной безопасности, и эту статью он предложил как хорошее знакомство с фаззером afl и вообще с фаззингом как таковым.

В первой статье из этой серии я рассказал о том, с чего стоит начать тому, кто хочет заняться фаззингом Apache HTTP Server. Там мы обсудили разработку кастомных мутаторов в AFL++, поговорили о том, как создать собственный вариант грамматики HTTP.

Сегодня я уделю внимание написанию перехватчиков ASAN, которые позволяют «ловить» баги в кастомных пулах памяти. Здесь пойдёт речь и о том, как перехватывать системные вызовы, нацеленные на файловую систему. Это позволяет выявлять логические ошибки в исследуемом приложении.

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

Как заставить Ansible работать быстрее – 8 советов по плейбукам

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

Ansible – это мощный и простой инструмент автоматизации с открытым кодом. Он помогает оптимизировать множество задач по эксплуатации ИТ-инфраструктуры, от самых простых, наподобие установки программных пакетов, до весьма сложных, вроде развертывания кластера с несколькими узлами или многоэтапного обновления операционной системы. Сегодня мы расскажем, как оптимизировать плейбуки и модули Ansible, чтобы создаваемые вами автоматизации работали быстрее.

Читать дальше: Как заставить Ansible...
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 16

Фаззинг сокетов: Apache HTTP Server. Часть 1: мутации

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

Прим. Wunder Fund: наш СТО Эмиль по совместительству является известным white-hat хакером и специалистом по информационной безопасности, и эту статью он предложил как хорошее знакомство с фаззером afl и вообще с фаззингом как таковым.

Этот материал открывает серию из трёх статей (она продолжает материалы о фаззинге FTP-серверов и FreeRDP), посвящённых фаззинг-тестированию реализации протокола HTTP, представленной в Apache HTTP Server. Это — один из самых популярных веб-серверов и в представлении он не нуждается. Так, Apache HTTP — это один из первых HTTP-серверов, разработка которого началась в 1995 году. По состоянию на январь 2021 года под его управлением работали более чем 300000000 серверов, а значит — он использовался на 26% таких систем и занимал второе место по распространённости, немного уступая лишь Nginx (31%).

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

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

Как одной строкой сделать 24-ядерный сервер медленнее ноутбука

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


Лучше учиться на чужих ошибках, поэтому мы в М.Видео-Эльдорадо стремимся изучать зарубежный опыт. Предлагаем и вам посмотреть перевод статьи Петра Колачковского, получившего черный пояс по прокачке производительности своего железа.
Читать дальше →
Всего голосов 86: ↑86 и ↓0 +86
Комментарии 10

9 лучших практик развертывания приложений высокой доступности на платформе OpenShift

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

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

Читать дальше: 9 лучших практик...
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 1

Как собираются кастомные серверы: от конфигуратора до тестирования

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

В Selectel много конфигураций готовых серверов, но некоторым клиентам нужен уникальный набор комплектующих. Для них у нас есть услуга по созданию кастомного сервера, который можно «собрать» в специальном конфигураторе, — накликать нужное количество процессоров, дисков, видеокарт, объем памяти и т.д. В этом тексте расскажем, что происходит после нажатия кнопки «Заказать сервер».
Читать дальше →
Всего голосов 50: ↑49 и ↓1 +48
Комментарии 18

4 страха, мешающие стать тестировщиком в международной компании

Время на прочтение 6 мин
Количество просмотров 16K
Привет, Хабр! Меня зовут Анастасия Донцова, и я работаю старшим менеджером команды тестирования в компании Dell Technologies. Хочу немного рассказать вам о своей специальности, а также развенчать несколько ложных и вредных представлений, которые её окружают.

Тестирование продуктов в ИТ-индустрии занимает одно из первых мест с точки зрения важности и затрачиваемых ресурсов. Это неотъемлемая часть процесса разработки.



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

В то же время заметна неосведомлённость молодых (и не очень) ИТ-специалистов о специфике тестирования ПО: эту сферу часто обесценивают, и многие опасаются строить карьеру в этом направлении. Кроме того, менеджерам по найму нужно проявлять смекалку, чтобы определять потенциально талантливых тестировщиков и выделять ресурсы для их обучения.

Конечно, эта статья не ответит на вопрос, как внедрить тестирование как дисциплину в университетах. Моя цель более скромная — разрушить некоторые мифы и барьеры, мешающие хорошим умным людям найти своё призвание в тестировании.
Читать дальше →
Всего голосов 29: ↑24 и ↓5 +19
Комментарии 26

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

Перенос Java-нагрузок на OpenShift – зачем и как

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

Несмотря на ударные темпы распространения платформ оркестрации контейнеров, вроде Kubernetes или Red Hat OpenShift, подавляющее большинство Java-нагрузок в мире по-прежнему выполняются на виртуальных машинах или на «голом железе». Однако перенос корпоративных нагрузок, и в частности, приложений Red Hat JBoss Enterprise Application Platform (EAP), в облако рано или поздно состоится, и OpenShift представляется здесь естественным выбором. Сегодня мы вкратце ответим на типовые вопросы, которые возникают при таком переходе, и покажем на примере, как он производится.

Читать дальше: Перенос Java-нагрузок...
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

Спектральный анализ сервера

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

Что будет, если к Perfmon применить быстрое преобразование Фурье? Или функцию корреляции? Получится #черте_что!

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

А все ли врут? Продолжаем издеваться над NVME

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

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

Для многих из нас nvme означает, что мы купили новый компьютер или ультрабук. Жёсткий диск, подключённый напрямую к шине PCIE, позволяет существенно снизить задержки передачи данных и ускорить любую систему. NVME — это ключ к загрузке любой системы за 3 секунды.

Но, на самом деле сам по себе NVME — это не стандарт для жёстких дисков. NVME расшифровывается как NVM Express. NVM, в свою очередь, означает Non-volatile memory, И в первую очередь — это спецификация протокола, который позволяет производить эффективный доступ к данным, хранящимся в энергонезависимой памяти.

А как мы хорошо знаем, протоколы можно запускать на разных носителях. В этой статье мы будем издеваться над моим лэптопом с Ubuntu Linux 21 на борту, подключая его жёсткий диск к разным серверам. Вы можете посетовать, что всё это игрушки, но хороший администратор со свитчем, позволяющим поддерживать скорости более 10 гигабит в секунду, должен взять это на заметку. Вы можете получить удалённый доступ к вашим nvme жёстким дискам через tcp/ip без уловок и мошенства.

Поехали.
Читать дальше →
Всего голосов 113: ↑113 и ↓0 +113
Комментарии 90

Как мы избавились от 80% своего кода, повысив скорость разработки и уменьшив количество ошибок

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


Оптимизация кода и развитие микросервисной архитектуры занимает значительную часть жизни команды разработчиков МВидео-Эльдорадо. Тем любопытней изучить опыт коллег за рубежом. Предлагаем вашему вниманию очередной пост на тему: «А как там у них».
Читать дальше →
Всего голосов 98: ↑90 и ↓8 +82
Комментарии 101

Блокировки MySQL: виды, проблемы и способы обнаружения

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

Рано или поздно любой разработчик или администратор СУБД, имеющий дело с MySQL, сталкивается с проблемой блокировок. Всё дело в природе MySQL как системы с конкурентным доступом на чтение/запись. Я расскажу о видах блокировок в MySQL, их преимуществах и недостатках, о проблемах, которые они вызывают, а также дам полезные советы по обнаружению и способам борьбы с блокировками.

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

Руководство по обновлению до MongoDB 5.0 и Rocket.Chat 4.0 в Docker

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

Недавно вышел Rocket.Chat 4.0.0, и, честно говоря, перейти на новую версию с предыдущей не так-то просто.

Хотя возможность перехода на новую версию Rocket.Chat с более старых (3.x.y.) предусмотрена, некоторые ранние версии MongoDB, а именно 3.6 и 4.0, уже не рекомендуются к использованию с популярным чат-сервером с момента выхода новой. Кроме того, для версии MongoDB 3.4 уже не предоставляется поддержка. Эти новшества впервые подтвердили в запросе на включение изменений #22907, составленном две недели назад (прим. переводчика: дата составления — 21.09.21).

В этом руководстве я отразил полный пошаговый процесс перехода на новый Rocket.Chat с обновлением базы данных MongoDB до последней версии — 5.0.
Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 0

Как Red Hat оптимизировала SELinux, чтобы он работал быстрее и занимал меньше места

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

SELinux, как и все средства безопасности, снижает производительность системы. И хотя для большинства рабочих нагрузок такое влияние невелико (см., например, проведенное  порталом Phoronix тестирование на примере платформы Fedora 31), некоторые операции, как выяснилось, могут выполняться быстрее. Кроме того, в SELinux есть определенные шероховатости, неоправданно увеличивающие размер образов виртуальных машин или требования по оперативной памяти. Сегодня мы расскажем о недоработках в SELinux, которые нашел, устранил и закоммитил наш инженер-программист, который работает в команде Red Hat, занимающейся SELinux.

Читать дальше: Оптимизация SELinux...
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 0

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

Работа