mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-05 19:10:45 +00:00
MINOR: activity: add per-thread statistics on FD takeover
The FD takeover operation might have certain impacts explaining unexpected activities, so it's important to report such a counter there. We thus count the number of times a thread has stolen an FD from another thread.
This commit is contained in:
parent
3bb617cfe0
commit
b159132ea3
@ -52,7 +52,7 @@ struct activity {
|
||||
unsigned int empty_rq; // calls to process_runnable_tasks() with nothing for the thread
|
||||
unsigned int long_rq; // process_runnable_tasks() left with tasks in the run queue
|
||||
unsigned int cpust_total; // sum of half-ms stolen per thread
|
||||
/* one unused entry left before end of first cache line */
|
||||
unsigned int fd_takeover; // number of times this thread stole another one's FD
|
||||
ALWAYS_ALIGN(64);
|
||||
|
||||
struct freq_ctr cpust_1s; // avg amount of half-ms stolen over last second
|
||||
|
@ -1103,6 +1103,7 @@ static struct connection *conn_backend_get(struct server *srv, int is_safe)
|
||||
mt_list_for_each_entry_safe(conn, &mt_list[i], list, elt1, elt2) {
|
||||
if (conn->mux->takeover && conn->mux->takeover(conn) == 0) {
|
||||
MT_LIST_DEL_SAFE(elt1);
|
||||
_HA_ATOMIC_ADD(&activity[tid].fd_takeover, 1);
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
|
@ -1174,6 +1174,7 @@ static int cli_io_handler_show_activity(struct appctx *appctx)
|
||||
chunk_appendf(&trash, "accq_full:"); SHOW_TOT(thr, activity[thr].accq_full);
|
||||
#ifdef USE_THREAD
|
||||
chunk_appendf(&trash, "accq_ring:"); SHOW_TOT(thr, (accept_queue_rings[thr].tail - accept_queue_rings[thr].head + ACCEPT_QUEUE_SIZE) % ACCEPT_QUEUE_SIZE);
|
||||
chunk_appendf(&trash, "fd_takeover:"); SHOW_TOT(thr, activity[thr].fd_takeover);
|
||||
#endif
|
||||
|
||||
#if defined(DEBUG_DEV)
|
||||
|
Loading…
Reference in New Issue
Block a user