#20 Write stats collecting mechanism

クローズ
yannweb4年前 に作成 · 2件のコメント
yannweb4年前 にコメント

Nedd #24

Find a way to collect stats in pool_handling process.

The collection mechanism should give access to UDP server ( see #19 ) to following data :

  • worker count
  • requests count last 10/5/1 minute
  • request time average (maybe ?) => slow IPC between worker & pool ?
  • total request counter (maybe ?) => will overflow ?!
  • idle/busy state (maybe ?) => change too fast ?
  • idle/busy ratio or workload (maybe ?)

We have to take care of not slowing down the workers with this component…

Maybe the collection child could help implementing this mechanism ?

__Nedd #24__ Find a way to collect stats in pool_handling process. The collection mechanism should give access to UDP server ( see #19 ) to following data : - worker count - requests count last 10/5/1 minute - request time average (maybe ?) => slow IPC between worker & pool ? - total request counter (maybe ?) => will overflow ?! - idle/busy state (maybe ?) => change too fast ? - idle/busy ratio or workload (maybe ?) We have to take care of not slowing down the workers with this component... Maybe the collection child could help implementing this mechanism ?
yannweb がマイルストーン BETA version に追加 4年前
yannweb がラベル
enhancement
を追加 4年前
yannweb がラベル
_core
を追加 4年前
yannweb4年前 にコメント
オーナー

A solution to a fast request counter implementation can use semaphores :

When a worker starts handling a request it increment a sempahore. Meanwhile, a counter process (pool_handler or stats collection child) will attempt to decrease (fast enough) the semaphore with WNOHANG.

If the decrement semop do not fail, a counter can be incremented.

Note : the 10/5/1 min counters implies to store all requests timestamps ?? Maybe we can associate a timestamp with a request count ?

=> if 100 req/s stores {time(NULL), 100} and not time_t [100] = {time(NULL), time(NULL), etc.}

A solution to a fast request counter implementation can use semaphores : When a worker starts handling a request it increment a sempahore. Meanwhile, a counter process (pool_handler or stats collection child) will attempt to decrease (fast enough) the semaphore with WNOHANG. If the decrement semop do not fail, a counter can be incremented. Note : the 10/5/1 min counters implies to store all requests timestamps ?? Maybe we can associate a timestamp with a request count ? <code>=> if 100 req/s stores {time(NULL), 100} and not time_t [100] = {time(NULL), time(NULL), etc.}</code>
yannweb が作業を開始 4年前
yannweb が作業を終了 4年前
54min 36s
yannweb が作業を開始 4年前
yannweb が作業を終了 4年前
3h 12min
yannweb が自身を担当者に設定 4年前
yannweb が作業時間を追加 4年前
1h
yannweb が依存関係を追加 4年前
yannweb が作業を開始 4年前
yannweb が作業を終了 4年前
31min 16s
yannweb4年前 にコメント
オーナー

closed by b3af92459e

closed by b3af92459e
yannweb がクローズ 4年前
サインインしてこの会話に参加。
マイルストーンなし
担当者なし
1 人の参加者
かかった時間の合計: 5h 37min 52s
Yann Weber
5h 37min 52s
期日

期日は未設定です。

読み込み中…
キャンセル
保存
まだ内容がありません