maybe hopefully fixed cpu fork logging

This commit is contained in:
2026-05-22 21:54:18 +03:00
parent 10155bfaf1
commit eedf82225b
+13 -3
View File
@@ -260,7 +260,7 @@ int main(void)
perror("fopen csv"); perror("fopen csv");
return 1; return 1;
} }
fprintf(csv, "timestamp,elapsed_s,load1,load5,load15,mem_total_kb,mem_available_kb,mem_used_kb,proc_count,thread_count_total,pid,cpu_pct,sys_cpu_pct,rss_kb,vsz_kb,stack_kb,heap_kb,proc_threads\n"); fprintf(csv, "timestamp,elapsed_s,load1,load5,load15,mem_total_kb,mem_available_kb,mem_used_kb,proc_count,thread_count_total,pid,cpu_pct,sys_cpu_pct,forks_per_sec,rss_kb,vsz_kb,stack_kb,heap_kb,proc_threads\n");
long count = 0; long count = 0;
long prev_proc_count = 0; long prev_proc_count = 0;
@@ -273,6 +273,8 @@ int main(void)
long prev_ticks = read_self_ticks(); long prev_ticks = read_self_ticks();
double prev_uptime = read_uptime(); double prev_uptime = read_uptime();
long prev_count = count;
double prev_sample_uptime = start_uptime;
long clk_tck = sysconf(_SC_CLK_TCK); long clk_tck = sysconf(_SC_CLK_TCK);
if (clk_tck <= 0) { if (clk_tck <= 0) {
clk_tck = 100; clk_tck = 100;
@@ -341,13 +343,21 @@ int main(void)
prev_cpu_total = cpu_total; prev_cpu_total = cpu_total;
prev_cpu_idle = cpu_idle; prev_cpu_idle = cpu_idle;
double sample_dt = now_uptime - prev_sample_uptime;
double forks_per_sec = 0.0;
if (sample_dt > 0.0) {
forks_per_sec = (double)(count - prev_count) / sample_dt;
}
prev_count = count;
prev_sample_uptime = now_uptime;
char ts[64]; char ts[64];
format_timestamp(ts, sizeof(ts)); format_timestamp(ts, sizeof(ts));
fprintf(csv, "%s,%.3f,%.2f,%.2f,%.2f,%ld,%ld,%ld,%ld,%ld,%ld,%.2f,%.2f,%ld,%ld,%ld,%ld,%ld\n", fprintf(csv, "%s,%.3f,%.2f,%.2f,%.2f,%ld,%ld,%ld,%ld,%ld,%ld,%.2f,%.2f,%.2f,%ld,%ld,%ld,%ld,%ld\n",
ts, elapsed_s, load1, load5, load15, ts, elapsed_s, load1, load5, load15,
mem_total, mem_avail, mem_used, proc_count, thread_total, mem_total, mem_avail, mem_used, proc_count, thread_total,
(long)getpid(), cpu_pct, sys_cpu_pct, rss, vsz, stk, heap, proc_threads); (long)getpid(), cpu_pct, sys_cpu_pct, forks_per_sec, rss, vsz, stk, heap, proc_threads);
fflush(csv); fflush(csv);
} }
} }