Skip to main content
jstan
Staff
Staff
September 14, 2022

Troubleshooting Tip: High memory usage of node process

  • September 14, 2022
  • 1 reply
  • 36497 views

Description

This article describes the reason for high memory utilization in the node process.

Scope

FortiGate running FortiOS v6.4.x, v7.0.x, v7.2.x and v7.4.

Solution

On v6.4, the node process is used for:

  • Report management (which includes Security Fabric (CSF) / FortiView / Security Rating).

  • WebSockets.

  • Maintaining the CLI console widget when accessing the FortiGate via HTTP/HTTPS.


From v7.0 onwards, the node process is also responsible for:

Processing all incoming HTTP/HTTPS to serve static files (before v7.0, the process HTTPSD served static files).

On v7.0, the 3 main node.js scripts on a FortiGate are for:

  • Report runner (Security Rating).

  • CLI console.

  • SSL VPN QR code generation.

 

The security rating result submission is enabled by default on the FortiGate.
This feature enables the submission of security rating results to FortiGuard servers for data collection purposes and continuous learning.
The feature is memory-intensive and could lead to high memory usage observed on the node process.

 

A high memory usage of the node process can be seen, for example, with the following commands:

diagnose sys top-mem
diagnose sys top 1 20 1


Example output from the 'diagnose sys top' command:

Version: FortiGate-400E v6.4.7,build1911,210825 (GA)
Run Time: 43 days, 22 hours and 40 minutes
0U, 0N, 1S, 99I, 0WA, 0HI, 0SI, 0ST; 7852T, 2818F
node 197 S 0.0 31.1


The 'node 197 S 0.0 31.1' line indicates 31% memory usage of the node process.

To disable the security rating functionality, execute the following command:

config system global
    set security-rating-result-submission disable
end

 

In some cases, it might be required to also disable the scheduled rating and restart the Node.js process:

config system global
    set security-rating-result-submission disable
    set security-rating-run-on-schedule disable
end

 

In some cases, it might be required to also disable the scheduled rating and restart the Node.js process:

In FortiOS versions before v7.0:

diagnose nodejs process restart

 
In FortiOS versions after FortiOS v7.0:

fnsysctl killall node

 

In some cases, it may be necessary to remove a single node process. List the IDs of node processes currently running:

diagnose sys process pidof node


Kill the appropriate process by ID:

diagnose sys kill 11 <Process ID>  


Running a 'killall' on a process can make the system unstable.

 

Another recommended workaround is to create an auto-script to periodically restart the node process, as shown below:

config system auto-script
    edit restart_node
        set interval 86400
        set repeat 100
        set start auto
        set script 'diagnose nodejs process restart'
    next
end


This script will automatically restart the node process every 24 hours (86400 seconds), which may help prevent the device from entering conserve mode.

Notes: The command 'diagnose nodejs process restart' can be used in v7.6.5 with the auto-script option.

The command 'set security-rating-result-submission' is not available anymore in v7.4.x.

High memory consumption on the Node.js process is still being observed in FortiOS v7.4.9. The manual workaround to restart the process manually or with an automation stitch can still be applied. Alternatively, upgrade to FortiOS v7.4.11 or v7.6.6, which both include the following command to auto-restart the Node.js process upon detection of high memory usage (the following command is hidden and does not display when running the command shown):

config system global
    set web-svc-auto-restart enable
end

 

In v7.4.10+, v7.6.5+, and v8.0.0+ an additional logging option can be enabled by running the following command for further investigation of memory usage. After enabling it, restart the Node.js process with the following command:

diagnose nodejs process restart


config log settings
    set web-svc-perf enable
end


Note: The settings 'set web-svc-auto-restart enable' and 'set web-svc-perf enable' are known to cause the FortiOS Web GUI CLI console to disconnect intermittently with the message 'Connection Lost'. This issue has been resolved in FortiOS v7.4.12, v7.6.7, and v8.0.0.

For more information, see this article: Troubleshooting Tip: CLI Console frequent 'Connection Lost' after enabling web-svc-perf under log setting

1 reply

R_B
Explorer II
April 30, 2026
Thought Leadership Security Summit. Outpace New Threats with AI - enhanced defense. Tuesday, Septmeber 15, 8:30 AM - 2:30 PM PT. The Golf Club at Newcastle, WA.