Forum Discussion

Herman2024's avatar
Herman2024
Icon for Cirrostratus rankCirrostratus
Jan 21, 2025

How are memory and disk allocated to different modules on bigip appliance?

hi, when doing "Resource Provisioning", the memory and disk space are auto allocated to LTM and ASM are shown as below. The amount of Memory and disk is minimum requirement, right? When a huge number of virtual server will be created later, will appliance auto allocate more spare memory and disk to the module? And what is he management module  responsible for? Is it responsible for packet forwarding? should we set "Provisioning" to "Medium" or "Large" if the throughput is larger than 1Gbps? Can someone please advise?  thanks in advance!

 

  • mgmt module is like control plane (not data plane like ltm, asm. gtm/dns modules).
    it handles config storing, ha config sync and other typical control plane roles.
    it doesnt do packet forwarding or storing ltm session tables.

    you can monitor mgmt memory usage using free of OTHER entry in statistics minus non TMM from resource provisioning.
    bigip doesnt automatically increase mgmt memory size so youll need to monitor it.

    mgmt large is just extra 500MB according to https://my.f5.com/manage/s/article/K26427018
    so it's considered small for today hardware ram size

     

    • Herman2024's avatar
      Herman2024
      Icon for Cirrostratus rankCirrostratus

      hi zamroni777 thank you so much for your kind advice! As shown on the screenshot about module memory statistics ? Is TMM memory shared by LTM, GTM... besides the amount allocated to each module under "Resource Provisioning"? Please  advise, thanks in advance!

      • zamroni777's avatar
        zamroni777
        Icon for MVP rankMVP

        gtm is not within tmm.
        you can view it in Resource provisioning page.

  • HI Herman,

     

    Part 1
    =======

    On a Big-IP appliance, the memory and disk space allocated to different modules can be managed through the "Resource Provisioning" feature, allowing you to specify how much of the system's resources each module should use, with options like "Minimum," "Nominal," or "Dedicated" allocation depending on your needs; essentially, you can set specific amounts of memory and disk space for each module based on its anticipated usage, with the system automatically adjusting resource allocation accordingly. 

     

    Key points about resource allocation on a Big-IP appliance:

     

    Module-specific allocation:
    Each licensed module on the Big-IP system can be assigned a specific amount of memory and disk space. 

    Allocation settings:
    You can choose between "Minimum" (least amount of resources), "Nominal" (balanced allocation based on module needs), or "Dedicated" (all available resources allocated to a single module). 
    Flexible resource management:
    Especially with vCMP guests, you can fine-tune the resource allocation for each guest based on the specific modules it is running and the traffic it is handling. 

     

    How to check memory and disk usage for modules:
    Configuration Utility:
    Access the "System > Resource Provisioning" section within the Big-IP configuration utility to view and adjust resource allocation for each module. 
    Command line:
    Use commands like df -h to check available disk space on different mounted volumes and monitor disk usage. 

    Part 2
    =======

    Management provisioning allocates additional memory for the BIG-IP Linux host system. There are three default settings: Small (default), Medium, and Large.

    When you use the Configuration utility to configure the Provisioning setting for Management (MGMT), the system allocates additional memory to the control plane using the following default values. These values are in addition to the base memory allocation for Management (MGMT):

    Small memory allocation is 0 MB.
    Medium memory allocation is 200 MB.
    Large memory allocation is 500 MB.
    You can also use the TMOS Shell (tmsh) to modify the system database variable provision.extramb to use a custom allocation of additional memory for Management (MGMT). For example, you can configure an additional memory value other than Small, Medium, or Large. Any additional memory configured for Management (MGMT) (control plane) is deducted from TMM (data plane).

    Recommendations

    Before you modify BIG-IP system provisioning or add more memory to an existing Management setting, review the available system memory.

    For large configurations containing more than 2000 configured objects, for Management (MGMT), in the Provisioning column, select Large.

    For units with at least two provisioned modules (LTM+ASM+other, LTM+APM+other, and LTM+AVR+other), running on BIG-IP 14.1 or later and medium-large configurations (500+ configuration objects), select Large.

    For units running on BIG IP 15.x or later, select Large.

    For units provisioned with three or more software modules and running on BIG IP 15.x or later, set <numeric value>to 2048 (or even 4096 if enough resources are available), using command as previously described in step 3 of the "Modify the provisioned memory value using tmsh".

    • Herman2024's avatar
      Herman2024
      Icon for Cirrostratus rankCirrostratus

      hi F5_Design_Engineer , thanks a lot for your advice. Is the memory for TMM is shared by LTM, GTM besides the amount allocated to each module under "Resource Provisioning"?  What is the cli command to allocate more memory or disk space to a specific software module? please advise, thanks in advance! 

      • Hi Herman,

        First you need to list the different provision related DB variables value.

        I would highly recommend to test these commands only in a TEST LAB setup, do not play the settings on a PRODUCTION F5, till you are not sure of the outcomes.

        Once you get the proper SYS DB variable value for your resource provisioning, then you can work on modifying that particular variable and it may cause your system unstable or crash or reboot.

         

        First identify the right DB variable of your requirement before modifying it .

        And search more details on that DB variable and consequences of changing it.

         

        root@(TEST-F5-01)(cfg-sync In Sync)(Active)(/Common)(tmos)# list sys db provision
        Display all 184 items? (y/n) y

        Configuration Items:
          provision.1nic                  provision.cpu.urldb             provision.enforce               provision.memory.gtm.host       provision.noautoreboot          provisioned.cpu.sslo            provisioned.disk.tam            provisioned.memory.gtm.host
          provision.1nicautoconfig        provision.cpu.vcmp              provision.extramb               provision.memory.host           provision.pending               provisioned.cpu.swg             provisioned.disk.tmos           provisioned.memory.host
          provision.action                provision.disk.afm              provision.initialized           provision.memory.ilx            provision.restjavad.extramb     provisioned.cpu.tam             provisioned.disk.urldb          provisioned.memory.ilx
          provision.afm.extramb           provision.disk.am               provision.managementeth         provision.memory.ilx.host       provision.sadc                  provisioned.cpu.tmos            provisioned.disk.vcmp           provisioned.memory.ilx.host
          provision.cpu.afm               provision.disk.apm              provision.memory.afm            provision.memory.lc             provision.tmmcount              provisioned.cpu.urldb           provisioned.memory.afm          provisioned.memory.lc
          provision.cpu.am                provision.disk.asm              provision.memory.afm.host       provision.memory.lc.host        provision.tmmcountactual        provisioned.cpu.vcmp            provisioned.memory.afm.host     provisioned.memory.lc.host
          provision.cpu.apm               provision.disk.avr              provision.memory.am             provision.memory.ltm            provision.tomcat.extramb        provisioned.disk.afm            provisioned.memory.am           provisioned.memory.ltm
          provision.cpu.asm               provision.disk.cgnat            provision.memory.am.host        provision.memory.ltm.host       provision.wocplugincount        provisioned.disk.am             provisioned.memory.am.host      provisioned.memory.ltm.host
          provision.cpu.avr               provision.disk.dos              provision.memory.apm            provision.memory.pem            provisioned.cpu.afm             provisioned.disk.apm            provisioned.memory.apm          provisioned.memory.pem
          provision.cpu.cgnat             provision.disk.em               provision.memory.apm.host       provision.memory.pem.host       provisioned.cpu.am              provisioned.disk.asm            provisioned.memory.apm.host     provisioned.memory.pem.host
          provision.cpu.dos               provision.disk.fps              provision.memory.asm            provision.memory.sslo           provisioned.cpu.apm             provisioned.disk.avr            provisioned.memory.asm          provisioned.memory.sslo
          provision.cpu.em                provision.disk.gtm              provision.memory.asm.host       provision.memory.sslo.host      provisioned.cpu.asm             provisioned.disk.cgnat          provisioned.memory.asm.host     provisioned.memory.sslo.host
          provision.cpu.fps               provision.disk.host             provision.memory.avr            provision.memory.swg            provisioned.cpu.avr             provisioned.disk.dos            provisioned.memory.avr          provisioned.memory.swg
          provision.cpu.gtm               provision.disk.ilx              provision.memory.avr.host       provision.memory.swg.host       provisioned.cpu.cgnat           provisioned.disk.em             provisioned.memory.avr.host     provisioned.memory.swg.host
          provision.cpu.host              provision.disk.lc               provision.memory.cgnat          provision.memory.tam            provisioned.cpu.dos             provisioned.disk.fps            provisioned.memory.cgnat        provisioned.memory.tam
          provision.cpu.ilx               provision.disk.ltm              provision.memory.cgnat.host     provision.memory.tam.host       provisioned.cpu.em              provisioned.disk.gtm            provisioned.memory.cgnat.host   provisioned.memory.tam.host
          provision.cpu.lc                provision.disk.pem              provision.memory.dos            provision.memory.tmos           provisioned.cpu.fps             provisioned.disk.host           provisioned.memory.dos          provisioned.memory.tmos
          provision.cpu.ltm               provision.disk.sslo             provision.memory.dos.host       provision.memory.tmos.host      provisioned.cpu.gtm             provisioned.disk.ilx            provisioned.memory.dos.host     provisioned.memory.tmos.host
          provision.cpu.pem               provision.disk.swg              provision.memory.em             provision.memory.ui             provisioned.cpu.host            provisioned.disk.lc             provisioned.memory.em           provisioned.memory.ui
          provision.cpu.sslo              provision.disk.tam              provision.memory.em.host        provision.memory.urldb          provisioned.cpu.ilx             provisioned.disk.ltm            provisioned.memory.em.host      provisioned.memory.urldb
          provision.cpu.swg               provision.disk.tmos             provision.memory.fps            provision.memory.urldb.host     provisioned.cpu.lc              provisioned.disk.pem            provisioned.memory.fps          provisioned.memory.urldb.host
          provision.cpu.tam               provision.disk.urldb            provision.memory.fps.host       provision.memory.vcmp           provisioned.cpu.ltm             provisioned.disk.sslo           provisioned.memory.fps.host     provisioned.memory.vcmp
          provision.cpu.tmos              provision.disk.vcmp             provision.memory.gtm            provision.memory.vcmp.host      provisioned.cpu.pem             provisioned.disk.swg            provisioned.memory.gtm          provisioned.memory.vcmp.host

         

        root@(TEST-F5-01)(cfg-sync In Sync)(Active)(/Common)(tmos)#  list sys db provision.cpu.asm
        sys db provision.cpu.asm {
            value "0"
        }

         

        root@(TEST-F5-01)(cfg-sync In Sync)(Active)(/Common)(tmos)#  list sys db provision.memo
        Configuration Items:
          provision.memory.afm          provision.memory.apm.host     provision.memory.cgnat        provision.memory.em.host      provision.memory.host         provision.memory.ltm          provision.memory.sslo.host    provision.memory.tmos         provision.memory.vcmp
          provision.memory.afm.host     provision.memory.asm          provision.memory.cgnat.host   provision.memory.fps          provision.memory.ilx          provision.memory.ltm.host     provision.memory.swg          provision.memory.tmos.host    provision.memory.vcmp.host
          provision.memory.am           provision.memory.asm.host     provision.memory.dos          provision.memory.fps.host     provision.memory.ilx.host     provision.memory.pem          provision.memory.swg.host     provision.memory.ui
          provision.memory.am.host      provision.memory.avr          provision.memory.dos.host     provision.memory.gtm          provision.memory.lc           provision.memory.pem.host     provision.memory.tam          provision.memory.urldb
          provision.memory.apm          provision.memory.avr.host     provision.memory.em           provision.memory.gtm.host     provision.memory.lc.host      provision.memory.sslo         provision.memory.tam.host     provision.memory.urldb.host

         

        root@(TEST-F5-01)(cfg-sync In Sync)(Active)(/Common)(tmos)#  list sys db provision.memory.ltm
        Configuration Items:
          provision.memory.ltm        provision.memory.ltm.host


        root@(TEST-F5-01)(cfg-sync In Sync)(Active)(/Common)(tmos)#  list sys db provision.memory.ltm
        Display all 2568 items? (y/n) n

        Options:
          all-properties           non-default-properties   one-line                 |
        Properties:
          default-value            scf-config               value                    value-range              {

         


        root@(TEST-F5-01)(cfg-sync In Sync)(Active)(/Common)(tmos)#  list sys db provision.memory.ltm
        sys db provision.memory.ltm {
            value "0"
        }
        root@(TEST-F5-01)(cfg-sync In Sync)(Active)(/Common)(tmos)#  list sys db provision.memory.ltm.host
        sys db provision.memory.ltm.host {
            value "0"
        }
        root@(TEST-F5-01)(cfg-sync In Sync)(Active)(/Common)(tmos)# 

        for example and just for reference purpose

        Modify Management provisioning using tmsh

        You can modify Management (mgmt) provisioning from the command line where Small equals 0 MB, Medium equals 200 MB, and Large equals 500 MB.

        Important: Reprovisioning will cause the system to reboot, causing an outage.

        1. Open the TMOS Shell (tmsh).tmsh
        2. Type tmsh modify sys db provision.extramb value 500

          Important: Provisioning the mgmt plane to large and performing a ConfigSync might cause an outage on the peer unit. See K31326690 for more information on this issue.


          To increase Tomcat memory run the following:

          1. tmsh modify /sys db provision.tomcat.extramb value 256

             To view change run this command:
          2.tmsh list sys db provision.tomcat.extramb

          3.bigstart restart tomcat

          Additional Information

          Note: Restjavad may need increased memory also since this is used in-conjunction with the GUI to make rest calls in the background when making configuration changes to the database.

          Giving restjavad extra memory. This is a two-step process.

          1. Update memory allocated to the control plane using TMUI. System :

            Note: Resource Provisioning. The line for Management has a drop-down box forSmall,Medium, or Large.

            2. Run the following two commands, in sequence:

               tmsh modify sys db restjavad.useextramb value true

               bigstart restart restjavad

            Check this article for more details:
          https://my.f5.com/manage/s/article/K36854345