allow users to configure netdata oom score
Costa Tsaousis (ktsaou) committed
Jan 29, 2017 at 18:39 UTC
70c77df10296745bd874b1fdff7aa21e49662cb2
3 files changed
+6
-4
src/daemon.c
+2
-2
@@ -189,7 +189,7 @@ int sched_setscheduler_idle(void) {
189
#endif
190
}
191
192
-int become_daemon(int dont_fork, const char *user)
192
+int become_daemon(int dont_fork, const char *user, int oom_score)
193
{
194
if(!dont_fork) {
195
int i = fork();
@@ -239,7 +239,7 @@ int become_daemon(int dont_fork, const char *user)
239
umask(0007);
240
241
// adjust my Out-Of-Memory score
242
- oom_score_adj(1000);
242
+ oom_score_adj(oom_score);
243
244
// never become a problem
245
if(sched_setscheduler_idle() != 0) {
src/daemon.h
+1
-1
@@ -8,7 +8,7 @@ extern void sig_handler_reload_health(int signo);
8
9
extern int become_user(const char *username, int pid_fd);
10
11
-extern int become_daemon(int dont_fork, const char *user);
11
+extern int become_daemon(int dont_fork, const char *user, int oom_score);
12
13
extern void netdata_cleanup_and_exit(int i);
14
src/main.c
+3
-1
@@ -338,6 +338,7 @@ int main(int argc, char **argv)
338
int i, check_config = 0;
339
int config_loaded = 0;
340
int dont_fork = 0;
341
+ int oom_score = 1000;
342
size_t wanted_stacksize = 0, stacksize = 0;
343
pthread_attr_t attr;
344
@@ -616,6 +617,7 @@ int main(int argc, char **argv)
617
// --------------------------------------------------------------------
618
619
rrd_memory_mode = rrd_memory_mode_id(config_get("global", "memory mode", rrd_memory_mode_name(rrd_memory_mode)));
620
+ oom_score = (int)config_get_number("global", "OOM score", oom_score);
621
622
// --------------------------------------------------------------------
623
@@ -755,7 +757,7 @@ int main(int argc, char **argv)
757
#endif /* NETDATA_INTERNAL_CHECKS */
758
759
// fork, switch user, create pid file, set process priority
758
- if(become_daemon(dont_fork, user) == -1)
760
+ if(become_daemon(dont_fork, user, oom_score) == -1)
761
fatal("Cannot daemonize myself.");
762
763
info("netdata started on pid %d.", getpid());