Сколько памяти потребляет ядро AIX 6

Главная Форумы POWER Systems AIX/Hardware Сколько памяти потребляет ядро AIX 6

Просмотр 13 веток ответов
  • Автор
    Сообщения
    • #18595

      Есть у меня сервер с 4Г памяти и при нагрузке он начинает активно свопить. Вскрытие показало, что:

      • Сумируя все уникальные сегменты памяти всех процессов (svmon -P и awk) получилось около 2.3Г
      • Сумма всех уникальных сегментов, через svmon -S, даёт около 4Г, т.е. память реально закончилась и пошел своп.
      • Из vmstat видно, что кеш файловой системы всего 235 старниц (наверное 4к). База данных, испльзуется CIO.

      При вычислении сегментов sm я сделал допущение, что их распределение соответствует распределению s/m взятому из svmon -G, то есть в моем случае в среднем страница 18К.

      Также я предполагаю, что сегменты не видимые через svmon -P, но видимые через S это ядро.

      Получается, что либо это ядро использует около 1.7Г, либо мои расчеты где-то упираются в нечто мне непонятное. Например наличие некоторых скрытых сегментов процессов. Вот эту тему читал.

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

    • #18597
      andrewk
      Участник

      # svmon -G -O unit=KB
      Unit: KB
      ————————————————————————————–
      size inuse free pin virtual available mmode
      memory 1048576 1001568 47008 455264 553676 418276 Ded
      pg space 524288 6412

      # svmon -S -O unit=KB,filtercat=kernel | awk ‘{SUM+=$NF} END {print SUM}’
      386424

    • #18598
      andrewk
      Участник

      это про то, как посчитать/посмотреть кернельные сегменты. А сколько ему должно отводиться – Вам виднее. Ваша система, Вы настраивали.

    • #18601

      > Вы настраивали.

      Я конечно нуб, но как можно настроить потребления памяти ядром?

    • #18602
      andrewk
      Участник

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

    • #18603

      Кеша fs по сути нет, сетевые буферы посмотрю, спасибо. Большие страницы есть, но мне казалось, что они входят в “зачет” процессам, а не кернелу. Аналогично aio, я полагал, что с появлением aioserver, все кешы ввода-вывода, должны светится в процессах, а не кернеле.

    • #18604
      andrewk
      Участник

      реально Вы практически ничего не сможете сказать, подо что ушла память ядра. Из этого примера:

      # svmon -O filtercat=kernel,unit=KB,sortseg=pin -t 15 -S
      Unit: KB

      Vsid Esid Type Description PSize Inuse Pin Pgsp Virtual
      e000 – work mbuf pool m 92288 92288 0 92288
      b001 – work kernel heap m 109504 61376 0 109504
      2002 0 work kernel segment m 43968 40640 0 43968
      a100 – work kernel heap m 26112 23104 0 26112
      1d05d – work other kernel segments s 16384 16384 0 16384
      8002 – work kernel heap m 10176 9664 0 10176
      9003 – work kernel heap m 9600 9344 0 9600
      e004 – work kernel heap m 9408 8576 0 9408
      f005 – work kernel heap m 8192 8128 0 8192
      a00a – work other kernel segments s 5412 5408 0 5412
      a080 – work kernel heap m 4480 4352 0 4480
      6000 – work mtrace data s 3888 3888 0 3888
      e008 – work mtrace data s 3888 3888 0 3888
      a000 – work kernel heap m 3456 3008 0 3456
      f000 – work vmm data segment m 2880 2880 0 2880

      можно только сказать, что 92 МБ занято сетевыми буферами (netstat -m), 7 МБ данные для трассировки, еще 3 МБ какие-то данные VMM’а. Еще есть команда, позволяющая посмотреть, сколько памяти ушло под девайсы. Но я ее не помню 🙁 И единственный мой пойнт в сообщении – что Вы неправильно считали размер ядерных сегментов.

    • #18605

      Я проверил. Вашим способом получаются теже самые 1.7

    • #18606

      Похоже у меня действительно проблема с mbuf, примерно 512M. Буду копать. Спасибо.

    • #18612

      Интерестно. Не получается понизить размер с помощью maxmbuf. При этом netstat -m говорит, что failed нету, а через kdb видно, что буфер используется на 12%.

    • #18655
      uxTuaHgp
      Участник

      Дурацкий вопрос: Активно свопит – это из чего видно?

      И версия AIX (oslevel -s)
      И еще
      vmo -o vmm_mpsize_support

      Может быть надо просто обновиться или отключить поддержку различных страниц памяти?

    • #18656

      Видно из topas и iostat. Точнее было видно – снизил несколько память отданую ораклу. Дурацкое решение, но пока не разберусь в корне проблемы это оптимально. Сейчас играюсь с тестом.

      Версия довольно древняя (6100-06-01-1043), но даунтайма у меня еще как минимум месяц не будет.

      vmm_mpsize_support дефолтный (2).

      Без больших страниц нельзя – там база данных. А каков эффект от отключения 64К?

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

      Unit: KB

      Vsid Esid Type Description PSize Inuse Pin Pgsp Virtual
      6001 – work mbuf pool m 261504 261504 0 261504
      e000 – work mbuf pool m 261376 261376 0 261376

      Интерестно, что при этом:

      lsattr -El sys0 -a maxmbuf
      maxmbuf 128000 Maximum Kbytes of real memory allowed for MBUFS True

    • #18661
      uxTuaHgp
      Участник

      Как мне кажется, у нас даже в 6100-06-05 был баг: при включенном vmm_mpsize_support и обилии оперативной памяти система лезла в своп.
      Система отводила сразу кусок 64К страницами, а приложения ложились в 4К. Память свободная как бы есть, но в то же время память процессов вытесняется иногда в своп.

      В качестве workaround предлагалось отключить vmm_mpsize_support.

      В 6100-08-02 такой проблемы уже точно нет.

    • #18662
      uxTuaHgp
      Участник

      topas

      PgspIn
      PgspOut

      vmstat pi po имелось в виду?

      lsps -s
      прямо показывает, что весомая часть пэйджа занята?

Просмотр 13 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.