Все потоки
Поиск
Написать публикацию
Обновить
118.19

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

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

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

PostgreSQL Antipatterns: навигация по реестру

Время на прочтение4 мин
Количество просмотров11K
Сегодня не будет никаких сложных кейсов и мудреных алгоритмов на SQL. Все будет очень просто, на уровне Капитана Очевидность — делаем просмотр реестра событий с сортировкой по времени.

То есть вот лежит в базе табличка events, а у нее поле ts — ровно то самое время, по которому мы хотим эти записи упорядоченно показывать:

CREATE TABLE events(
  id
    serial
      PRIMARY KEY
, ts
    timestamp
, data
    json
);

CREATE INDEX ON events(ts DESC);

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

#0. «Я у мамы погроммист»


cur.execute("SELECT * FROM events;")
rows = cur.fetchall();
rows.sort(key=lambda row: row.ts, reverse=True);
limit = 26
print(rows[offset:offset+limit]);

Даже почти не шутка — редко, но встречается в дикой природе. Иногда после работы с ORM бывает тяжело перестроиться на «прямую» работу с SQL.

Но давайте перейдем к более распространенным и менее очевидным проблемам.
Читать дальше →

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

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

Мы продолжаем исследовать тему Java и Spring, в том числе, на уровне баз данных. Сегодня предлагаем почитать о том, почему при проектировании больших приложений именно структура базы данных, а не код Java, должна иметь определяющее значение, как это делается, и какие исключения есть из этого правила.
Читать дальше →

6 ключевых вопросов при переводе бизнеса в облако

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


Из-за вынужденных каникул даже крупным компаниям с развитой IT-инфраструктурой сложно организовать удаленную работу персонала, а у малого бизнеса попросту не хватает ресурсов для развертывания необходимых сервисов. Другая проблема связана с информационной безопасностью: открывать доступ во внутреннюю сеть с домашних компьютеров сотрудников рискованно без применения специализированных продуктов корпоративного класса. Аренда виртуальных серверов не требует капитальных затрат и позволяет вынести временные решения за пределы защищенного периметра. В небольшой статье мы рассмотрим несколько типовых сценариев использования VDS в условиях самоизоляции. Сразу стоит отметить, что статья ознакомительная и ориентирована больше на тех, кто только вникает в тему.
Читать дальше →

Сравнение производительности HTTP/3 и HTTP/2

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


Мы в Cloudflare объявили о поддержке HTTP/3 в сентябре прошлого года, когда отмечали девятый день рождения. Наша задача всегда состояла в улучшении интернета. Сотрудничество в области стандартов — важная часть процесса, и нам повезло участвовать в разработке HTTP/3.

Хотя HTTP/3 ещё на стадии черновика, мы заметили большой интерес к новому протоколу со стороны наших пользователей (инфраструктура Cloudflare обслуживает более 10% сайтов интернета — прим. пер.). К настоящему моменту поддержку HTTP/3 активировали более 113 000 зон, и если у вас экспериментальный браузер, то теперь вы можете получить доступ к этим зонам по новому протоколу! Здорово, что его включили так много людей: работа по HTTP/3 большого количества реальных веб-сайтов означает, что можно тестировать больше разнообразных свойств со стороны браузеров.
Читать дальше →

Более безопасное подключение к SSH с помощью DNSSEC

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

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

В реальной жизни почти никто не проверяет отпечаток SSH-ключа сервера не особенно задумываясь о возможности MiTM-атаках. С появлением DNS-записи SSHFP отпечаток ключа сервера можно хранить в DNS и проверять его подлинность с помощью DNSSEC. При этом не нужно даже подтверждать ключ при первом подключении. В статье разберем, как настроить запись SSHFP для своего SSH-сервера.
Читать дальше →

Сотни тысяч маршрутов в секунду на ядро. Опыт Яндекс.Маршрутизации

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


Пару недель назад Даня Тарарухин рассказал на Хабре, как появился наш сервис, Яндекс.Маршрутизация, и как он помогает компаниям с логистикой. Создавая платформу, мы решили несколько интересных проблем, одной из которых и посвящён сегодняшний пост. Я хочу поговорить о самом планировании маршрутов и необходимых для этого ресурсах.
Читать дальше →

Втискиваем Windows Server на маломощную VPS с помощью Windows Server Core

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

По причине прожорливости Windows-систем в среде VPS доминируют легкие Linux-дистрибутивы: Mint, Colibri OS, Debian или Ubuntu, лишенные ненужного, в рамках наших задач, тяжеловесного окружения рабочего стола. Как говорится, только консоль, только хардкор! И на самом деле, это совершенно не преувеличение: тот же Debian стартует на 256 MB памяти и одном ядре с тактом 1 Ghz, то есть почти на любом «пне». Для комфортной работы понадобятся от 512 MB и процессор чуть пошустрее. Но что если мы скажем вам, что примерно то же можно провернуть на VPS под Windows? Что не нужно накатывать тяжеловесный Windows Server, который требует от трех-четырех гектаров оперативной памяти и минимум пару ядер с тактом в 1,4 GHz? Просто воспользуйтесь Windows Server Core — избавьтесь от GUI и части служб. О том как это сделать и поговорим в статье.
Читать дальше →

Бесперебойное электроснабжение торговых центров или Shopping Must Go On

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


Вечером 9 декабря 2019 года предпраздничный шопинг посетителей торгового центра Eaton Centre в Торонто был прерван неожиданным блэкаутом. Торговые галереи погрузились в темноту, и единственным источником света осталась рождественская елка — ее фото многие поспешили запостить в соцсети как совершенно мистическое явление. Впрочем, среди твитов были и такие, где мистику объяснили легко и просто: елка была подключена к источнику бесперебойного питания. Сегодня мы поговорим о том, на каких ИБП арендаторы могут организовать бесперебойное электроснабжение для своих площадей в торговых центрах. Ведь shopping must go on, не правда ли?
Читать дальше →

Делегируем управление RDP-сеансами

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

В организации, где я работаю, удаленка запрещена в принципе. Была. До прошлой недели. Теперь пришлось в срочном порядке внедрять решение. От бизнеса — адаптация процессов к новому формату работы, от нас — PKI с пин-кодами и токенами, VPN, детальное логирование и много чего ещё.
Помимо всего прочего, я занимался настройкой инфраструктуры удаленных рабочих столов aka службы терминалов. У нас несколько RDS-развертываний в разных ЦОДах. Одной из задач было дать возможность коллегам из смежных подразделений ИТ подключаться к пользовательским сеансам в интерактивном режиме. Как известно, для этого есть штатный механизм RDS Shadow и самый простой способ его делегировать — дать права локального администратора на RDS-серверах.
Я уважаю и ценю своих коллег, но очень жадный до раздачи админских прав. :) Тех, кто со мной солидарен, прошу под кат.
Читать дальше →

Вывод результатов поиска и проблемы с производительностью

Время на прочтение12 мин
Количество просмотров3.9K
Один из типовых сценариев во всех привычных нам приложениях — поиск данных по определенным критериям и вывод их в удобном для чтения виде. Тут же могут быть дополнительные возможности по сортировке, группировке, постраничному выводу. Задача, по идее, тривиальная, но при ее решении многие разработчики делают ряд ошибок, из-за которых потом страдает производительность. Попробуем рассмотреть различные варианты решений этой задачи и сформулировать рекомендации по выбору наиболее эффективной реализации.

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

Для edge-серверов десятого поколения Cloudflare выбирает процессоры от AMD

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


Ежедневно через сеть Cloudflare Network проходит более миллиарда уникальных IP-адресов; она обслуживает более 11 млн HTTP-запросов в секунду; она находится на расстоянии не более 100 мс от 95% интернет-населения. Наша сеть раскинулась на 200 городов в более чем 90 странах, а наша команда инженеров построила чрезвычайно быструю и надёжную инфраструктуру.

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

Наш программный стек обрабатывает высоконагруженные вычисления и очень зависит от скорости CPU, из-за чего нашим инженерам приходится постоянно оптимизировать эффективность и надёжность Cloudflare на всех уровнях стека. На стороне сервера проще всего увеличить вычислительную мощность, добавив ядер CPU. Чем больше ядер можно уместить в сервере, тем больше он сможет обрабатывать данных. Для нас это важно, поскольку разнообразие наших продуктов и клиентов со временем растёт, и рост запросов требует от серверов увеличения производительности. Чтобы увеличить их производительность, нам требовалось увеличить плотность ядер – и именно эту задачу мы выполнили. Ниже приводим детализацию данных по процессорам для серверов, разворачиваемых нами с 2015 года, включая и количество ядер:
Читать дальше →

Когда Linux conntrack вам больше не товарищ

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

Отслеживание соединений (“conntrack”) является основной функцией сетевого стека ядра Linux. Она позволяет ядру отслеживать все логические сетевые соединения или потоки и тем самым идентифицировать все пакеты, которые составляют каждый поток, чтобы их можно было последовательно обрабатывать вместе.

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

Когда фильтр Блума не подходит

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


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

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

Взгляд изнутри на надёжность сервисов Facebook

Время на прочтение13 мин
Количество просмотров15K
Когда Facebook «лежит», люди думают, что это из-за хакеров или DDoS-атак, но это не так. Все «падения» за последние несколько лет были вызваны внутренними изменениями или поломками. Чтобы учить новых сотрудников не ломать Facebook на примерах, всем большим инцидентам дают имена, например, «Call the Cops» или «CAPSLOCK». Первый так назвали из-за того, что когда однажды соцсеть упала, в полицию Лос-Анджелеса звонили пользователи и просили его починить, а шериф в отчаянии в Твиттере просил не беспокоить их по этому поводу. Во время второго инцидента на кэш-машинах опустился и не поднялся сетевой интерфейс, и все машины перезапускали руками.

Элина Лобанова работает в Facebook последние 4 года в команде Web Foundation. Участники команды зовутся продакшн-инженерами и следят за надежностью и производительностью всего бэкенда, тушат Facebook, когда он горит, пишут мониторинг и автоматизацию, чтобы облегчить жизнь себе и другим.



В статье, основанной на докладе Элины на HighLoad++ 2019, расскажем, как продакшн-инженеры следят за бэкендом Facebook, какие инструменты используют, из-за чего возникают крупные сбои и как с ними справиться.

Оптимизируем СХД: кейс унификации и снижения стоимости владения

Время на прочтение6 мин
Количество просмотров4.3K
В статье описывается процесс оптимизации инфраструктуры хранения данных компании среднего класса.

Рассмотрены обоснования для такого перехода и краткое описание процесса настройки новой СХД. Приводим в пример плюсы и минусы перехода на выбранную систему.

Введение


Инфраструктура одного из наших заказчиков состояла из множества разнородных систем хранения данных разного уровня: от SOHO-систем QNAP, Synology для пользовательских данных до Entry и Mid-range систем хранения уровня Eternus DX90 и DX600 для iSCSI и FC для служебных данных и систем виртуализации.

Всё это различалось как по поколениям, так и по применяемым дискам; часть систем представляла из себя legacy оборудование, не имевшее поддержки вендора.

Отдельной проблемой было управление свободным местом, так как всё доступное дисковое пространство было сильно фрагментировано по множеству систем. Как следствие – неудобство администрирования и высокая стоимость содержания парка систем.

Перед нами встала задача оптимизации инфраструктуры хранения данных с целью снижения стоимости владения и унификации.

Поставленная задача была всесторонне проанализирована экспертами нашей компании с учётом требований заказчика к доступности данных, IOPS, RPO/RTO, а также возможности модернизации существующей инфраструктуры.
Читать дальше →

Лучшие серверы для малого бизнеса в 2020 году

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

Несмотря на широкое распространение облачных серверов многие выбирают локальные серверы, которые дают больше контроля. Портал TechRadar составил список 10 лучших серверов, начиная с тех, которые предназначены для небольших предприятий, и заканчивая теми, которые могут понадобиться крупным корпорациям.
Читать дальше →

4-ая платформа отходит от б/у сервера

Время на прочтение8 мин
Количество просмотров6.6K
Всем привет! Мы с коллегами столкнулись с дефицитом информации о развитии серверного оборудования, а также по сравнениям разных линеек при подборе конфигураций под самые ходовые нужды (по крайней мере те, с которыми мы в GaltSystems работаем чаще всего). Вспоминая нашу прошлогоднюю статью, мы подробно поговорим о серверном оборудовании, его эволюции и ряде сценариев использования.


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

Почему нужна инструментальная поддержка пагинации на ключах

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

Всем привет! Я бэкэнд-разработчик, пишу микросервисы на Java + Spring. Работаю в одной из команд разработки внутренних продуктов в компании Тинькофф.



У нас в команде часто встает вопрос оптимизации запросов в СУБД. Всегда хочется еще чуть-чуть быстрее, но не всегда можно обойтись продуманно выстроенными индексами — приходится искать какие-то обходные пути. Во время одного из таких скитаний по сети в поисках разумных оптимизаций при работе с БД я нашел бесконечно полезный блог Маркуса Винанда, автора книги SQL Performance Explained. Это тот самый редкий вид блогов, в котором можно читать все статьи подряд.


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

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

Особенности профилирования программ на C++

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

Временами бывает нужно отпрофилировать производительность программы или потребление памяти в программе на C++. К сожалению, зачастую это сделать не так просто как может показаться.

Здесь будут рассмотрены особенности профилирования программ с использованием инструментов valgrind и google perftools. Материал получился не очень структурированным, это скорее попытка собрать базу знаний «для личных целей», чтобы в будущем не приходилось судорожно вспоминать, «а почему не работает то» или «а как сделать это». Скорее всего, здесь будут затронуты далеко не все неочевидные случаи, если вам есть что добавить, пишите пожалуйста в комментарии.

Все примеры будут запускаться в системе linux.
Читать дальше →

HighLoad++, Юрий Насретдинов (ВКонтакте): как VK вставляет данные в ClickHouse с десятков тысяч серверов

Время на прочтение18 мин
Количество просмотров9.1K
HighLoad++ Moscow 2018, зал «Конгресс-холл». 9 ноября, 15:00

Тезисы и презентация: http://www.highload.ru/moscow/2018/abstracts/4066

Юрий Насретдинов (ВКонтакте): в докладе будет рассказано об опыте внедрения ClickHouse в нашей компании – для чего он нам нужен, сколько мы храним данных, как их пишем и так далее.



Дополнительные материалы: использование Clickhouse в качестве замены ELK, Big Query и TimescaleDB