On v6.4, the node process is used for: 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:
 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 |