You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the point of 15-20 rps we can see constant Probe disconnected. (reason: transport close) (API failed to send ping in time), Probe disconnected. (reason: ping timeout) (probe failed to response with pong in time) and Probe disconnected. (reason: transport error).
Here are all performance tuning ideas. They are different in terms of ease of implementation and perf gain, but we are listing all of them:
find an optimal number of cluster workers (currently dedi CPU is not overloaded, while node.js process is)
use uWS instead of socket.io (which should be more performant and handle high load I/O effetively)
tune UV_THREADPOOL_SIZE (thread pool is used for fs and dns operations)
cache ipv4 check during validation
stream the response to the user (mtr 500 probes measurement === 3MB of JSON)
change http framework to e.g. fastify (optimized http validation, logging)
we can move some of the logic from node to redis lua scripts (e.g. marking of measurement as 'finished' based on the 'probes_awaiting' field value)
deal with the I/O generated by NewRelic's metrics and logs (at least measure how much load it generates)
The text was updated successfully, but these errors were encountered:
Here are the current performance values:
At the point of 15-20 rps we can see constant
Probe disconnected. (reason: transport close)
(API failed to send ping in time),Probe disconnected. (reason: ping timeout)
(probe failed to response with pong in time) andProbe disconnected. (reason: transport error)
.Here are all performance tuning ideas. They are different in terms of ease of implementation and perf gain, but we are listing all of them:
UV_THREADPOOL_SIZE
(thread pool is used for fs and dns operations)The text was updated successfully, but these errors were encountered: