The Node JS optimization pack enables the ability to optimize applications based on Node running in V8.
The following component types are supported for NodeJS applications.
Component Type | Description |
---|---|
Here’s the command to install the Node JS optimization pack using the Akamas CLI:
For more information on the process of installing or upgrading an optimization pack refer to Install Optimization Packs.
Parameter | Type | Unit | Default Value | Domain | restart | Description |
---|
Node JS 18 runtime
cpu_used | CPUs | The total amount of CPUs used |
cpu_util | percent | The average CPU utilization % across all the CPUs (i.e., how much time on average the CPUs are busy doing work) |
memory_used | bytes | The total amount of memory used |
memory_util | percent | The average memory utilization % |
nodejs_gc_heap_used | bytes | GC heap used |
nodejs_rss | bytes | Process Resident Set Size (RSS) |
nodejs_v8_heap_total | bytes | V8 heap total |
nodejs_v8_heap_used | bytes | V8 heap used |
nodejs_number_active_threads | threads | Number of active threads |
nodejs_suspension_time | percent | Suspension time % |
nodejs_active_handles | handles | Number of active libuv handles grouped by handle type. Every handle type is C++ class name |
nodejs_active_handles_total | handles | Total number of active handles |
nodejs_active_requests | requests | Number of active libuv requests grouped by request type. Every request type is C++ class name |
nodejs_active_requests_total | requests | Total number of active requests |
nodejs_eventloop_lag_max_seconds | seconds | The maximum recorded event loop delay |
nodejs_eventloop_lag_mean_seconds | seconds | The mean of the recorded event loop delays |
nodejs_eventloop_lag_min_seconds | seconds | The minimum recorded event loop delay |
nodejs_eventloop_lag_p50_seconds | seconds | The 50th percentile of the recorded event loop delays |
nodejs_eventloop_lag_p90_seconds | seconds | The 90th percentile of the recorded event loop delays |
nodejs_eventloop_lag_p99_seconds | seconds | The 99th percentile of the recorded event loop delays |
nodejs_eventloop_lag_seconds | seconds | Lag of event loop in seconds |
nodejs_external_memory_bytes | bytes | NodeJS external memory size in bytes |
nodejs_gc_duration_seconds_bucket | seconds | The total count of observations for a bucket in the histogram. Garbage collection duration by kind, one of major, minor, incremental or weakcb |
nodejs_gc_duration_seconds_count | seconds | The total number of observations for Garbage collection duration by kind, one of major, minor, incremental or weakcb |
nodejs_gc_duration_seconds_sum | seconds | The total sum of observations for Garbage collection duration by kind, one of major, minor, incremental or weakcb |
nodejs_heap_size_total_bytes | bytes | Process heap size from NodeJS in bytes |
nodejs_heap_size_used_bytes | bytes | Process heap size used from NodeJS in bytes |
nodejs_heap_space_size_available_bytes | bytes | Process heap size available from NodeJS in bytes |
nodejs_heap_space_size_total_bytes | bytes | Process heap space size total from NodeJS in bytes |
nodejs_heap_space_size_used_bytes | bytes | Process heap space size used from NodeJS in bytes |
process_cpu_seconds_total | seconds | Total user and system CPU time spent in seconds |
process_cpu_system_seconds_total | seconds | Total system CPU time spent in seconds |
process_cpu_user_seconds_total | seconds | Total user CPU time spent in seconds |
process_heap_bytes | bytes | Process heap size in bytes |
process_max_fds | fds | Maximum number of open file descriptors |
process_open_fds | fds | Number of open file descriptors |
process_resident_memory_bytes | bytes | Resident memory size in bytes |
process_virtual_memory_bytes | bytes | Virtual memory size in bytes |
v8_allocation_size_pretenuring | categorical |
|
| yes | Pretenure with allocation sites |
v8_min_semi_space_size | integer | megabytes |
|
| yes | Min size of a semi-space (in MBytes), the new space consists of two semi-spaces |
v8_max_semi_space_size | integer | megabytes |
|
| yes | Max size of a semi-space (in MBytes), the new space consists of two semi-spaces. This parameter is equivalent to v8_max_semi_space_size_ordinal. |
v8_max_semi_space_size_ordinal | ordinal | megabytes |
|
| yes | Max size of a semi-space (in MBytes), the new space consists of two semi-spaces. This parameter is equivalent to v8_max_semi_space_size but forces power of 2 values. |
v8_semi_space_grouth_factor | integer |
|
| yes | Factor by which to grow the new space |
v8_max_old_space_size | integer | megabytes |
|
| yes | Max size of the old space (in Mbytes) |
v8_max_heap_size | integer | megabytes |
|
| yes | Max size of the heap (in Mbytes) both max_semi_space_size and max_old_space_size take precedence. All three flags cannot be specified at the same time. |
v8_initial_heap_size | integer | megabytes |
|
| yes | Initial size of the heap (in Mbytes) |
v8_initial_old_space_size | integer | megabytes |
|
| yes | Initial old space size (in Mbytes) |
v8_parallel_scavenge | categorical |
|
| yes | Parallel scavenge |
v8_scavenge_task_trigger | integer |
|
| yes | Scavenge task trigger in percent of the current heap limit |
v8_scavenge_separate_stack_scanning | categorical |
|
| yes | Use a separate phase for stack scanning in scavenge |
v8_concurrent_marking | categorical |
|
| yes | Use concurrent marking |
v8_parallel_marking | categorical |
|
| yes | Use parallel marking in atomic pause |
v8_concurrent_sweeping | categorical |
|
| yes | Use concurrent sweeping |
v8_heap_growing_percent | integer |
|
| yes | Specifies heap growing factor as (1 + heap_growing_percent/100) |
v8_os_page_size | integer | kilobytes |
|
| yes | Override OS page size (in KBytes) |
v8_stack_size | integer | kilobytes |
|
| yes | Default size of stack region v8 is allowed to use (in kBytes) |
v8_single_threaded | categorical |
|
| yes | Disable the use of background tasks |
v8_single_threaded_gc | categorical |
|
| yes | Disable the use of background gc tasks |