How to adjust OOM score for a process?

转载自http://www.dbasquare.com/kb/how-to-adjust-oom-score-for-a-process/

How to adjust OOM score for a process?

 

Each process in Linux has a OOM score assigned to it. Its value is primarily based on the amount of memory a process uses. Whenever system is about to run out of memory, OOM killer terminates the program with the highest score.

To prevent it from killing a critical application, such as for example a database instance, the score can be manually adjusted. It is possible through /proc/[pid]/oom_score_adj (or /proc/[pid]/oom_adj for kernels older than 2.6.29). The range of values which oom_score_adj accepts is from -1000 to 1000, or from -17 to 15 in the deprecated interface that relies onoom_adj. The score is either reduced or increased by the adjustment value.

For example to reduce chances of loosing mysqld process:

# ps ax | grep '[m]ysqld'
 6445 ?        Ssl    0:04 /usr/sbin/mysqld --defaults-file=/etc/mysql/my.cnf
# cat /proc/6445/oom_score
124
# echo '-1000' > /proc/6445/oom_score_adj
# cat /proc/6445/oom_score
0

你可能感兴趣的:(process)