Как я могу соотнести просмотры страниц с пиками памяти? - PullRequest
4 голосов
/ 03 февраля 2010

У меня проблемы с памятью в приложении, но сложно определить, где именно.У меня есть два набора данных:

Просмотры страниц

  • Запрошенная страница
  • Время, когда указанная страница была запрошена

Использование памяти

  • Объем используемой памяти
  • Время записи этого использования памяти

Я хотел бы видеть, какие именно просмотры страниц связаны с высоким использованием памяти.Я предполагаю, что я буду делать некоторый T-тест, чтобы определить, какие просмотры страниц коррелируют с увеличением использования памяти.Тем не менее, я немного не уверен относительно того, с каким типом Т-теста пройти.Может кто-нибудь хотя бы указать мне правильное направление?

Ответы [ 4 ]

3 голосов
/ 03 февраля 2010

Я бы предложил построить набор данных из двух столбцов.Первая - это доля появлений каждой страницы в наибольшее время использования памяти при распределении, а вторая - доля этих (одних и тех же) страниц для остальных значений распределения памяти.

Затем вам нужно будет выполнить парный тест, чтобы проверить, является ли медиана различий (высокий отдых) меньше или равна нулю (H0), в отличие от альтернативной гипотезы, что медиана разности больше, чемноль (H1).Я бы предложил использовать непараметрический тест Wilcoxon Signed Ranks Test, который является вариацией Mann - Whitney Test для парных образцов.Он также учитывает величину различий в каждой паре, что игнорируют другие тесты (например, тест знака).

Имейте в виду, что связи (нулевые различия) создают многочисленные проблемы при выводе непараметрических методов и должныизбегать.Предпочтительный способ справиться со связями - добавить немного «шума» к данным.То есть завершите тест после изменения связанных значений, добавив достаточно небольшую случайную переменную, которая не повлияет на ранжирование различий

Я надеюсь, что результаты теста и построение графика распределения различий позволят вам понять, где проблемаis.

Это реализация теста подписанных рангов Уилкоксона на языке R

3 голосов
/ 03 февраля 2010

Джейсон,

Вы задаете хорошие статистические вопросы. Подумайте об объеме памяти, используемой в качестве случайной величины. Первым делом стоит посмотреть на распространение этого р.в. Это может не соответствовать ни одному известному дистрибутиву, но не позволяйте этому останавливать нас. Одним из простых подходов было бы взять максимальное использование памяти (верхние 5-10%) и посмотреть, отличаются ли эти просмотры страниц (или времена, когда они запрашивались) от просмотров страниц для остальных. Я думаю, что вам понадобится какой-то непараметрический тест, который сравнивает соотношение просмотров страниц в образце с низкой памятью и соотношении просмотров страниц в образце с высокой памятью. Надеюсь, это поможет.

1 голос
/ 07 февраля 2010

Вот еще одна идея: Если вы можете объединить просмотры страниц и использование памяти по значениям отметки времени, вы можете сформировать таблицу, подобную этой

Страница A | Страница B | Страница C | Страница D | Страница E | .... | Memory_use

Значение для каждого из столбцов страницы может быть битом [0,1], показывая, была ли страница запрошена или нет, или количество страниц, в зависимости от ваших данных. В столбце Memory_use вы можете указать соответствующие пропорции загрузки памяти или количество в МБ. Таким образом, Memory_use можно рассматривать как зависимую переменную и страницы как пояснительные. Таким образом, вы можете подобрать подходящую (в зависимости от формы зависимой переменной) обобщенную линейную модель для этого набора данных. Результаты этого анализа помогут вам понять следующее

- Какие страницы существенно влияют на стоимость использования памяти

-Сколько вклад каждой страницы в нагрузку (по коэффициенту в модели)

-Возможность того, что другие факторы, не измеренные, играют значительную роль в загрузке памяти (чрезмерное рассеяние), при худшем случае, когда все переменные предиктора могут оказаться неважными.

1 голос
/ 04 февраля 2010

То, что вы представляете, безусловно, является интересной статистической проблемой, но могу ли я предложить графический подход с хорошей старой таблицей?

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

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

...