Merge pull request #33 from prymitive/harakiri

More accurate harakiri counting
This commit is contained in:
unbit
2012-10-26 01:31:12 -07:00
3 changed files with 8 additions and 4 deletions
+5 -2
View File
@@ -499,6 +499,7 @@ int uwsgi_respawn_worker(int wid) {
// ... and memory/harakiri
uwsgi.workers[wid].harakiri = 0;
uwsgi.workers[wid].user_harakiri = 0;
uwsgi.workers[wid].pending_harakiri = 0;
uwsgi.workers[wid].rss_size = 0;
uwsgi.workers[wid].vsz_size = 0;
@@ -1076,7 +1077,7 @@ void uwsgi_register_cheaper_algo(char *name, int (*func) (void)) {
void trigger_harakiri(int i) {
int j;
uwsgi_log("*** HARAKIRI ON WORKER %d (pid: %d) ***\n", i, uwsgi.workers[i].pid);
uwsgi_log("*** HARAKIRI ON WORKER %d (pid: %d, try: %d) ***\n", i, uwsgi.workers[i].pid, uwsgi.workers[i].pending_harakiri+1);
if (uwsgi.harakiri_verbose) {
#ifdef __linux__
int proc_file;
@@ -1128,7 +1129,9 @@ void trigger_harakiri(int i) {
// allow SIGUSR2 to be delivered
sleep(1);
kill(uwsgi.workers[i].pid, SIGKILL);
uwsgi.workers[i].harakiri_count++;
if (!uwsgi.workers[i].pending_harakiri)
uwsgi.workers[i].harakiri_count++;
uwsgi.workers[i].pending_harakiri++;
}
// to avoid races
+2 -2
View File
@@ -185,7 +185,7 @@ void carbon_push_stats(int retry_cycle) {
total_rss += uwsgi.workers[i].rss_size;
total_vsz += uwsgi.workers[i].vsz_size;
total_harakiri += uwsgi.workers[i].harakiri_count/2;
total_harakiri += uwsgi.workers[i].harakiri_count;
}
//skip per worker metrics when disabled
@@ -209,7 +209,7 @@ void carbon_push_stats(int retry_cycle) {
wok = carbon_write(&fd, "uwsgi.%s.%s.worker%d.busyness %llu %llu\n", uwsgi.hostname, u_carbon.id, i, (unsigned long long) worker_busyness, (unsigned long long) uwsgi.current_time);
if (!wok) goto clear;
wok = carbon_write(&fd, "uwsgi.%s.%s.worker%d.harakiri %llu %llu\n", uwsgi.hostname, u_carbon.id, i, (unsigned long long) uwsgi.workers[i].harakiri_count/2, (unsigned long long) uwsgi.current_time);
wok = carbon_write(&fd, "uwsgi.%s.%s.worker%d.harakiri %llu %llu\n", uwsgi.hostname, u_carbon.id, i, (unsigned long long) uwsgi.workers[i].harakiri_count, (unsigned long long) uwsgi.current_time);
if (!wok) goto clear;
}
+1
View File
@@ -2079,6 +2079,7 @@ struct uwsgi_worker {
time_t harakiri;
time_t user_harakiri;
uint64_t harakiri_count;
int pending_harakiri;
uint64_t vsz_size;
uint64_t rss_size;