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

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

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

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

Использование slots | Python

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

Когда мы создаем объекты для классов, требуется память, а атрибут хранится в виде словаря (в dict). В случае, если нам нужно выделить тысячи объектов, это займет достаточно много места в памяти.

К счастью, есть выход — слоты, они обеспечивают специальный механизм уменьшения размера объектов. Это концепция оптимизации памяти на объектах. Также, использование слотов позволяет нам ускорить доступ к атрибутам.

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

Мониторинг дисковых квот с помощью Zabbix

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

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

В этой статье мы расскажем про настройку квот файловой системы Linux, а также про то, как организован мониторинг квот на хостинговых серверах SAAS-сервиса интернет-магазинов.

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

Как настроить Nginx в качестве балансировщика нагрузки

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

Что такое балансировка нагрузки?


Балансировка нагрузки подразумевает эффективное распределение входящего сетевого трафика между группой бэкенд-серверов. Задача же регулятора — распределить нагрузку между несколькими установленными бэкенд-серверами.

Существует несколько типов балансировщиков нагрузки:

  • Балансировщик нагрузки приложений.
  • Сетевой балансировщик нагрузки.
  • Балансировщик нагрузки шлюза.
  • Классический балансировщик нагрузки.
Читать дальше →
Всего голосов 25: ↑21 и ↓4 +17
Комментарии 22

Как планировать выполнение команд с помощью Anacron в Linux

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

Когда нам требуется запланировать выполнение задачи в Linux, мы всегда можем использовать такие утилиты, как cron или systemd-timers. Есть различные реализации cron, но всех их объединяет то, что они запускаются как системные службы и рассчитаны на использование в постоянно работающих системах, например, на серверах. Когда нам нужно запланировать выполнение задачи на домашнем компьютере или ноутбуке, которые чаще всего находятся в выключенном состоянии, то можно просто использовать anacron.

Собственно, именно в этой статье, мы и узнаем, что такое anacron, чем отличается от cron, и как использовать anacron для планирования команд в Linux.
Читать дальше →
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 2

Истории

Как мы использовали RabbitMQ для разбиения монолита крупнейшего ритейлера страны*

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

Накопить за 7 лет терабайты данных в монолите и решить, что пора оптимизировать систему и разбивать её на микросервисы — страшный сон для айтишника. Добавим сюда ещё база на решениях от 1С и необходимость обеспечить непрерывность процесса. Стало страшно? А для нас — возможность показать экспертность и решить нетривиальную задачу. О том, как «кролик» помог сдвинуть гору рассказал архитектор 1С компании «Автомакон» Виталий Осиповский.

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

Любые сбои и простои были неадекватно затратны и влияли на все компоненты системы в целом. А сама система не годилась для быстрого масштабирования бизнеса. Поэтому уже в 2020 году приняли решение о поэтапном разделении монолита на отдельные программные компоненты.  

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

Тот самый bitrix-кластер. Начало

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

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

Серия статей будет представлять собой теоретическую часть и практическую части. В сегодняшней - теоретической - части мы разберем все нюансы кластеризации и особенностей bitrix-составляющей.

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

Мониторинг SSL-сертификатов и доменов с помощью Zabbix

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

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

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

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

Сага о SEO, часть 1: серверный рендеринг

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

Наверняка хотя бы раз в жизни вы или ваши знакомые в поисках приятного досуга на вечер обращались к Яндексу или Гуглу с запросами вроде “кино онлайн бесплатно” или “смотреть сериалы 2021”. Если так, не стоит стесняться, вы такой не один, с подобными запросами в Яндекс, например, обращаются несколько миллионов человек в месяц. При этом, скорее всего, как и большинство пользователей с таким запросом, вы не имеете преференций относительно того, где вам этот контент покажут, и перебираете ссылки в выдаче сверху вниз, пока не найдете устраивающий вас ресурс. А значит, владельцы этих ресурсов максимально заинтересованы в том, чтобы

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

Мониторинг контроллера MegaRAID и подключенных к нему дисков с помощью Zabbix

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

Когда нужно обеспечить быстродействие и надежность дисковой системы, а также возможность горячей замены дисков без выключения сервера, большую помощь окажут дисковые контроллеры с кэш памятью и защитным аккумулятором, такие как MegaRAID. Новые версии этих контроллеров есть на сайте https://www.broadcom.com/products/storage/raid-controllers.

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

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

Мониторинг дисков и программных RAID-массивов с помощью Zabbix

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

Ранее в статьях, посвященных Zabbix, мы рассказали про особенности мониторинга SAAS-сервиса интернет-магазинов, а также про установку сервера и агента Zabbix.

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

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

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

Устранение утечек памяти с помощью профилирования

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

Если система работает длительное время, объём свободной памяти может уменьшаться, что может приводить к отказу некоторых сервисов. Это типичная проблема утечки памяти, которую обычно сложно спрогнозировать и выявить. Удобными инструментами для решения подобных проблем являются профайлеры кучи. Они отслеживают распределение памяти и помогают разобраться, что находится в куче программы, а также найти утечки памяти.

В этой статье мы расскажем об использовании профайлеров кучи, а также объясним, как спроектированы и реализованы популярные профайлеры кучи, например, профайлер кучи Go, gperftools, jemalloc и Bytehound.
Читать дальше →
Всего голосов 29: ↑29 и ↓0 +29
Комментарии 0

Пять советов по исправлению перекошенных соединений в Apache Spark

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

Соединения (Joins) являются одними из наиболее фундаментальных преобразований в типичной процедуре обработки данных. Оператор Join позволяет коррелировать, обогащать и фильтровать два входных набора (пакета / блока) данных (Datasets).
Обычно два входных набора данных классифицируются как левый и правый на основе их расположения по отношению к пункту/оператору Join.
По сути, соединение работает на основе условного оператора, который включает логическое выражение, основанное на сравнении между левым ключом, полученным из записи левого блока данных, и правым ключом, полученным из записи правого комплекса данных. Левый и правый ключи обычно называются соединительными ключами (Join Keys). Логическое выражение оценивается для каждой пары записей из двух входных наборов данных. На основе логического вывода, полученного в результате оценки выражения, условный оператор включает условие выбора — для отбора либо одной из записей (из пары), либо комбинированной записи (из записей, образующих пару).
Читать дальше →
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 0

Ищем боттлнеки за 30 минут с помощью Jaeger трейсов

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

Всем привет! Меня зовут Артем, я бэкенд-разработчик в команде клиентского бэкенда. Одна из важных частей моей работы — это снижение латенси нашего бэкенда. История, о которой я расскажу в статье, как раз и началась с одной из таких задач. Звучала она следующим образом:


В одном из эндпоинтов чекаута 99 перцентиль латенси пробивает SLO. Нужно это исправить.

Соответственно, возникает вопрос: как максимально быстро и точно найти причину тормозов очень низкочастотного запроса на 99 перцентиле и что делать, чтобы ее устранить? Ответом на него стала библиотека для полуавтоматического поиска узких мест в распределененных системах. Ссылка на гитхаб будет в конце статьи.

Читать дальше →
Всего голосов 29: ↑28 и ↓1 +27
Комментарии 3

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

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

От чего зависит надежность серверов

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

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

В этом посте мы на примере сервера Altos P550 F4 рассмотрим, на какие характеристики нужно обращать внимание, чтобы сохранить непрерывность бизнеса. 

Комплектующие

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

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

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

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

Сказ о том, как мы железо подбираем

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

В компании Tecforce мы уже более 15 лет занимаемся заказной разработкой и поставкой оборудования и подбираем для заказчика сервера под разрабатываемое нами ПО. Как оказалось, в сети мало информации на эту тему, поэтому заваривайте чай и добро пожаловать под кат. В статье расскажем о разработанной нами теории, предложим методику моделирования и построим математическую модель.

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

Kafka и Chronicle Queue

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

Хотя облачные сервисы удобны и гибки, эксплуатационные затраты на приложения, развёрнутые в облаке, иногда могут быть существенными. В этой статье мы расскажем о способе существенного снижения эксплуатационных затрат в чувствительных к задержке Java-приложений с Event-Driven Architecture (EDA) при помощи миграции с Kafka на Chronicle Queue — опенсорсной, более эффективно использующей ресурсы реализации очереди с пониженной задержкой.
Читать дальше →
Всего голосов 35: ↑34 и ↓1 +33
Комментарии 3

macOS в дата-центре: при Джобсе такого… Было

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

Первое, что приходит в голову, когда мы говорим про серверы и серверные операционные системы — это HPE и Dell, Linux и Windows. Но есть и менее очевидный вариант: macOS и компьютеры линейки Mac.

Дропдаун
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 10

Мониторинг SAAS-сервиса интернет-магазинов с помощью Zabbix

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

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

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

Управляем доставкой ПО: хитрости использования RPM-deploy

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

В предыдущей статье мы рассмотрели средства автоматизации развертывания ПО и управления его жизненным циклом, а сейчас делимся лайфхаками использования RPM. 

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

Как управлять программным обеспечением в корпоративной ИТ-инфраструктуре?

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

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

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

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

Работа