Highload — Highload.today
Как реализовать системы с высокой нагрузкой на PHP: личный опыт
Павло Калінін BLOG
Head of IT Infrastructure Department в одній з продуктових компаній від venture builder SKELAR
Вопрос High Availability – как увеличивать производительность и работать с высокой нагрузкой – в любом продукте стоит остро. В этом материале рассмотрим подход, который предназначен для ускорения работы PHP с брокером сообщений, на примере стека PHP + RabbitMQ + AMQProxy.
Анонс онлайн-ивента для Web3-разработчиков: улучшаем пользовательский опыт в dApps. Участие бесплатное
25 мая состоится бесплатная онлайн-встреча с соучредителями Nerif.network. Это кроссчейн-платформа, которая позволяет автоматизировать dApps. Роман Бегма и Йоханнес Керн расскажут об инструментах, которые помогут разработчикам и основателям проектов сэкономить время и упростить процессы.
Мощный инструмент, если уметь с ним обращаться: используйте Git как сеньор
Редакторка у Highload
Разработчик Якоб Беннет в своем блоге на Medium пишет, что Git — это мощный инструмент, которым приятно пользоваться, если вы понимаете, как именно это делать.
Паттерны проектирования: их виды, особенности и преимущества
Автор, розробник та перекладач
Шаблоны или паттерны проектирования (от англ. Design Patterns) — это типовые решения распространенных проблем при проектировании программного обеспечения. Они используются как руководства, которые помогают инженерам создавать проекты в соответствии с передовыми рекомендациями.
Singleton в PHP на примере подключения к MySQL
Технічний редактор Highload
Singleton (синглтон, одиночка) – один из простейших для понимания шаблонов проектирования в PHP. Это обычный класс в PHP, в логику которого добавлена проверка на единственность создания его экземпляра.
Оптимизация нагрузки с помощью Amazon SQS
Юрий Антончик BLOG
Backend PHP Developer в IO Technologies
У наших пользователей — терабайты данных аналитики, выгрузка которых в какой-то момент начала перегружать наши серверы. Помимо отрицательного пользовательского опыта из-за плохой работы продукта, мы получали всплески нагрузки, что могло в любой момент привести к еще большим проблемам. Решением стал сервис Amazon SQS.
Тестирование очень больших нагрузок на приложение: подводные камни и полезные инструменты (часть II)
Сергей Могилевский BLOG
QA Team Lead и TechLead в NIX
Рассказываем о том, как настроить тестирование производительности приложения через JMeter, и о подводных камнях этого процесса.
Тестирование очень больших нагрузок на приложение: подводные камни и полезные инструменты (часть I)
Сергей Могилевский BLOG
QA Team Lead и TechLead в NIX
В один прекрасный день наш заказчик приложения решает, что пришло время для тестирования производительности. Проект большой, коммуникации в бэкенде много, так что запрос вполне ожидаемый. И все же — когда мы получили заявку на тестирование производительности, то плохо понимали реальный объем нагрузки на наше веб-приложение в продакшене.
Redis: большое потребление RAM, и при чем тут TTL?
Назим Сулейманов BLOG
Team Lead в Jooble
Мы в Jooble активно используем Redis как кеш и быструю базу данных. У нас два master-slave-кластера, которые выполняют в среднем 12 000 операций в секунду. А дальше — история о том, как наш кластер стал падать по «out of memory», и о сложном поиске причины.
Постраничный вывод в MySQL
Технічний редактор Highload
Выборки со смещением (LIMIT/OFFSET) могут работать очень медленно при больших значениях смещений. Это происходит по причине того, что MySQL перебирает и отбрасывает все строки результата, пока их количество не будет равно значению OFFSET. Например:
Выбор формата картинок
Во многих случаях общий размер картинок, которые грузятся на странице составляет более 50% от веса все страницы. Критично важно подбирать правильный формат для используемых изображений. Их всего два PNG и JPG, поэтому это не так сложно.
Что делать, если cp: command not found
Иногда возникает простая проблема при создании тасок на шелле — скрипты работают, если запускать их вручную, но не работают, если они запускаются на кроне или в каком-то другом окружении. При этом мы видим такую ошибку:
Очереди на Gearman и PHP
Технічний редактор Highload
Gearman – это простая система очередей. Имеет кучу клиентов, в том числе и для PHP. Позволяет масштабироваться на несколько серверов, а также имеет возможность приоритизации задач.
Проекции (projections) в Vertica
Проекции (projections) используются в БД Vertica для ускорения выборок. Это просто копия данных, которые отсортированы/отфильтрованы/сгруппированы определенным образом.
Асинхронная загрузка CSS
Асинхронная загрузка CSS позволит быстрее показать Вашу страницу посетителю. Это критично для мобильных устройств, когда канал может быть медленным.
SSH по ключу (без пароля)
Если вы еще пользуетесь SSH доступом по паролю, срочно меняйте привычку. Это опасно.
Лучше использовать доступ по ключу.
Тестирование нагрузки Mysql
Технічний редактор Highload
Sysbench — утилита для тестирования производительности MySQL (и других СУБД), а также параметров операционной системы. Подобный инструмент незаменим для предварительного тестирования эффективности системы с (потенциально) высокой нагрузкой. Sysbench позволяет оценить производительность сервера СУБД и операционной системы в различных условиях при различной нагрузке.
Multi Get в Memcache
Memcache предоставляет возможность получения значений нескольких ключей сразу. Зачем это может понадобиться и в каких случаях это нужно использовать? Посмотрим на структуру запросов от приложения к Memcache, когда идет получение нескольких ключей:
Как обновить крон без запуска текстового редактора
Все знают, что можно сделать так:
Клиентская оптимизация
Клиентская оптимизация — это набор методик, которые сделают сайт быстрее для пользователя без существенных изменений на серверной стороне. Прирост в скорости может достигать десятикратного улучшения. При этом техники довольно простые.
5 советов по использованию SVN
Apache Subversion (SVN) — централизованная система управления версиями, то есть для хранения всех файлов и совместной работы используется центральный сервер (или ПК). Так что без дополнительных ухищрений, без доступа к серверу разработка будет весьма проблематичной.
Правильная конфигурация Nginx
Технічний редактор Highload
Наткнуться на подводные камни в конфигурации и работе веб-сервера очень легко. Но трудно понять причину некорректной или не всегда корректной/ошибочной работы, если все правила соблюдаются.
414 Request URI Too Large
Технічний редактор Highload
Ошибка 414 Request URI Too Large возникает в тех случаях, когда веб-сервер не способен обслужить запрос от клиента (т.е. веб-браузера или робота), потому что запрашиваемый URI (Request URI) длиннее, чем сервер может интерпретировать. Говоря простым языком, запрашиваемый веб-адрес слишком длинный, то есть содержит слишком много байтов.
nginx.conf
Технічний редактор Highload
nginx.conf — конфигурационный файл Nginx. Чтобы его найти нужно выполнить команду:
Как выбрать сервер
Иногда лучше купить новый сервер, чем оптимизировать приложение. Время разработчиков сейчас стоит намного дороже серверов. Как выбирать сервера для роста и новых задач?
Что такое stolen CPU
В эпоху Amazon и DigitalOcean мы все сильно привыкли к использованию виртуальных узлов. Это удобно и быстро.
ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
Технічний редактор Highload
Это очередная проблема в Mysql-репликации, которая может возникнуть при обновлении версии Mysql. Ну или просто так. Чтобы ее решить, необходимо перезапустить репликацию:
Cache-control с динамикой
Заголовок Cache-control позволяет значительно увеличить скорость загрузки сайта, а также разгрузить канал между сервером и пользователем. Этот заголовок включает кэширование и просто в применении для файлов, которые никогда не меняются. Но для того, чтобы использовать это преимущество для файлов, которые могут меняться, нужно детальнее разобраться в клиентском кэшировании:
my.cnf
Технічний редактор Highload
my.cnf — это файл конфигурации MySQL. Чтобы найти файл, используйте команду:
Как проверить, включен ли Cache-control?
Для проверки установки заголовка Cache-control используйте этот или этот онлайн-инструменты. Удобный вариант был еще по этому адресу, но, похоже, его создатели не продлили домен.
Кэширование с Nginx
Технічний редактор Highload
Nginx умеет кэшировать запросы самостоятельно. Преимущества использования Nginx cache в его простоте по сравнению с Varnish.
Какую базу данных выбрать – SQL или NOSQL?
Автор
В этой статье мы сравним реляционные (SQL) и нереляционные (NoSQL) базы данных. Попутно рассмотрим историю их создания и сценарии вероятного использования.
Тюнинг сервера Apache
Технічний редактор Highload
Apache — самый популярный Web сервер. Настройка некоторых параметров (тюнинг) может дать существенный прирост в скорости его работы.
Раздача файлов через CDN
Технічний редактор Highload
CDN (Content Delivery Network) – это специальная технология, которая позволяет посетителю получать содержимое сайта из разных географических мест.
Кэширование с Varnish
Технічний редактор Highload
Varnish – это гибкое решение для кэширования страниц на уровне Web сервера.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: