avpdnepr
@avpdnepr
Человек без любви опаснее тигра и акулы?

Как сделать статистику времени загрузки web-страничек?

Как сделать статистику времени загрузки web-страничек? У меня nginx и php5.6.
У меня почему-то долго формируются странички SuiteCRM.
  • Вопрос задан
  • 398 просмотров
Пригласить эксперта
Ответы на вопрос 2
BuriK666
@BuriK666 Куратор тега Nginx
Компьютерный псих
Ответ написан
Комментировать
alekciy
@alekciy
Вёбных дел мастер
Задать в формат лог файла переменную $upstream_response_time. У меня так в /etc/nginx/nginx.conf:
http {

    ##
    # Basic Settings
    ##
    log_format main     '$remote_addr:$remote_port - $remote_user [$time_local] $host "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for" $request_time-$upstream_response_time';
....
}

Тогда в логах есть в конце строки есть две цифры:
  1. время отдачи данных клиенту
  2. время генерации ответа PHP

Первая цифра позволяет выявлять "медленных" клиентов (когда первая цифра большая, а втора маленька). Вторая показывает как долго движок генерит страницы. Позволяет выявлять проблемы на бэкэнде. А вот такая команда позволяет посчитать медиану времени генерации страницы:
cat nginx_access.log | awk -F\" '{print $9}' | grep -v ".--$" | awk -F\- '{print $2}' | sort -n | awk '{all[NR]=$1;} END {print all[int(NR*0.5)]}'
1.391

Общее количество запросов на бэкэнд у меня сегодня:
cat nginx_access.log | awk -F\" '{print $9}' | grep -v ".--$" | wc -l
74557

Что в сумме мне говорит, что сегодня 50% (медиана) запросов на бэкэнд, т.е. 37288 штук, отработало менее чем за 1.391 секунд. Хотя лично я предпочитаю мониторить 85%-ый перцентиль:
cat nginx_access.log | awk -F\" '{print $9}' | grep -v ".--$" | awk -F\- '{print $2}' | sort -n | awk '{all[NR]=$1;} END {print all[int(NR*0.85)]}'
1.869
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы