Назад | Перейти на главную страницу

Определение этих показателей записано в / proc / vmstat на RHEL 5.3 (подкачка / свопинг?)

Этот вопрос относится к определению конкретных метрик, записанных в / proc / vmstat в RHEL 5.3.

Я использую nmon для мониторинга нагрузочного теста, который состоит из моделирования 2500 пользователей, выполняющих дневную рабочую нагрузку за один час. Недавно я заметил плохую производительность и сейчас пытаюсь диагностировать и исключать различные соображения.

Мы запускаем Red Hat Enterprise Linux Server версии 5.3 (Tikanga) на vmware ESX. Физический сервер, на котором я сосредоточен, и сервер приложений Oracle (он включает HTTP-сервер Apache и контейнер OC4J J2EE).

Диаграммы nmon, которые я просматриваю, показывают последовательное распределение по метрике pswpin. Обобщено как; min = 4312; макс = 245352; avg = 86734. Nmon показывает эти значения, измеренные в «кбайтах в секунду».

Следующие показатели равны нулю на протяжении всего теста;

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

Мои вопросы):

  1. Кто-нибудь может подтвердить, что представляют собой эти показатели?
  2. Есть идеи, какое поведение системы может вызвать такое поведение виртуальной машины?

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

РЕДАКТИРОВАТЬ: Я нашел свидетельства большого количества вызовов fork () на протяжении всего теста. Я подозреваю демонов Apache. Но может ли создание процесса быть причиной этих показателей?

РЕДАКТИРОВАТЬ: Я добавил типичный образец вывода виртуальной машины из nmon. Извинения за плохое форматирование.

Заранее спасибо за любые ответы.

T0001   -1  22  -1  -1  -1  150 -1  -1  -1  5196046163  -1  0   30  100199751   3060    -1  0   -1  885 -1  -1  -1  46163   -1  -1  18  -1  828189171   -1  -1  3838    -1  -1  -1  -1  -1  165231  
03:07:23    Paging and Virtual Memory   nr_dirty    nr_writeback    nr_unstable nr_page_table_pages nr_mapped   nr_slab pgpgin  pgpgout pswpin  pswpout pgfree  pgactivate  pgdeactivate    pgfault pgmajfault  pginodesteal    slabs_scanned   kswapd_steal    kswapd_inodesteal   pageoutrun  allocstall  pgrotated   pgalloc_high    pgalloc_normal  pgalloc_dma pgrefill_high   pgrefill_normal pgrefill_dma    pgsteal_high    pgsteal_normal  pgsteal_dma pgscan_kswapd_high  pgscan_kswapd_normal    pgscan_kswapd_dma   pgscan_direct_high  pgscan_direct_normal    pgscan_direct_dma
03:07:33    -1  99  -1  -1  -1  241 0   0   0   77526   0   0   0   824 0   0   0   0   0   0   0   0   77526   0   0   0   0   0   0   0   78216   0   0   0   0   0   0   
03:07:43    -1  10  -1  -1  -1  262 0   0   0   21653   0   0   8   500 2   0   0   0   0   0   0   0   21653   0   0   0   0   0   0   0   17675   0   0   0   0   0   0   
03:07:53    -1  69  -1  -1  -1  257 0   0   0   115744  0   0   0   724 0   0   0   0   0   0   0   0   115744  0   0   0   0   0   0   0   -79544  0   0   0   0   0   0   
03:08:03    -1  69  -1  -1  -1  196 0   0   0   81202   0   0   0   628 0   0   0   0   0   0   0   0   81202   0   0   0   0   0   0   0   -18335  0   0   0   0   0   0   
03:08:13    -1  81  -1  -1  -1  205 0   0   0   29051   0   0   0   352 0   0   0   0   0   0   0   0   29051   0   0   0   0   0   0   0   24449   0   0   0   0   0   0   
03:08:24    -1  91  -1  -1  -1  131 0   0   0   122795  0   0   0   1172    0   0   0   0   0   0   0   0   122795  0   0   0   0   0   0   0   9640    0   0   0   0   0   0   
03:08:34    -1  6   -1  -1  -1  182 0   0   0   74914   0   0   4   372 1   0   0   0   0   0   0   0   74914   0   0   0   0   0   0   0   -24477  0   0   0   0   0   0   
03:08:44    -1  38  -1  -1  -1  200 0   0   0   42957   0   0   4   464 1   0   0   0   0   0   0   0   42957   0   0   0   0   0   0   0   42778   0   0   0   0   0   0   
03:08:54    -1  6   -1  -1  -1  141 0   0   0   89751   0   0   36  1000    9   0   0   0   0   0   0   0   89751   0   0   0   0   0   0   0   -9665   0   0   0   0   0   0   
03:09:04    -1  6   -1  -1  -1  171 0   0   0   74740   0   0   4   516 1   0   0   0   0   0   0   0   74740   0   0   0   0   0   0   0   -24583  0   0   0   0   0   0   
03:09:14    -1  10  -1  -1  -1  179 0   0   0   56063   0   0   0   500 0   0   0   0   0   0   0   0   56063   0   0   0   0   0   0   0   56384   0   0   0   0   0   0   
03:09:24    -1  6   -1  -1  -1  74  0   0   0   75623   0   0   0   696 0   0   0   0   0   0   0   0   75623   0   0   0   0   0   0   0   -23994  0   0   0   0   0   0   
03:09:34    -1  6   -1  -1  -1  137 0   0   0   75466   0   0   8   972 2   0   0   0   0   0   0   0   75466   0   0   0   0   0   0   0   -23837  0   0   0   0   0   0   
03:09:44    -1  3   -1  -1  -1  153 0   0   0   72535   0   0   4   460 1   0   0   0   0   0   0   0   -927465 0   0   0   0   0   0   0   -26880  0   0   0   0   0   0   
03:09:54    -1  6   -1  -1  -1  170 0   0   0   56775   0   0   0   284 0   0   0   0   0   0   0   0   56775   0   0   0   0   0   0   0   56895   0   0   0   0   0   0
03:10:04    -1  6   -1  -1  -1  166 0   0   0   74756   0   0   0   1116    0   0   0   0   0   0   0   0   74756   0   0   0   0   0   0   0   -24568  0   0   0   0   0   0
03:10:14    -1  6   -1  -1  -1  148 0   0   0   78043   0   0   0   432 0   0   0   0   0   0   0   0   78043   0   0   0   0   0   0   0   -21241  0   0   0   0   0   0
03:10:24    -1  64  -1  -1  -1  189 0   0   0   64057   0   0   0   412 0   0   0   0   0   0   0   0   64057   0   0   0   0   0   0   0   60788   0   0   0   0   0   0
pgpgin      -  Number of kilobytes the system has paged in from disk per second.
pgpgout     -  Number of kilobytes the system has paged out to disk per second.
pswpin      -  Number of kilobytes the system has swapped in from disk per second.
pswpout     -  Number of kilobytes the system has swapped out to disk per second.

Я на 87% уверен, что каждая страница, увеличивающая счетчик pswpin, должна также увеличивать pgpgin. Вы говорите, что это не так. Хммм.

Это может быть слишком упрощенно для проверки (извините!), Но ... Вы на 200% уверены, что наблюдаемая вами метрика - это pswpin, а не pgpgin? Последнее будет означать: процесс читает некоторые файлы.

Другое объяснение заключается в том, что приложение было сильно заменено перед тестом, после чего система получила много свободной памяти. И во время теста вы наблюдаете, как он «оживает» (постоянно меняет местами - по мере выполнения кода), без чтения / записи каких-либо файлов. Но почему в таком сценарии не увеличивается pgpgin вместе с pswpin, мне непонятно.

Может быть, ваши диаграммы подправлены, поэтому pswpin вычитается из pgpgin? Одним из аргументов в пользу этого является то, что обе метрики обычно находятся на страницах (в / proc / vmstat), и вы конвертируете их в КБ / с.

EDIT: это может быть связано с ESX. Мое безумное предположение, что это побочный эффект либо всплытия, либо прозрачного совместного использования страниц (TPS). Вы можете анализировать через esxtop на ESX? Вот это другое руководство по esxtop.

EDIT: ваша статистика nmon кажется сломанной. Прежде всего, имен столбцов больше, чем фактических показателей (т.е. у вас нет данных для последнего столбца pgscan_direct_dma). В загруженной системе должно быть много значений -1 или 0 для метрик, не только pgpgin отсутствует. Pgsteal и pgrotated есть, но иногда отрицательные, что невозможно.

Итак, посмотрите / proc / vmstat, что там происходит? И используйте другие инструменты для подтверждения статистики nmon.