2011-11-25 15 views
5

Szukałem sposobu na pobranie informacji o tym, jak harmonogram jest wykonywany podczas wykonywania programu: które procesy są w programie planującym, czy zmieniają się, jaki proces jest aktywny w każdym programie planującym, jeśli harmonogram działa w jednym rdzeniu itp ...Erlang VM: informacje o czasie pracy programu planującego

Wszelkie pomysły lub powiązana dokumentacja/artykuły/cokolwiek?

Odpowiedz

5

Proponuję spojrzeć na następujące tracing/opcji profilowania:

erlang:system_profile/2

Posiada opcje monitorowania planującego i kolejki rozdziałów (runnable_procs) działalności. Opcja scheduler zgłosi

{profile, scheduler, Id, State, NoScheds, Ts} 

gdzie państwo powie, czy jest aktywny czy nie. NoScheds zgłasza liczbę aktualnie aktywnych programów planujących (jeśli dobrze pamiętam).

Opcja runnable_procs informuje, czy proces jest wprowadzany lub usuwany z kolejki uruchamiania określonego programu planującego.

+0

dzięki! Miałem R14A i zawsze zwracam undefined, ale uaktualniłem do R14B04 i teraz działa dobrze: D – raymond

+0

proces jest aktywny, gdy jest w kolejce uruchamiania, nie tylko kiedy faktycznie działa, prawda? – raymond

+0

Tak, jest uważana za aktywną, zarówno gdy jest uruchamiana (w kolejce uruchamiania), jak i faktycznie działająca i nieaktywna w inny sposób. – psyeugenic

4

Jeśli posiadasz system obsługujący funkcję DTrace, możesz użyć opracowywanych sond erlang dtrace, aby dokładnie zobaczyć, kiedy występują zdarzenia planowania procesu.

Na przykład napisałem simple one-liner, który pokazuje liczbę nanosekund, które upływają między wysłaniem wiadomości do procesu i zaplanowaniem wykonania procesu odbiorcy (± kilka nanosekund dla wariancji i procesów taki).

+0

Ja lubię dtrace, szkoda, że ​​działa tylko na mac i solaris (i kilku innych), ale nie na Linuksie. @ Dustin, dobra robota na implancie erlang/dtrace. – psyeugenic

+0

systemtap rodzaj prac do robienia tych samych rzeczy. Zawsze możesz pracować nad czymś, co nie jest Linuxem lub Windowsem wystarczająco, aby dowiedzieć się, jak to działa, a następnie zastosować tę wiedzę z powrotem na wdrożenie Linux. – Dustin

+0

ciekawe, na pewno sprawdzę DTrace/SystemTrap! – raymond

Powiązane problemy