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

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

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

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

Как и зачем создавать кастомные сборщики мусора в Go

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

В Golang (да в принципе во всех ЯП) управление памятью и эффективное использование ресурсов — основа создания высокопроизводительных приложений. Одним из важных инструментов, который помогает справляться с этой задачей, является сборщик мусора (на англ garbage collection). Встроенный сборщик мусора Go выполняет свою работу довольно хорошо, но иногда требуется более тонкая настройка, чтобы соответствовать специальным требованиям потребностям конкретного приложения.

Здесь нам и помогут кастомные сборщики мусора.

Читать далее
Всего голосов 8: ↑7 и ↓1+10
Комментарии6

Новости

Поддержка VMware закончится в апреле 2025. Разбираемся, что это значит для бизнеса

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

Недавно VMware раскрыла информацию о том, когда наступит end of general support VMware vSphere 7.0, которой сейчас пользуется большая часть рынка. Это произойдет 2 апреля 2025 года. После этой даты для пользователей больше не будет доступных обновлений и патчей продукта, в том числе по информационной безопасности, а поддержка прекратится, когда подойдет к концу срок действия сертификата на нее.

Мы в Orion soft разобрались, что значит конец VMware для российских компаний, с какими последствиями столкнутся те, кто остается на версии 7.0, и что делать, чтобы их избежать.

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

Cloudflare: снижение выгорания дежурных за счет более эффективного мониторинга оповещений

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

Многие, наверняка, сталкивались с мемом this is fine, или оригинальным комиксом. Так выглядит типичный день для многих дежурных сотрудников. Оперативные дежурные получают много оповещений, и работа со слишком большим количеством оповещений может привести к усталости от оповещений — чувству истощения, вызванному реагированием на оповещения, которые не имеют приоритета или четких действий. Убедиться в том, что оповещения действенны и точны, а не являются ложными срабатываниями, крайне важно, потому что если дежурные сотрудники постоянно получают ложные уведомления, они могут перестать обращать на них внимание и игнорировать даже важные сообщения. С этой целью в Cloudflare многочисленные команды проводят периодический анализ оповещений, каждая команда разрабатывает свои собственные панели мониторинга для отчетности.

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

MAIPUем zVirt: практика создания метрокластера на базе СХД

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

Привет, Хабр! Меня зовут Александр Гавриленко, я занимаюсь интеграциями продуктов в инфраструктурах заказчиков Orion soft. За последние 2 года количество задач, связанных с организацией устойчивой виртуальной инфраструктуры на 2 и более территориально распределенных ЦОДа (со связностью L2), значительно выросло.

Поэтому сегодня я хочу начать разговор про обеспечение катастрофоустойчивости ИТ-инфраструктуры, построенной на базе zVirt. В этой статье я расскажу про поддержку технологии метрокластера, но не в теории, а на практике. В лаборатории Orion soft был собран тестовый стенд с реально работающей схемой резервирования Active-Active. А под катом вы найдете не только полезные схемы и рекомендации, но также результаты тестирования катастрофоустойчивой конфигурации.

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

Истории

Профайлер памяти. Зачем он нужен и как использовать

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


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

Профайлер можно использовать не только в разработке, но и в системном администрировании, чтобы отслеживать рабочие процессы конкретных приложений, скриптов и задач.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+28
Комментарии2

Запросы двойной надежности

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

Отправляем запрос на 20 000 000 евро, на перестановку 900 ордеров на бирже. Что может пойти не так? 

Сегодня я расскажу, как не терять пару миллиардов клиентских денег, когда уж очень нужно что-то массово сделать на бирже. Этот текст про неявную и, казалось бы, незаметную проблему, которая ждет нас в недрах работы с любыми запросами, которые могут исполниться не до конца – в частности, с HTTP-запросами. Удивительно, как мало об этой проблеме думают и насколько мало инструментов для её решения. 

Задача была такова – реализовать массовое управления биржевыми ордерами, причём не только в рамках одной биржи, а в целом по всей планете. И чтобы оно точно отработало. 

В повествовании будут клиенты, серверы и котики. С котиками всегда интереснее.

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

Lock-free структуры данных в Rust

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

Сегодня поговорим о lock-free (или же без использования блокировок) структурах данных и атомарных операциях в Rust.

Каждый lock может стать узким местом, тормозящим всю систему. Базовые методы синхронизации, типо мьютексов и семафор, частенько (но не всегда) снижают производительность из-за блокировок и контекстных переключений.

lock-free структуры данных позволяют нескольким потокам одновременно читать и изменять данные без блокировок.

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

Ужасы работы с Интернетом в Антарктиде (и как это исправить), часть 2

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

Часть 1

В этой части я приведу ещё несколько примеров того, как нам мешает скачивание обновлений внутри приложений.

Пример 1: обновления macOS

Ни для кого не секрет, что обновления macOS огромны. Иногда это раздражает даже дома, но на Южном полюсе ситуация гораздо хуже.

Размер патча минорного обновления macOS обычно имеет размер от 0,5 до 1,5 гигабайтов. Патчи с крупными обновлениями иногда занимают до шести с лишним гигабайтов. Дополнительные инструменты, например Xcode, часто весят несколько гигабайтов.

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

Как хэширование поможет вам оптимизировать хранение данных?

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

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

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

Машинное обучение в ЦОД: Можно ли доверить ИИ управление инфраструктурой?

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

Привет, Хабр! Меня зовут Кирилл, и я — архитектор инженерных систем в «Инфосистемы Джет». «При чем тут машинное обучение?» — спросите вы. Действительно, применимость ML к инженерной инфраструктуре — направление более чем свежее, и на Хабре еще никто эту тему не поднимал (кажется!).

Но сначала я расскажу предысторию. Инженерная инфраструктура в большинстве случаев является критически важной для функционирования дата‑центра. Ее безотказная работа — основной критерий при разработке проекта будущего ЦОД. Повышение энергоэффективности и надежности эксплуатации — не менее важная проблема, будоражащая умы инженеров на протяжении последних лет.

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

Читать и бояцца
Всего голосов 4: ↑4 и ↓0+6
Комментарии6

Ужасы работы с Интернетом в Антарктиде (и как это исправить), часть 1

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

Часть этого поста я написал, всё ещё находясь в Антарктиде, но уеду, ещё не закончив его.

Я просматривал свои старые черновики постов и понял, что этот почти завершён.

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

В течение 14 месяцев работы в Антарктиде доступ в Интернет у меня был только через крайне ограниченное число спутниковых каналов, предоставленных Антарктической программой США (United States Antarctic Program).

В начале поста нужно дать особое примечание:

Хотя я был ИТ-сотрудником United States Antarctic Program, всё, о чём я буду говорить в этом посте, основано или на публично доступной информации, или на моих личных наблюдениях как обычного участника программы, живущего во льдах.

При написании поста не использовалась информация с ограниченным доступом и непубличная информация.

При приёме на работу я подписал условия, ограничивающие публичное раскрытие непубличной информации о материалах, связанных с информационными технологиями. Я намерен полностью соблюдать эти ограничения. Такие ограничения типичны для сдельной работы на правительство США.

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

Данная информация отражает мой личный опыт нахождения в Антарктиде с августа 2022 года по декабрь 2022 года в Мак-Мердо, а затем с декабря 2022 года по ноябрь 2023 года на Южном полюсе.

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

Lazy Loading в Java

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

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

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

Как и наши хвостатые друзья, существует такой паттерн как Lazy Loading, который позволяет экономить ресурсы, инициализируя объекты только тогда, когда они действительно нужны.

Рассмотрим, как мы можем применить этот котиковый подход в Java. Будем как котики — умными, экономными и эффективными!

Читать далее
Всего голосов 16: ↑11 и ↓5+8
Комментарии6

Сбросить балласт. Аккуратное отключение лишних фич

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


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

Что тут говорить, если самая простая программа сегодня весит под 100 МБ, как целая операционная система со всем софтом несколько десятилетий назад. Кто-то говорит, что причиной этого является закон Мура и рост производительности процессоров в геометрической прогрессии. В связи с этим даже интересно, каким был бы софт при замедлении CPU в двадцать раз.

Но есть выход из сложившейся ситуации: аккуратное отключение лишних функций в раздувшемся софте.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+36
Комментарии5

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

Как выбрать сервер. Что лучше сегодня — готовая или сборная система

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

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

Дисклеймер: это вводный материал в серии, посвященной серверам. Тут мы разберем основные понятия. А для тех, кто с серверами "на ты", совсем скоро выйдут материалы, в которых мы более глубоко разберем различные аспекты, касающиеся серверов, с профессиональной точки зрения.

Читать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии2

Мы хотим, чтобы серверы падали одновременно

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

К нам обратился заказчик из сфера развлекательного видеостриминга с интересной проблемой - у него сервера падали не одновременно. А очень хотелось бы добиться синхронности.

Сервера, которые смущали заказчика работали в роли бэкенда для хранения видеофайлов. По сути, это было множество узлов, содержащих десятки терабайт видеофайлов, которые предварительно были нарезаны в разном разрешении конвертерами. Затем, все эти миллионы файлов отдавались во внешний мир с помощью nginx + kaltura, что позволяло перепаковывать на лету mp4 в сегменты DASH/HLS. Это позволяло хорошо переносить даже высокие нагрузки, отдавая плеером только нужные сегменты без резких всплесков.

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

Читать далее
Всего голосов 41: ↑39 и ↓2+56
Комментарии36

Разбираем 5 способов ускорить сайт: от простого к сложному

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

Низкая скорость загрузки — это критично. По данным исследования Unbounce, долгое ожидание негативно влияет на пользователей: 45,4% из них с меньшей вероятностью совершат целевое действие, а 11,9% — вообще покинут сайт. Давайте обсудим несколько способов, которые помогут ускорить сайт быстро и без особых усилий. 

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

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

Сравнение технологий WebSockets, Server-Sent-Events, Long-Polling, WebRTC и WebTransport

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

При работе с современными веб-приложениями реального времени незаменима возможность отправлять события с сервера на клиент. Именно этой необходимостью продиктовано то, что за годы работы было изобретено несколько методов для этой цели, каждый с собственным набором достоинств и недостатков. Первоначально единственным вариантом был длинный опрос. Затем в качестве альтернативы появились веб-сокеты — более надёжное решение для двунаправленной коммуникации. Вслед за веб-сокетами появились события, отправляемые сервером (SSE), более простой метод, обеспечивающий однонаправленную связь от сервера к клиенту. Забегая вперёд, сейчас разрабатывается ещё и протокол WebTransport, который может тем более изменить ландшафт этой области, обеспечивая более эффективный и гибкий подход, располагающий к масштабированию. В некоторых нишевых случаях можно присмотреться и к технологии WebRTC, предназначенной для работы с событиями в направлении сервер-клиент.

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

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

Достижение высокой пропускной способности без усугубления задержки

Время на прочтение6 мин
Количество просмотров1.3K
Задержка и пропускная способность

При обсуждении производительности часто встречаются термины «задержка» (latency) и «пропускная способность» (throughput) для описания характеристик программного компонента.
Мы можем дать следующее толкование этим терминам:

Задержка — это мера времени, затрачиваемого на выполнение одного действия. Например, это может быть время, необходимое, чтобы отреагировать на изменение цены финансового инструмента, и такое изменение может повлиять на решение о покупке или продаже. Это может быть время, необходимое компоненту, управляющему каким-либо внешним устройством, чтобы отреагировать на изменение состояния этого устройства (например, изменение температуры, о котором сообщает термостат).

Можно применить понятие задержки и к областям, не связанным с IT. Представьте, что вы посещаете свой любимый фаст-фуд. В данном случае, задержка — это время, которое требуется для того, чтобы сделать заказ, собрать его, оплатить и затем получить. Очевидно, что чем меньше задержка — тем лучше.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

zVirt Hosted Engine: практика развертывания в картинках

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

Привет, друзья! С этой статьи компания Orion soft начинает вести свой блог на Хабре. Сегодня я расскажу о том, как происходит развертывание системы виртуализации zVirt. Текст предназначен для тех, кто еще ни разу не работал с нашим гипервизором, но в тайне (или явно) мечтает об этом. Мы с коллегами решили помочь вам сэкономить свое время, познакомившись с процессом деплоя виртуально, и подготовили инструкцию how-to (можно повторять все прямо за нами). Под катом — подробный гайд по развертыванию zVirt в режиме Hosted Engine (то есть прямо на ваших хостах) с примерами значений, рекомендациями по базовым настройкам и понятными скриншотами. Так что если вы ждали знак, чтобы решиться установить у себя zVirt, вот он. Время пришло сегодня :)

Читать далее
Всего голосов 21: ↑18 и ↓3+17
Комментарии23

Это мы юзаем: библиотека Optuna в Python для оптимизации гиперпараметров

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

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

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

Традиционный подход к оптимизации гиперпараметров включает в себя grid search и random search, иногда они могут быть неэффективными и времязатратными, особенно когда пространство гиперпараметров велико.

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

Optuna решает проблему оптимизации гиперпараметров, предоставляя легковесный фреймворк для автоматизации поиска оптимальных гиперпараметров. Она использует алгоритмы, такие как TPE, CMA-ES, и даже поддерживает пользовательские алгоритмы.

Optuna полностью написана на Python и имеет мало зависимостей. В этой статье рассмотрим её основной функционал.

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