Table Of Contents
- JSON-RPC 2.0 over WebSocket API
- API Methods
- acme.dns.authenticator
- alert
- alertclasses
- alertservice
- api_key
- app
- app.available
- app.available_space
- app.categories
- app.certificate_choices
- app.config
- app.container_console_choices
- app.container_ids
- app.convert_to_custom
- app.create
- app.delete
- app.get_instance
- app.gpu_choices
- app.ip_choices
- app.latest
- app.outdated_docker_images
- app.pull_images
- app.query
- app.redeploy
- app.rollback
- app.rollback_versions
- app.similar
- app.start
- app.stop
- app.update
- app.upgrade
- app.upgrade_summary
- app.used_ports
- app.image
- app.ix_volume
- app.registry
- audit
- auth
- auth.twofactor
- boot
- boot.environment
- catalog
- certificate
- cloud_backup
- cloudsync
- cloudsync.credentials
- config
- core
- cronjob
- device
- directoryservices
- disk
- dns
- docker
- docker.network
- enclosure.label
- failover.disabled
- failover.reboot
- fc.fc_host
- fcport
- filesystem
- filesystem.acltemplate
- ftp
- group
- hardware.virtualization
- idmap
- initshutdownscript
- interface
- interface.bridge_members_choices
- interface.cancel_rollback
- interface.checkin
- interface.checkin_waiting
- interface.choices
- interface.commit
- interface.create
- interface.delete
- interface.get_instance
- interface.has_pending_changes
- interface.ip_in_use
- interface.lacpdu_rate_choices
- interface.lag_ports_choices
- interface.network_config_to_be_removed
- interface.query
- interface.rollback
- interface.save_network_config
- interface.services_restarted_on_sync
- interface.update
- interface.vlan_parent_interface_choices
- interface.websocket_interface
- interface.websocket_local_ip
- interface.xmit_hash_policy_choices
- ipmi
- ipmi.chassis
- ipmi.lan
- ipmi.sel
- iscsi.auth
- iscsi.extent
- iscsi.global
- iscsi.initiator
- iscsi.portal
- iscsi.target
- iscsi.targetextent
- jbof
- k8s_to_docker
- kerberos
- kerberos.keytab
- kerberos.realm
- keychaincredential
- keychaincredential.create
- keychaincredential.delete
- keychaincredential.generate_ssh_key_pair
- keychaincredential.get_instance
- keychaincredential.query
- keychaincredential.remote_ssh_host_key_scan
- keychaincredential.remote_ssh_semiautomatic_setup
- keychaincredential.setup_ssh_connection
- keychaincredential.update
- keychaincredential.used_by
- kmip
- network.configuration
- network.general
- nfs
- nvmet.global
- nvmet.host
- nvmet.host_subsys
- nvmet.namespace
- nvmet.port
- nvmet.port_subsys
- nvmet.subsys
- pool
- pool.attach
- pool.attachments
- pool.create
- pool.ddt_prefetch
- pool.ddt_prune
- pool.detach
- pool.expand
- pool.export
- pool.filesystem_choices
- pool.get_disks
- pool.get_instance
- pool.import_find
- pool.import_pool
- pool.is_upgraded
- pool.offline
- pool.online
- pool.processes
- pool.query
- pool.remove
- pool.replace
- pool.scrub
- pool.update
- pool.upgrade
- pool.validate_name
- pool.dataset
- pool.dataset.attachments
- pool.dataset.change_key
- pool.dataset.checksum_choices
- pool.dataset.compression_choices
- pool.dataset.create
- pool.dataset.delete
- pool.dataset.destroy_snapshots
- pool.dataset.details
- pool.dataset.encryption_algorithm_choices
- pool.dataset.encryption_summary
- pool.dataset.export_key
- pool.dataset.export_keys
- pool.dataset.export_keys_for_replication
- pool.dataset.get_instance
- pool.dataset.get_quota
- pool.dataset.inherit_parent_encryption_properties
- pool.dataset.lock
- pool.dataset.processes
- pool.dataset.promote
- pool.dataset.query
- pool.dataset.recommended_zvol_blocksize
- pool.dataset.recordsize_choices
- pool.dataset.rename
- pool.dataset.set_quota
- pool.dataset.snapshot_count
- pool.dataset.unlock
- pool.dataset.update
- pool.resilver
- pool.scrub
- pool.snapshot
- pool.snapshottask
- pool.snapshottask.create
- pool.snapshottask.delete
- pool.snapshottask.delete_will_change_retention_for
- pool.snapshottask.get_instance
- pool.snapshottask.max_count
- pool.snapshottask.max_total_count
- pool.snapshottask.query
- pool.snapshottask.run
- pool.snapshottask.update
- pool.snapshottask.update_will_change_retention_for
- privilege
- replication
- replication.count_eligible_manual_snapshots
- replication.create
- replication.create_dataset
- replication.delete
- replication.get_instance
- replication.list_datasets
- replication.list_naming_schemas
- replication.query
- replication.restore
- replication.run
- replication.run_onetime
- replication.target_unmatched_snapshots
- replication.update
- replication.config
- reporting
- reporting.exporters
- route
- rsynctask
- service
- sharing.nfs
- sharing.smb
- smb
- snmp
- ssh
- staticroute
- support
- system
- system.advanced
- system.advanced.config
- system.advanced.get_gpu_pci_choices
- system.advanced.login_banner
- system.advanced.sed_global_password
- system.advanced.sed_global_password_is_set
- system.advanced.serial_port_choices
- system.advanced.syslog_certificate_authority_choices
- system.advanced.syslog_certificate_choices
- system.advanced.update
- system.advanced.update_gpu_pci_ids
- system.general
- system.general.checkin
- system.general.checkin_waiting
- system.general.config
- system.general.country_choices
- system.general.kbdmap_choices
- system.general.local_url
- system.general.timezone_choices
- system.general.ui_address_choices
- system.general.ui_certificate_choices
- system.general.ui_httpsprotocols_choices
- system.general.ui_restart
- system.general.ui_v6address_choices
- system.general.update
- system.global
- system.ntpserver
- system.reboot
- system.security
- system.security.info
- systemdataset
- tn_connect
- truecommand
- truenas
- tunable
- update
- ups
- user
- virt.device
- virt.global
- virt.instance
- virt.instance.create
- virt.instance.delete
- virt.instance.device_add
- virt.instance.device_delete
- virt.instance.device_list
- virt.instance.device_update
- virt.instance.get_instance
- virt.instance.image_choices
- virt.instance.query
- virt.instance.restart
- virt.instance.set_bootable_disk
- virt.instance.start
- virt.instance.stop
- virt.instance.update
- virt.volume
- vm
- vm.bootloader_options
- vm.bootloader_ovmf_choices
- vm.clone
- vm.cpu_model_choices
- vm.create
- vm.delete
- vm.export_disk_image
- vm.flags
- vm.get_available_memory
- vm.get_console
- vm.get_display_devices
- vm.get_display_web_uri
- vm.get_instance
- vm.get_memory_usage
- vm.get_vm_memory_info
- vm.get_vmemory_in_use
- vm.guest_architecture_and_machine_choices
- vm.import_disk_image
- vm.log_file_download
- vm.log_file_path
- vm.maximum_supported_vcpus
- vm.port_wizard
- vm.poweroff
- vm.query
- vm.random_mac
- vm.resolution_choices
- vm.restart
- vm.resume
- vm.start
- vm.status
- vm.stop
- vm.supports_virtualization
- vm.suspend
- vm.update
- vm.virtualization_details
- vm.device
- vm.device.bind_choices
- vm.device.create
- vm.device.delete
- vm.device.disk_choices
- vm.device.get_instance
- vm.device.iommu_enabled
- vm.device.iotype_choices
- vm.device.nic_attach_choices
- vm.device.passthrough_device
- vm.device.passthrough_device_choices
- vm.device.pptdev_choices
- vm.device.query
- vm.device.update
- vm.device.usb_controller_choices
- vm.device.usb_passthrough_choices
- vm.device.usb_passthrough_device
- vmware
- API Events
- acme.dns.authenticator
- alert
- alertservice
- api_key
- app
- app.image
- app.registry
- certificate
- cloud_backup
- cloudsync
- cloudsync.credentials
- core
- cronjob
- docker.network
- fc.fc_host
- fcport
- filesystem
- filesystem.acltemplate
- group
- initshutdownscript
- interface
- iscsi.auth
- iscsi.extent
- iscsi.initiator
- iscsi.portal
- iscsi.target
- iscsi.targetextent
- jbof
- kerberos.keytab
- kerberos.realm
- keychaincredential
- nvmet.host
- nvmet.host_subsys
- nvmet.namespace
- nvmet.port
- nvmet.port_subsys
- nvmet.subsys
- pool
- pool.dataset
- pool.scrub
- pool.snapshot
- pool.snapshottask
- privilege
- replication
- reporting
- reporting.exporters
- rsynctask
- service
- sharing.nfs
- sharing.smb
- staticroute
- system.ntpserver
- tunable
- update
- user
- virt.instance
- virt.volume
- vm
- vm.device
- vmware
- Jobs
- Query Methods
Previous topic
Next topic
vm.get_available_memory¶
Get the current maximum amount of available memory to be allocated for VMs.
In case of overcommit being true, calculations are done in the following manner: 1. If a VM has requested 10G but is only consuming 5G, only 5G will be counted 2. System will consider shrinkable ZFS ARC as free memory ( shrinkable ZFS ARC is current ZFS ARC minus ZFS ARC minimum )
In case of overcommit being false, calculations are done in the following manner: 1. Complete VM requested memory will be taken into account regardless of how much actual physical memory the VM is consuming 2. System will not consider shrinkable ZFS ARC as free memory
Memory is of course a very “volatile” resource, values may change abruptly between a second but I deem it good enough to give the user a clue about how much memory is available at the current moment and if a VM should be allowed to be launched.
No Additional Items
Tuple Validation
Parameter 1: overcommit
overcommit
Type: boolean Default: falseResult
Type: integerRequired roles: VM_READ