Calculate thread busyness as the current concurrent running threads vs. the max number of threads ever seen running concurrently.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4404 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2023-08-17 00:01:59 +00:00
parent 358d02d97f
commit faca2d387b
6 changed files with 23 additions and 61 deletions

View File

@ -1154,22 +1154,18 @@ static void _tf_ssb_rpc_connections_changed_callback(tf_ssb_t* ssb, tf_ssb_chang
typedef struct _delete_blobs_work_t
{
uv_work_t work;
uv_thread_t thread_id;
tf_ssb_t* ssb;
uint64_t start_time;
uint64_t end_time;
} delete_blobs_work_t;
static void _tf_ssb_rpc_delete_blobs_work(uv_work_t* work)
{
delete_blobs_work_t* delete = work->data;
delete->start_time = uv_hrtime();
delete->thread_id = uv_thread_self();
tf_ssb_t* ssb = delete->ssb;
tf_ssb_record_thread_busy(ssb, true);
int64_t age = _get_global_setting_int64(ssb, "blob_expire_age_seconds", -1);
if (age <= 0)
{
delete->end_time = uv_hrtime();
tf_ssb_record_thread_busy(ssb, false);
return;
}
int64_t start_ns = uv_hrtime();
@ -1209,13 +1205,12 @@ static void _tf_ssb_rpc_delete_blobs_work(uv_work_t* work)
int64_t duration_ms = (uv_hrtime() - start_ns) / 1000000LL;
tf_printf("Deleted %d blobs in %d ms.\n", deleted, (int)duration_ms);
_tf_ssb_rpc_start_delete_blobs(ssb, deleted ? (int)duration_ms : (15 * 60 * 1000));
delete->end_time = uv_hrtime();
tf_ssb_record_thread_busy(ssb, false);
}
static void _tf_ssb_rpc_delete_blobs_after_work(uv_work_t* work, int status)
{
delete_blobs_work_t* delete = work->data;
tf_ssb_record_thread_time(delete->ssb, (int64_t)delete->thread_id, delete->end_time - delete->start_time);
tf_ssb_unref(delete->ssb);
tf_free(delete);
}