Service Instance Resource Usage
On this page we will present the most important resource usage limits for our data services. If a property is specified as "-" there is no property in the BOSH release for that particular setting but we list it here in order to document the default setting for the the user's convenience.
For any setting not specified in the tables below, the value used by the a9s Data Service is identical to the default value for the specific version of the underlying data service. Please see the documentation for that data service in order to learn more.
a9s Parachute
All our service instances are monitored by the a9s Parachute in order to make sure the service will not continue to operate once a certain threshold has been reached in terms of disk space usage. For more information, see a9s Parachute
a9s LogMe 2
Property | Setting | Default Value | Description |
---|---|---|---|
opensearch.java_maxmetaspace | -XX:MaxMetaspaceSize | 512M | Java MaxMetaSpace Value in Megabyte |
opensearch.java_heapspace | -Xms | -Xmx | 46% of available memory | Heapsize for the Opensearch JVM |
a9s MongoDB
Property | Setting | Default Value | Description |
---|---|---|---|
- | net.maxIncomingConnections | 65536 | The maximum number of simultaneous connections that mongos or mongod will accept. This setting has no effect if it is higher than your operating system’s configured maximum connection tracking threshold. |
- | storage.syncPeriodSecs | 60 | The amount of time (in seconds) that can pass before MongoDB flushes data to the data files via an fsync operation. |
- | storage.wiredTiger.engineConfig.cacheSizeGB | 50% of (RAM - 1 GB) but at least 256MB | The maximum size of the internal cache that WiredTiger will use for all data. |
- | replication.oplogSizeMB | 5% of available disk space. | The maximum size in megabytes for the replication operation log (i.e., the oplog). |
a9s MariaDB
Replace the <replace-me>
value for:
- When it is an a9s MariaDB >= 10.6 use
mariadb
. - When it is an a9s MariaDB < 10.6 use
cf_mysql.mysql
.
Property | Setting | Default Value | Description |
---|---|---|---|
<replace-me>.max_connections | max_connections | 1500 | The max. number of client connections per MariaDB node (calculated per node in a replicated setup) |
<replace-me>.innodb_buffer_pool_size | innodb_buffer_pool_size | \<computed> | By default this 80% of available memory (see: innodb_buffer_pool_size_percent ) |
<replace-me>.innodb_buffer_pool_size_percent | innodb_buffer_pool_size_percent | 80% | Set this to an integer (0-100) which represents the percentage of system RAM to reserve for InnoDB's buffer pool |
<replace-me>.max_allowed_packet | max_allowed_packet | 256M | The maximum size in bytes of a packet or a generated/intermediate string |
<replace-me>.max_heap_table_size | max_heap_table_size | 16777216 | The maximum size (in rows) to which user-created MEMORY tables are permitted to grow |
<replace-me>.tmp_table_size | tmp_table_size | 33554432 (32M) | The maximum size (in bytes) of internal in-memory temporary tables |
- | slow_query_log | ON | Whether slow queries should be logged (ON) or not (OFF). |
<replace-me>.long_query_time | long_query_time | 10 | Threshold in seconds above which SQL queries get logged in the slow query log file |
a9s PostgreSQL
Property | Setting | Default Value | Description |
---|---|---|---|
postgresql-ha.plan.effective_cache_size (optional) | effective_cache_size (MB) | 50% or 75% (if host RAM >=4GB) or min: 256MB | The planner's assumption about the effective size of the disk cache that is available to a single query. |
postgresql-ha.plan.max_connections (optional) | max_connections | (${shared_buffers} / ${work_mem}) * 2 or min: 128 | The maximum number of concurrent connections to the database server. |
postgresql-ha.plan.shared_buffers (optional) | shared_buffers (Integer in MB) | 25% or 15% (if host RAM <1GB) or min: 128 (Integer in MB) | The amount of memory the database server uses for shared memory buffers. |
postgresql-ha.plan.temp_file_limit (optional) | temp_file_limit | -1 | The maximum amount of disk space that a process can use for temporary files, such as sort and hash temporary files, or the storage file for a held cursor. The value is specified in kilobytes, and -1 (the default) means no limit. |
postgresql-ha.plan.work_mem (optional) | work_mem (MB) | 8MB | The amount of memory to be used by internal sort operations and hash tables before writing to temporary disk files. query. |
postgresql-ha.plan.maintenance_work_mem (optional) | maintenance_work_mem (MB) | 64MB | This is the max memory that an operation like VACCUM , adding indexes or foreign keys can consume. |
postgresql-ha.continuous_archiving.archive_timeout (optional) | archive_timeout (seconds) | 60 | Force the server to switch to a new WAL segment file periodically limiting how old unarchived data can be. Can be 0, or any value higher than 60. |
Examples
Here we give you examples for different service plans with values computed based on the VM in which the service instance runs. For that purprose, we define the service plan instances to have a given amount of RAM.
a9s PostgreSQL single small (RAM: 2GB)
Setting | Default Value | Description |
---|---|---|
effective_cache_size (MB) | 1GB | The planner's assumption about the effective size of the disk cache that is available to a single query. |
max_connections | 256 | The maximum number of concurrent connections to the database server. |
shared_buffers (MB) | 512MB | The amount of memory the database server uses for shared memory buffers. |
temp_file_limit | -1 | The maximum amount of disk space that a process can use for temporary files, such as sort and hash temporary files, or the storage file for a held cursor. The value is specified in kilobytes, and -1 (the default) means no limit. |
work_mem (MB) | 8MB | The amount of memory to be used by internal sort operations and hash tables before writing to temporary disk files. query. |
maintenance_work_mem (MB) | 64MB | This is the max memory that an operation like VACCUM , adding indexes or foreign keys can consume. |
a9s PostgreSQL single big (RAM: 8GB)
Setting | Default Value | Description |
---|---|---|
effective_cache_size (MB) | 6GB | The planner's assumption about the effective size of the disk cache that is available to a single query. |
max_connections | 512 | The maximum number of concurrent connections to the database server. |
shared_buffers (MB) | 2048MB | The amount of memory the database server uses for shared memory buffers. |
temp_file_limit | -1 | The maximum amount of disk space that a process can use for temporary files, such as sort and hash temporary files, or the storage file for a held cursor. The value is specified in kilobytes, and -1 (the default) means no limit. |
work_mem (MB) | 8MB | The amount of memory to be used by internal sort operations and hash tables before writing to temporary disk files. query. |
maintenance_work_mem (MB) | 64MB | This is the max memory that an operation like VACCUM , adding indexes or foreign keys can consume. |
a9s KeyValue
Property | Setting | Default Value | Description |
---|---|---|---|
valkey.lua-time-limit | lua-time-limit | 5000 | Max execution time of a Lua script in milliseconds |
valkey.maxclients | maxclients | 10000 | Max number of connected clients at the same time |
valkey.maxmemory-policy | maxmemory-policy | volatile-lru | Eviction policy to use when maxmemory is reached. Options: volatile-lru, allkeys-lru, volatile-lfu, allkeys-lfu, volatile-random, allkeys-random, volatile-ttl, noeviction |
valkey.maxmemory-samples | maxmemory-samples | 5 | Number of samples Valkey checks before deleting one |
valkey.slowlog-log-slower-than | slowlog-log-slower-than | 10000 | Execution time to log commands slower than the given number in microseconds |
valkey.slowlog-max-len | slowlog-max-len | 128 | Log length |
valkey.tcp-backlog | tcp-backlog | 10000 | Queue length for established TCP connections |
valkey.tcp-keepalive | tcp-keepalive | 30 | Period used to send TCP ACKs |
a9s Messaging
Property | Setting | Default Value | Description |
---|---|---|---|
- | ulimit -n | 64000 | The max. number of file descriptors the RabbitMQ process is allowed to open (unix specific) |
- | async threads | +A 64 | The max. number of async threads the Erlang VM will make available - see here for more information |
- | vm_memory_calculation_strategy | rss | Selects Erlang VM memory consumption calculation strategy |
rabbitmq.vm_memory_high_watermark | vm_memory_high_watermark.relative | 0.42 | Maximum memory in percent which RabbitMQ could use. |
- | vm_memory_high_watermark_paging_ratio | 0.5 | Fraction of the high watermark limit at which queues start to page message out to disc in order to free up memory. |
rabbitmq.disk_free_limit_mem_relative | disk_free_limit.relative | 1.5 | At least disk_free_limit_mem_relative *TOTAL_RAM must be available on disk - in case this limit is reached the broker will start blocking clients which publish messages |
rabbitmq.tcp_listen_backlog | tcp_listen_options.backlog | 2048 | Maximum size of the unaccepted TCP connections queue. When this size is reached, new connections will be rejected. |
- | tcp_listen_options.nodelay | true | Disable Nagle's Algorithm |
rabbitmq.tcp_listen_backlog | tcp_listen_options.backlog | 2048 | Maximum size of the unaccepted TCP connections queue. When this size is reached, new connections will be rejected. |
- | queue_index_embed_msgs_below | 4096 | Size in bytes below which to embed messages in the queue index |
a9s Redis
Property | Setting | Default Value | Description |
---|---|---|---|
redis.tcp-backlog | tcp-backlog | 10000 | Queue length for established TCP connections |
redis.tcp-keepalive | tcp-keepalive | 30 | Period used to send TCP ACKs |
redis.maxclients | maxclients | 10000 | Max. number of connected clients at the same time |
redis.maxmemory-policy | maxmemory-policy | volatile-lru | Policy of what to remove when maxmemory is reached. Options: volatile-lru, allkeys-lru, volatile-lfu, allkeys-lfu, volatile-random, allkeys-random, volatile-ttl, noeviction |
redis.maxmemory-samples | maxmemory-samples | 5 | Number of samples Redis checks before deleting one |
redis.lua-time-limit | lua-time-limit | 5000 | Max execution time of a Lua script in milliseconds |
redis.slowlog-log-slower-than | slowlog-log-slower-than | 10000 | Execution time to log commands slower than the given number in microseconds |
redis.slowlog-max-len | slowlog-max-len | 128 | Log length |