Informix

Expand all | Collapse all

Shared Memory

  • 1.  Shared Memory

    Posted 17 days ago
    Hello,

     Today I checked the Informix shared memory by onstat -g seg on Informix 14.10FC6X3 

    informix [rs-om-ifx-201] on_nebula21 $ onstat -g seg

     

    IBM Informix Dynamic Server Version 14.10.FC6X3 -- On-Line -- Up 16:43:49 -- 10327040 Kbytes

    2021-09-03 15:36:42

     

    Segment Summary:

    id         key        addr             size             ovhd     class blkused  blkfree

    13         52ae4801   10a000000        738197504        9092392  R*    173528   6696

    14         52ae4802   136000000        2080374784       24381192 V*    488869   19035

    15         52ae4803   1b2000000        3422552064       1        B*    835584   0

    16         52ae4804   27e000000        33554432         1        B*    8192     0

    17         52ae4805   280000000        5242880          62856    M     1070     210

    18         52ae4806   281000000        1073741824       12584664 V*    3076     259068

    19         52ae4807   2c1000000        1073741824       12584664 V*    3078     259066

    20         52ae4808   301000000        1073741824       12584664 V*    3077     259067

    21         52ae4809   341000000        1073741824       12584664 V*    3073     259071

    Total:     -          -                10574888960      -        -     1519547  1062213


    Total Virtual segment size = 6375342080

    in ONCONFIG FILE SHMVERSIZE value is as below:

    RESIDENT -1
    SHMBASE 0x10A000000L
    SHMVIRTSIZE 2000000
    SHMADD 1048576
    EXTSHMADD 8192
    SHMTOTAL 0
    SHMVIRT_ALLOCSEG 0,3
    SHMNOACCESS


    MAX_PDQPRIORITY 100
    DS_MAX_QUERIES
    DS_TOTAL_MEMORY 2000000
    DS_MAX_SCANS 1048576
    DS_NONPDQ_QUERY_MEM 256
    DATASKIP ALL

    So Can I change the SMVIRTSIZE parameter by 6375342 KB n ONCONFIG file, so it will be equal to all Virtual segment size.
    and DS_TOTAL_MENORY do I need to change 90% of SHMVIRTSIZE?

    if SHMVIRTSIZE, I change to 6375342 so DS_TOTAL_MEMORY should be around 318767 or don't need to change anything?

    SHMTOTAL is 0 (Measn can use full system memory) , So no need to change SHMTOTAL , only SHMVIRTSIZE. 

    Am I correct dears?

    Thanks
    Amit Patel

    ------------------------------
    AMIT PATEL
    ------------------------------


  • 2.  RE: Shared Memory

    Posted 17 days ago
    Yes, I would increase SHMVIRTSIZE as long as you are confident that the additional 4GB of memory that were added are "normal" and would be allocated again anyway if you didn't increase it. If the additional memory was an anomaly due to some unusual activity, then maybe increase it some (say to 4GB) but not all the way to 6GB.

    I would not increase DS_TOTAL_MEMORY unless this is a DW application that uses lots of PDQ. I would, however, recommend increasing DS_NONPDQ_QUERY_MEM. The default value, 256K, is too low. This query will tell you if sorts are going to disk and if so how much space they would need in memory to not go to disk:

    select * from sysprofile where name in ('disksorts','maxsortspace');

    Use the maxsortspace value to set DS_NONPDQ_QUERY_MEM to avoid sorting on disk. You can set it to up to 25% of DS_TOTAL_MEMORY.



    ------------------------------
    Art S. Kagel, President and Principal Consultant
    ASK Database Management Corp.
    www.askdbmgt.com
    ------------------------------



  • 3.  RE: Shared Memory

    Posted 7 days ago
    Thanks Art,

         I changed SHVIRTSIZE as per your Comments. Currently Instance running fine :) Thanks .

    ------------------------------
    AMIT PATEL
    ------------------------------



  • 4.  RE: Shared Memory

    Posted 11 days ago

    Best to set SHMTOTAL to (less than the box limit or what you think this engine can take without affecting the box). At least on AIX, SHMTOTAL of 0 can have significant negative impact as the engine can take all it likes. Had this quite a few times before I capped the engines with SHMTOTAL. Especially important if you have more than one engine on a box. 

    Thanks -

    Mark



    ------------------------------
    Mark Scranton
    ------------------------------



  • 5.  RE: Shared Memory

    Posted 7 days ago

    Yes,  you can set SHMVIRTSIZE parameter to  6375342 KB in ONCONFIG file. Please take into account, whether you are using of mgm facility for DSS queries or not?

    I mean at first use of "onstat –g mgm" and investigate in output to find out, you are using of DSS Queries or not?.

    If you are not use of DSS queries, so don't get worry about DS_TOTAL_MEMORY parameter, which is a logical subset of SHMVIRTSIZE.

    But you are using DSS queries and mgm facility, I would like to recommend you set SHMVIRTSIZE parameter to  6375342 KB + < DS_TOTAL_MEMORY 2000000 > , my point is 8,375,342 KB.

    For determine the exact value for DS_TOTAL_MEMORY, you could see in "Memory:"  portion of "onstat –g mgm".

     ��






  • 6.  RE: Shared Memory

    Posted 7 days ago

    Yes,  you can set SHMVIRTSIZE parameter to  6375342 KB in ONCONFIG file. Please take into account, whether you are using of mgm facility for DSS queries or not?

    I mean at first use of "onstat –g mgm" and investigate in output to find out, you are using of DSS Queries or not?.

    If you are not use of DSS queries, so don't get worry about DS_TOTAL_MEMORY parameter, which is a logical subset of SHMVIRTSIZE.

    But you are using DSS queries and mgm facility, I would like to recommend you set SHMVIRTSIZE parameter to  6375342 KB + < DS_TOTAL_MEMORY 2000000 > , my point is 8,375,342 KB.

    For determine the exact value for DS_TOTAL_MEMORY, you could see in "Memory:"  portion of "onstat –g mgm".

     



    ------------------------------
    Saeid Mohseni Rad
    ------------------------------