CloudI / CloudI

A Cloud at the lowest level!

Home Page:https://cloudi.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

loadtesting and checking latency

okeuday opened this issue · comments

A goal is to determine the source of the 3 second max sample that appears in some of the loadtests and look at minimizing it. It appears to be a 2 second timer wheel delay with an extra 1 second when the process is on the wrong scheduler, not associated with the timer wheel, but that is just a guess.

Use dtrace, lock counter and system monitor (erlang:system_monitor(MonitorPid, [busy_port, busy_dist_port, {long_gc, 200}, {long_schedule, 200}, ...])., locking scheduler threads: erlang:system_monitor(MonitorPid, [{long_schedule, 2}, {long_gc, 25}, {large_heap, ...}]).).

{scheduler, N} is an undocumented option to spawn (not lock?) an Erlang pid to a scheduler thread, which may be helpful

Make sure to use erl command line options (+sbt db) +sbt tnnps and +sub true

External service bottleneck is being tracked at http://bugs.erlang.org/browse/ERL-140

With the changes in Erlang/OTP 21 (I/O Polling) and the addition of cloudi_service_request_rate this issue can be closed.