Siege – это утилита для нагрузочного тестирования веб-серверов.
Она была создана для того чтоб дать разработчикам возможность проверить ресурсоёмкость своего кода в условиях, максимально приближенных к реальным. Так же Siege может имитировать обращения к сайту сразу нескольких пользователей. Это позволяет держать сервер как бы «под осадой» долгое время. Количество запросов, произведённых при «осаде», рассчитывается из общего количества пользователей и количества их обращений к серверу. Например 20 пользователей, обратившись по 50 раз, создают в общей сложности 1000 запросов. Результат, выводимый программой после тестирования, включает в себя время затраченное на проверку, общее количество переданной информации ( включая заголовки ), среднее время ответа сервера, его пропускную способность и число запросов на которые пришёл ответ с кодом 200. Эти данные формируются и выдаются при каждой проверке. Подробно они описываются ниже.
Siege имеет 3 основных модели работы – режим регрессионного тестирования, режим имитации Интернета и режим грубой силы. Программа считывает порцию ссылок из конфигурационного файла и обращается к ним по очереди ( режим регрессионного тестирования ) или случайно ( имитация интернета ). Или же пользователь может указать один единственный адрес к которому будут производиться все обращения – режим грубой силы.
Читать далее…
Зачастую (скорее всегда) на этапе разработки невозможно предугадать узкие места системы. Это во многом связано с неточностью прогнозируемых нагрузок и их пиков в разрезе конкретных модулей системы. Даже если Вы следуете всем основным принципам разработки высоконагруженных систем, у Вас скорее всего будут проблемы со специфическими подсистемами при росте нагрузок. Заранее определить такие места и приготовить стратегию масштабирования поможет нагрузочное тестирование.
Для нагрузочного тестирования существует ряд инструментов и сегодня мы рассмотрим один из них - простой и мощный Curl Loader.
Читать далее…
Curl Loader - это бесплатный инструмент, который позволяет симулировать нагрузку на приложение по протоколам HTTP(s) и FTP(s). Эта утилита позволяет проводить нагрузочное тестирование сайтов с десятками и сотнями тысяч виртуальных клиентов.
Читать далее…

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

Spinx отлично зарекомендовал себя, как движок полнотекстового поиска. Он обладает отличными показателями производительности и вместе с этим является функционально мощным инструментом. Sphinx прекрасно справляется с большими объемами данных при поиске.
Но есть и другая, более медленная операция, с которой приходится сталкиваться - построение индекса. На малых объемах обычно используют перестройку всего индекса, которая занимает не много времени. В случае же большого количества данных индексирование может стать очень медленным процессом (время полной переиндексации в некторых системах достигает дней и недель). В этом случае результаты поиска будут обладать малой временной актуальностью.
Одним из решений подобной проблемы является использование дельта индекса, о чем мы поговорим в этой статье.
Читать далее…

Кеширование - это один из способов оптимизации приложений (улучшение производительности, масштабирование и т.д.). Кешировать можно практически все - результаты выборок из СУБД, данные от внешних сервисов, статические данные (например, картинки), HTML (если страницы не интерактивные)…
В этой статье мы поговорим о кешировании на уровне приложения. Обычно, наиболее узким местом в приложении является СУБД (как правило, она еще и реляционная). Ранее мы писали о масштабировании и оптимизации СУБД. Теперь поговорим о кешировании и о том, когда и как его следует использовать.
Читать далее…

Компания Percona, занимающаяся консультированием по вопросам производительности и масштабирования объявила о запуске нового проекта - Percona.tv. Этот сайт будет наполняться полезными скринкастами, видео с коференций и просто полезными роликами на темы, касающиеся СУБД и не только.

В одной из предыдущих статей о клиентской оптимизации” было упомянуто, что стоит сжимать контент при отдаче его браузеру. Это минимизирует трафик и ускоряет загрузку данных у клиента.
Существуют два стандартных метода сжатия контента Web серверами - Gzip и Deflate. В чем же разница и какой из них выбрать?
Читать далее…

В этой статье представлена презентация Игоря Сысоева на тему тюнинга ОС FreeBSD 7 под высоконагруженный Web сервер. Он подробно рассказывает о тонкой настройке Web сервера под управлением freebsd. Каждый системный параметр детально описывается и докладчик предлагает рекомендуемые его значения. Must see.
Читать далее…

Как мы выбираем, по каким колонкам в MySQL строить индексы? Иногда не все так очевидно, как кажется. Эффективность того или иного индекса зачастую зависит от распределения данных в таблице. Правильный, на первый взгляд, индекс может работать крайне не эффективно в зависимости от специфики и частоты данных.
Как это можно выяснить? Простой и очень интересный пример взят с блога mysqlPerformanceBlog. Этот способ анализа индексов применим не только к MySQL, а и к другим СУБД.
Читать далее…
Комментарии