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


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

В этой теме 13 ответов, 3 участника, последнее обновление  uxTuaHgp 4 года/лет, 4 мес. назад.

  • Автор
    Сообщения
  • #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
    прямо показывает, что весомая часть пэйджа занята?

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