• Нагрузочное тестирование сайта

    @cbx
    Если хочется просто и быстро, то вполне сгодится Apache Benchmark идущий в комплекте с веб-сервером Apache. Как-то так:

    ab -n 1000 -c 10 http://my.site.dot.com/url/path/

    Варьируя число одновременных соединений (-c 10) и общее количество запросов (-n 1000) можно примерно прикинуть когда сайт начнёт загибаться. Тестировать лучше с другой машины. Также стоит учесть, что если контент страницы меняется от запроса к запросу (динамика), то AB посчитает такие ответы сервера как Failed: www.celebrazio.net/tech/unix/apache_bench.html

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

    Если захочется большего — смотрите более богатые по возможностям Apache JMeter или Tsung (первый графический, второй консольный). Оба умеют кластеризоваться и генерировать нагрузку с нескольких машин (для этого удобно арендовать инстансы в Amazon EC2), имеют встроенный прокси для записи пользовательских сессий и позволяют задать скорость клиентского соединения (актуально для имитации медленных клиентов и оценки влияния того же nginx). UPD: ещё неплох Yandex Tank

    В любом случае, перед тем как измерять производительность сайта, озаботьтесь мониторингом серверов на которых этот сайт крутится. Без этого смысла в бенчмарках очень мало — они дадут вам какие-то цифры, но дальнейшего плана действий у вас не будет. Как минимум — запустите на машинах утилиту top и смотрите загрузку CPU, потребление памяти и дисковую активность. Также после тестирования просматривайте логи на предмет появившихся ошибок (нехватку сокетов, памяти, ошибки веб-сервера или БД). Полезно включить логгирование медленных запросов в MySQL.

    Дальше — устраняйте выявленные узкие места и повторяйте процесс заново, до тех пор пока не выйдете на приемлемый уровень производительности.
    Ответ написан
    Комментировать
  • Как сделать чтобы материал не копировали?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Настолько за...ся отвечать на этот вопрос заказчикам, что записал видео, рекомендую:
    https://youtu.be/NYemdnasxzg
    Там не только про это, так что проматывай начало, если не интересно про keywords
    Ответ написан
    Комментировать
  • Как настроить выборку товаров по фильтру?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    все, потому что в БД нет значения "all" или "все".
    Поскольку и :sz может быть all
    SELECT * FROM `brick` WHERE ( sz=:sz OR :sz = 'all' ) AND ( brand=:brand OR :brand = 'all' )
    Ответ написан
  • Нужно ли для многопользовательской системы создавать много пользователей в mysql?

    @Camaro67
    Помог? - "Отметить решением"
    Не нужно. Пользователи mysql и пользователи сайта/системы это разные вещи.
    Ответ написан
    Комментировать
  • Можно ли реализовать постраничную навигацию для API?

    @entermix
    Можно ли и если да то как реализовать такую фичу, чтобы не возвращалось сразу 100500 новостей, а возвращалось малыми частями.


    Используйте оператор LIMIT:
    SELECT FROM `table` WHERE `article_id` = {ARTICLE_ID} LIMIT 5, 10

    Запрос вернет 5 записей (5-10 включительно)

    При листании страниц отсылать запрос на следующую партию новостей или как?

    Да
    Ответ написан
    Комментировать