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


Главная Форумы POWER Systems AIX/Hardware Использование памяти в AIX5.3

В этой теме 7 ответов, 5 участников, последнее обновление  yota 5 года/лет, 9 мес. назад.

  • Автор
    Сообщения
  • #14802

    Viacheslav Zabelin
    Участник

    Добрый день, коллеги.

    Столкнулся с такой ситуацией. Есть LPAR с AIX5.3/Oracle 9.
    На LPAR всегда есть около 2Гб свободной памяти (min ~1.7Гб), при этом иногда наблюдается пейджинг, количество свободной памяти при этом не уменьшается.
    Началось это предположительно после добавления в систему большого раздела (1.4Тб). До этого количество свободной памяти было меньше (~1.3Гб) и пэйджинга не было.

    В чем может быть дело? Что мешает системе использовать свободную память?

    [code]
    [root@erpdb /]# vmo -a | grep -E ‘min|max|lru’
    lru_file_repage = 0
    lru_poll_interval = 10
    lrubucket = 131072
    maxclient% = 90
    maxfree = 1184
    maxperm = 6310633
    maxperm% = 90
    maxpin = 2166618
    maxpin% = 27
    minfree = 960
    minperm = 350589
    minperm% = 5
    npsrpgmax = 258048
    npsrpgmin = 193536
    npsscrubmax = 258048
    npsscrubmin = 193536
    soft_min_lgpgs_vmpool = 0
    strict_maxclient = 1
    strict_maxperm = 0
    [/code]
    [code]
    [root@erpdb /]# svmon -G
    size inuse free pin virtual
    memory 7340032 6846932 493100 1611012 6049301
    pg space 4128768 1183804

    work pers clnt other
    pin 1357868 0 0 253144
    in use 5945631 0 901301

    PageSize PoolSize inuse pgsp pin virtual
    s 4 KB — 6622724 1183804 1456404 5825093
    m 64 KB — 14013 0 9663 14013
    [/code]
    [code]
    [root@erpdb /]# ioo -a
    j2_atimeUpdateSymlink = 0
    j2_dynamicBufferPreallocation = 64
    j2_inodeCacheSize = 400
    j2_maxPageReadAhead = 128
    j2_maxRandomWrite = 0
    j2_maxUsableMaxTransfer = 512
    j2_metadataCacheSize = 400
    j2_minPageReadAhead = 2
    j2_nBufferPerPagerDevice = 1024
    j2_nPagesPerWriteBehindCluster = 32
    j2_nRandomCluster = 0
    j2_nonFatalCrashesSystem = 0
    j2_syncModifiedMapped = 1
    j2_syncdLogSyncInterval = 1
    jfs_clread_enabled = 0
    jfs_use_read_lock = 1
    lvm_bufcnt = 9
    maxpgahead = 8
    maxrandwrt = 0
    memory_frames = 7340032
    minpgahead = 2
    numclust = 1
    numfsbufs = 196
    pd_npages = 65536
    pgahd_scale_thresh = 0
    pv_min_pbuf = 512
    sync_release_ilock = 0
    [/code]
    [code]
    rootvg total_vg_pbufs = 1024
    orabkpvg total_vg_pbufs = 2048
    oradatavg total_vg_pbufs = 3072
    orahomevg total_vg_pbufs = 1024
    oraredo02 total_vg_pbufs = 512
    stndb_appsvg total_vg_pbufs = 1024
    [/code]

  • #14803

    Anton Bukhman
    Участник

    Добрый день.
    У меня недавно была похожаю ситуация.
    Мне помогли страницы в 16MB

    # svmon -G
    size inuse free pin virtual
    memory 3407872 3397264 10608 1211669 2582561
    pg space 1310720 7865

    work pers clnt other
    pin 1046582 0 0 152799
    in use 2582561 0 802415

    PageSize PoolSize inuse pgsp pin virtual
    s 4 KB — 2868880 7865 683285 2066465
    L 16 MB 129 126 0 129 126

  • #14805

    andrewk
    Участник

    может кто-нибудь сподобится FAQ по тюнингу Oracle под AIX написать? Этот вопрос имхо самый популярный на форуме и задается как минимум раз в месяц.

  • #14806

    Sever
    Участник
  • #14863

    Viacheslav Zabelin
    Участник

    Вопросов меньше не становится.

    [code]
    $ vmo -a | grep mem
    cpu_scale_memp = 8
    memory_affinity = 1
    memory_frames = 7340032
    memplace_data = 2
    memplace_mapped_file = 2
    memplace_shm_anonymous = 2
    memplace_shm_named = 2
    memplace_stack = 2
    memplace_text = 2
    memplace_unmapped_file = 2
    mempools = 4
    [/code]
    В системе 14 lcpu

    Почему при cpu_scale_memp = 8 и 14 lcpu mempools = 4 ?
    [code]
    $ svmon -G
    size inuse free pin virtual
    memory 7340032 6782258 557774 1674553 6151506
    pg space 4128768 1790951

    work pers clnt other
    pin 1421409 0 0 253144
    in use 5975272 0 806986

    PageSize PoolSize inuse pgsp pin virtual
    s 4 KB — 6558306 1790951 1520233 5927554
    m 64 KB — 13997 0 9645 13997
    [/code]
    Из nmon:
    [code]
    Multiple-Page-Size (in Pages) ────────────────────────────────────────────────────────│
    │Page Sizes= 4 Page Size -> 4KB 64KB 16MB 16GB
    │ numframes memory frames 6587536 47031 0 0
    │ numfrb free list pages 145409 32934 0 0
    [/code]
    Откуда в системе берутся страницы 64К? Как ими управлять?
    [code]
    Memory ───────────────────────────────────────────────────────────────────────────────│
    │ Physical PageSpace | pages/sec In Out | FileSystemCache
    │% Used 92.4% 43.3% | to Paging Space 0.0 0.0 | (numperm) 10.0%
    │% Free 7.6% 56.7% | to File System 0.0 16.0 | Process 60.1%
    │MB Used 26501.0MB 6986.7MB | Page Scans 0.0 | System 22.3%
    │MB Free 2171.0MB 9141.3MB | Page Cycles 0.0 | Free 7.6%
    │Total(MB) 28672.0MB 16128.0MB | Page Steals 0.0 | ——
    │ | Page Faults 7904.7 | Total 100.0%
    │———————————————————— | numclient 10.0%
    │Min/Maxperm 1369MB( 5%) 26020MB( 91%) <—% of RAM | maxclient 90.8%
    │Min/Maxfree 960 1088 Total Virtual 43.8GB | User 66.7%
    │Min/Maxpgahead 2 8 Accessed Virtual 23.6GB 53.9%| Pinned 22.8%
    [/code]
    System — 22.3%
    В моем случае это почти 6.5Гб.
    С чем может быть связано использование такого большого количества памяти для system segments?

  • #14882

    yota
    Участник

    Из nmon:
    [code]
    Multiple-Page-Size (in Pages) ────────────────────────────────────────────────────────│
    │Page Sizes= 4 Page Size -> 4KB 64KB 16MB 16GB
    │ numframes memory frames 6587536 47031 0 0
    │ numfrb free list pages 145409 32934 0 0
    [/code]

    Блин, а нельзя было в nmon еще раз M нажать и эту картинку в MB получить(а не в кол-ве страниц). Или тут есть мазохисты в уме пересчитывающие вывод?

    По теме: в AIX есть некий баг, по идее VMM должен разбирать 64КБ страницы в free list до 4КБ и использовать их, по факту он нифига этого не делает. Индусы наговнокодили типа фиксы, вот только нихера они не работают. Поэтому единственный нормальный способ выключить нафиг использование 64К страниц вообще.

  • #14997

    Viacheslav Zabelin
    Участник

    Да, согласен не вполне коррктно показал таблицу. Тут важно было показать ситуацию в котрой происходит пейджинг: maxfree=1088, numfrb=56811
    [code]
    │ Multiple-Page-Size (in Pages) ──────────────────────────────────────────────────│
    │Page Sizes= 4 Page Size -> 4KB 64KB 16MB 16GB
    │ numframes memory frames 6611616 45526 0 0
    │ numfrb free list pages 56811 30918 0 0
    │ numclient client frames 481625 0 0 0
    │numcompress compressed segments 0 0 0 0
    │ numperm non-working segments 481625 0 0 0
    │ numvpages accessed virtual pages 6146640 14608 0 0
    │ minfree min free list 960 60 0 0
    │ maxfree max free list 1088 68 0 0
    │ numpout page-outs 0 0 0 0
    │ numremote remote page-outs 0 0 0 0
    │ numwseguse in use working seg 6042751 14608 0 0
    │ numpseguse in use persistent 0 0 0 0
    │numclseguse in use client 512054 0 0 0
    │ numwsegpin pinned working 1613206 9987 0 0
    │ numpsegpin pinned persistent 0 0 0 0
    │numclsegpin pinned client seg 0 0 0 0
    │numpgsp_pgs allocated PageSpace 317409 0 0 0
    │ numralloc remote allocations 0 0 0 0
    │ pfrsvdblks system reserv.blocks 4641684 33233 0 0
    │ pfavail pin available 4998410 35539 0 0
    │ pfpinavail pinnable@apps level 5828742 41607 0 0
    │ system_pgs SCBs marked V_SYS 1591525 7772 0 0
    │ nonsys_pgs SCBs not V_SYS 4709624 6821 0 0
    [/code]

    Как можно отключить использование страниц 64К?

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

  • #15011

    yota
    Участник

    Как можно отключить использование страниц 64К?

    vmo -r -o vmm_mpsize_support=0

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