Яков Сироткин (yakov_sirotkin) wrote,
Яков Сироткин
yakov_sirotkin

Анализ производительности по логам

Если у вас есть большой сервер, то можно при вызове каждого доступного снаружи метода писать в лог, когда это случилось, имя метода и как долго он выполнялся. Время выполнения надо писать в наносекундах, потому что миллисекунды часто измеряются с точность до 1/18 секунды.

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

Для всего этого можно написать небольшое приложение, которое будет уметь собирать данные из нескольких больших файлов (можно считать, что они уже приведены к нужному формату — полные логи легче обработать на сервере, чем копировать по сети), рисовать разные графики и отсылать отчёты по почте. Есть возможность накопить полезный опыт и придумать новые методы анализа производительности.

Думаю, это неплохая тема как минимум для курсовой работы. Естественно, код нужно открывать, чтобы компании с большими серверами могли им воспользоваться.
Tags: code
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 75 comments