Обновить
51.76

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

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

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

Windows, PowerShell и длинные пути

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


Думаю, вам, как и мне, не раз приходилось видеть пути вида \!!! Важное\____Новое____\!!! Не удалять!!!\Приказ №98819-649-Б от 30 февраля 1985г. о назначении Козлова Ивана Александровича временно исполняющим обязанности руководителя направления по сопровождению корпоративных VIP-клиентов и организации деловых встреч в кулуарах.doc.

И зачастую открыть такой документ в Windows сходу не получится. Кто-то практикует workaround в виде мапирования дисков, кто-то использует файловые менеджеры, умеющие работать с длинными путями: Far Manager, Total Commander и им подобные. А еще многие с грустью наблюдали, как созданный ими PS-скрипт, в который было вложено немало труда и который в тестовом окружении работал на ура, в боевой среде беспомощно жаловался на непосильную задачу: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
Как оказалось, 260 символов хватит «не только лишь всем». Если вам интересно выйти за границы дозволенного — прошу под кат.
Читать дальше →

6 небольших советов, чтобы подготовить NodeJS к высоким нагрузкам

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

Сервис с распознаванием лиц «Look-A-Like» обслуживал тысячи пользователей одновременно

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


В рамках работы в MyHeritage мы разработали сервис doppelgänger для Евровидения 2019 года, с помощью которого, загрузив селфи, можно узнать на кого из участников конкурса вы похожи больше всего.


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

Читать дальше →

Топ ошибок со стороны разработки при работе с PostgreSQL

Время на прочтение21 мин
Количество просмотров53K
HighLoad++ существует давно, и про работу с PostgreSQL мы говорим регулярно. Но у разработчиков все равно из месяца в месяц, из года в год возникают одни и те же проблемы. Когда в маленьких компаниях без DBA в штате случаются ошибки в работе с базами данных, в этом нет ничего удивительного. В крупных компаниях тоже нужны БД, и даже при отлаженных процессах все равно случаются ошибки, и базы падают. Неважно, какого размера компания — ошибки все равно бывают, БД периодически обваливаются, рушатся.



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


О спикере: Алексей Лесовский (lesovsky) начинал системным администратором Linux. От задач виртуализации и систем мониторинга постепенно пришел к PostgreSQL. Сейчас PostgreSQL DBA в Data Egret — консалтинговой компании, которая работает с большим количеством разных проектов и видит много примеров повторяющихся проблем. Это ссылка на презентацию доклада на HighLoad++ 2018.
Читать дальше →

Как объединить бэки двух ритейлеров на SAP за 12 часов

Время на прочтение4 мин
Количество просмотров5K
Эта статья расскажет о масштабном проекте внедрения SAP в нашей компании. После слияния компаний «‎М.Видео»‎ и «‎Эльдорадо»‎ перед техническими отделами была поставлена нетривиальная задача — перевести бизнес-процессы в единый бэкенд, основанный на SAP.

Перед стартом у нас была дублированная IT-инфраструктура двух сетей магазинов, состоящая из 955 розничных точек, 30 000 сотрудников и трёхсот тысяч чеков в день.

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

В этой публикации (первой из двух, чем черт не шутит, может и трех) мы презентуем вам некоторые данные по проведённым работам, подробнее о которых можно узнать на SAP ME meetup в Москве.



Полгода проектировки, полгода написания кода, полгода оптимизации и тестирования. И 12 часов, чтобы переключить систему, обслуживающую 450 магазинов «Эльдорадо» по всей России, при этом не нарушив работу магазинов «М.Видео». Также мы без малейшего даунтайма переключили сайт «Эльдорадо» с милионным трафиком.

Может звучать нереально, но мы это сделали! Подробности под катом.
Читать дальше →

Upgrade дисковой подсистемы старого сервера с шиной PCIe 1.0 — 2.0

Время на прочтение7 мин
Количество просмотров15K
Почему темой данной статьи выбран апгрейд дисковой подсистемы
Понятно, что в первую очередь нужно, как правило:

  1. Увеличить оперативную память. Это настолько очевидный ход, что я даже не счёл нужным писать об этом в основной статье
  2. Поставить дополнительный процессор(ы) или заменить оба процессора на максимально производительные версии поддерживаемые сокетами сервера.

Для старых серверов, что память, процессоры, как правило, можно найти по бросовым ценам.

В определённый момент перед любым владельцем собственного сервера становится вопрос — upgrade или новый сервер.

Поскольку цена нового сервера сейчас может измеряться миллионами рублей, то многие идут по пути апгрейда.

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

В статье приведён список серверных SSD PCI-E 2.0 x8, которые сильно подешевели сейчас, указаны рейд-контроллеры с поддержкой SSD-кеширования и испытан SATA III SSD на интерфейсе SATA II.
Читать дальше →

Главные преимущества Zextras PowerStore

Время на прочтение5 мин
Количество просмотров950
Zextras PowerStore является одним из самых востребованных дополнений для Zimbra Collaboration Suite, входящих в состав Zextras Suite. Использование этого расширения, которое позволяет добавить в Zimbra возможность иерархического управления носителями, а также серьезно снизить место на жестких дисках, занимаемое почтовыми ящиками пользователей за счет использования алгоритмов компрессии и дедупликации, в конечном итоге приводит к серьезному снижению стоимости владения всей инфраструктурой Zimbra. А когда Zextras PowerStore используется в условиях SaaS-провайдеров, речь может идти о колоссальной экономии. Но это далеко не все возможности, которые может предложить администратору Zimbra данное расширение. Для того, чтобы узнать, что еще может предложить Zextras PowerStore администратору Zimbra, мы обратились к Luca Arcara, старшему консультанту по решениям в Zextras, который принимает активное участие в разработке Zextras Suite. Он назвал нам четыре ключевых возможности Zextras PowerStore, которые понравятся любому администратору Zimbra.

image
Читать дальше →

Контейнеры, микросервисы и сервис-меши

Время на прочтение10 мин
Количество просмотров6.6K
В интернете куча статей о сервис-мешах (service mesh), и вот ещё одна. Ура! Но зачем? Затем, что я хочу изложить своё мнение, что лучше бы сервис-меши появились 10 лет назад, до появления контейнерных платформ, таких как Docker и Kubernetes. Я не утверждаю, что моя точка зрения лучше или хуже других, но поскольку сервис-меши — довольно сложные животные, множественность точек зрения поможет лучше их понять.

Я расскажу о платформе dotCloud, которая была построена на более чем сотне микросервисах и поддерживала тысячи приложений в контейнерах. Я объясню проблемы, с которыми мы столкнулись при её разработке и запуске, и как сервис-меши могли бы помочь (или не могли).
Читать дальше →

Оптимизация работы почтовых хранилищ в Zimbra Collaboration Suite

Время на прочтение5 мин
Количество просмотров4.4K
В одной из наших предыдущих статей, посвященной планированию инфраструктуры при внедрении на предприятии Zimbra Collabortion Suite, было сказано, что главным ограничением при работе этого решения является скорость ввода-вывода дисковых устройств в почтовых хранилищах. И действительно, в то время, когда несколько сотен работников предприятия одновременно обращаются к одному и тому же почтовому хранилищу, ширины канала для записи и чтения информации с жестких дисков может не хватать для отзывчивой работы сервиса. И если для небольших установок Zimbra это не станет особой проблемой, то в случае с крупными предприятиями и SaaS-провайдерами все это может привести к неотзывчивой работе электронной почты и, как следствие, снижению эффективности сотрудников, а также к нарушению SLA. Именно поэтому при проектировании и эксплуатации масштабных установок Zimbra следует уделить особое внимание вопросу оптимизации работы жестких дисков в почтовом хранилище. Давайте рассмотрим два кейса и попробуем выяснить, какие методы оптимизации нагрузки на дисковые хранилища можно применить в каждом из них.

image
Читать дальше →

Иногда больше — это меньше. Когда уменьшение нагрузки приводит к увеличению задержки

Время на прочтение6 мин
Количество просмотров4.6K
Как и в большинстве постов, появилась проблема с распределённой службой, назовём эту службу Элвин. На этот раз я не сам обнаружил проблему, мне сообщили ребята с клиентской части.

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

Прежде чем отдать Элвина в тестирование, я провёл много экспериментов с 40 тыс. запросов в секунду (QPS), все показали задержку менее 10 мс. Я готов был заявить, что не согласен с их результатами. Но ещё раз взглянув на письмо, я обратил внимание на что-то новое: я точно не тестировал условия, которые они упомянули, их QPS был намного ниже, чем мой. Я тестировал на 40k QPS, а они только на 1k. Я запустил ещё один эксперимент, на этот раз с более низким QPS, просто чтобы ублажить их.
Читать дальше →

Additional Uplinks в архитектуре системной логики Intel C620

Время на прочтение3 мин
Количество просмотров2.8K
В архитектуре x86-платформ возникли два течения, взаимно дополняющие друг друга. По одной версии, нужно двигаться в сторону интеграции в одном кристалле вычислительных и управляющих ресурсов. Второй подход исповедует распределение обязанностей: процессор оснащается производительной шиной, формирующей периферийную масштабируемую экосистему. Он положен в основу топологии системной логики Intel C620 для высокоуровневых платформ.
Читать дальше →

Red Hat Universal Base Image (UBI) строить и жить помогает

Время на прочтение6 мин
Количество просмотров9.6K
Контейнеры представляют собой облегченную версию пользовательского пространства операционной системы Linux – фактически, это «голый» минимум. Тем не менее, это все равно полноценная операционная система, и поэтому качество этого самого контейнера так же важно, как полновесной операционной системы. Именно поэтому долгое время мы предлагали образы Red Hat Enterprise Linux (RHEL), чтобы пользователи могли иметь сертифицированные, современные и актуальные контейнеры корпоративного уровня. Запуск образов контейнеров (container images) RHEL на хостах контейнеров (container hosts) RHEL обеспечивает совместимость и переносимость между средами, не говоря уже о том, что это – уже знакомые инструменты. Была, правда, одна проблема. Вы не могли просто передать такой образ кому-то еще, даже если речь шла о заказчике или партнере, использующем Red Hat Enterprise Linux.



Но теперь все изменилось
Читать дальше: Build, Share, Collaborate

Когда переменная среды ускоряет процесс в 40 раз

Время на прочтение5 мин
Количество просмотров15K
Сегодня мы хотим рассказать о некоторых последних апдейтах системы Sherlock [это высокопроизводительный кластер Стэнфордского университета — прим. пер.], которые значительно ускоряют листинг файлов в каталогах с большим количеством записей.

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

Листинг многих файлов занимает время


Всё началось с вопроса в техподдержку от пользователя. Он сообщил о проблеме, что выполнение ls занимает несколько минут в каталоге c более 15 000 записей в $SCRATCH [каталог для временных файлов — прим. пер.].
Читать дальше →

Как выдержать повышенные нагрузки на систему: рассказываем о масштабной подготовке к Черной Пятнице

Время на прочтение5 мин
Количество просмотров3.2K
Привет, Хабр!

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

Цель поставили самую амбициозную из возможных: мы хотели быть полностью готовыми к любым, даже самым мощным, всплескам активности и начали заранее выводить новые мощности в течение года.

Наш CTO Андрей Чиж (chizh_andrey) рассказывает, как мы готовились к Черной Пятнице 2018, какие меры предприняли, чтобы избежать падений, и, конечно, же о результатах такой тщательной подготовки.


Читать дальше →

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

Preload, prefetch и другие теги

Время на прочтение9 мин
Количество просмотров151K
Есть много способов повышения веб-производительности. Один из них — предзагрузка контента, который понадобится позже. Префетчинг CSS, предварительный рендеринг полной страницы или резолвинг доменного имени. Делаем всё заранее, а потом мгновенно отображаем результат! Звучит круто.

Ещё круче, что это очень просто реализовано. Пять тегов <link rel> дают браузеру команду на предварительные действия:

<link rel="prefetch" href="/style.css" as="style" />
<link rel="preload" href="/style.css" as="style" />

<link rel="preconnect" href="https://example.com" />
<link rel="dns-prefetch" href="https://example.com" />

<link rel="prerender" href="https://example.com/about.html" />
Читать дальше →

Условия в Go и их странности

Время на прочтение7 мин
Количество просмотров13K
Как вы думаете, эквиваленты ли по производительности эти два варианта проверки условий внутри цикла?

		
if a > b && c*2 > d {
	....
}
// и
if a <= b  { 
  continue;
}
if c*2 > d {
 ....
}
Читать дальше →

Механизмы выделения памяти в Go

Время на прочтение11 мин
Количество просмотров46K
Когда я впервые попытался понять то, как работают средства выделения памяти в Go, то, с чем я хотел разобраться, показалось мне таинственным чёрным ящиком. Как и в случае с любыми другими технологиями, самое важное здесь скрывается за множеством слоёв абстракций, сквозь которые нужно пробраться для того, чтобы что-то понять.



Автор материала, перевод которого мы публикуем, решил добраться до сути средств выделения памяти в Go и рассказать об этом.
Читать дальше →

Линус Торвальдс не верит, что серверы на ARM-архитектуре заменят x86. «Продавать 64-битную модель — идиотизм»

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


На прошлой неделе компания ARM Holdings объявила, что разрабатывает новую микро-архитектуру для серверных процессоров. Вычислительное ядро, которое будет в ней использоваться, носит кодовое имя Ares, и по обещаниям должно дать 60% прирост по сравнению с текущей платформой. С каждым следующим поколением производительность должна расти еще на 30%.

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

Тем не менее, создатель Linux Линус Торвальдс скептично прокомментировал анонс. Он считает, что будущее новой архитектуры не так радужно.
Читать дальше →

Массовая печать в Windows

Время на прочтение6 мин
Количество просмотров47K
Иногда нужно быстро распечатать много картинок с котиками документов, а открывать для этого каждый файл совсем не хочется. Первым делом напрашивается использование контекстного меню проводника, но у этого способа есть свои ограничения и нюансы. Поэтому пришлось искать альтернативу. За подробностями — прошу под кат.
Читать дальше →

Облако — это просто чей-то компьютер

Время на прочтение5 мин
Количество просмотров17K
Когда мы запустили в 2013 году Discourse, наши требования к серверу были высокими:

  • 1 ГБ ОЗУ
  • быстрый двухядерный ЦП
  • быстрый твердотельный накопитель от 20 ГБ

Я имею в виду не дешёвый общий cpanel-сервер, а выделенный виртуальный частный сервер с такими характеристиками.

Нам этого было достаточно, потому что в течение следующего десятилетия Интернета мы писали на Ruby. Я сразу предсказывал, что цена аренды VPS с такими характеристиками упадёт до 5 долларов в месяц, и благодаря Digital Ocean это действительно случилось в январе 2018 года.

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


Но постойте… а что если вы сможете засунуть «в облако» свой компьютер?
Читать дальше →

I’m going deeper underground, или о чем стоит знать, оптимизируя работу сетевого приложения

Время на прочтение5 мин
Количество просмотров7.3K
Приветствую, друзья!

В предыдущих двух статьях (раз, два) мы погружались в сложность выбора между технологиями и искали оптимальные настройки для нашего решения в Ostrovok.ru. Какую тему поднимем сегодня?

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


Читать дальше →