[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 1/2] tools/xenstore: set oom score for xenstore daemon on Linux
On 30.07.21 15:26, Ian Jackson wrote:
Juergen Gross writes ("[PATCH v3 1/2] tools/xenstore: set oom score for xenstore
daemon on Linux"):
Xenstored is absolutely mandatory for a Xen host and it can't be
restarted, so being killed by OOM-killer in case of memory shortage is
to be avoided.
Set /proc/$pid/oom_score_adj (if available) per default to -500 (this
translates to 50% of dom0 memory size) in order to allow xenstored to
use large amounts of memory without being killed.
...
+## Type: integer
+## Default: 50
+#
+# Percentage of dom0 memory size the xenstore daemon can use before the
+# OOM killer is allowed to kill it.
+#XENSTORED_OOM_MEM_THRESHOLD=50
+
## Type: string
## Default: @LIBEXEC@/boot/xenstore-stubdom.gz
Thanks for working on this. I approve of the principle.
I have one question about detail:
}
+ [ -z "$XENSTORED_OOM_MEM_THRESHOLD" ] || XENSTORED_OOM_MEM_THRESHOLD=50
+ XS_OOM_SCORE=-$(($XENSTORED_OOM_MEM_THRESHOLD * 10))
+
+ rm -f @XEN_RUN_DIR@/xenstored.pid
...
+ XS_PID=`cat @XEN_RUN_DIR@/xenstored.pid`
+ echo $XS_OOM_SCORE >/proc/$XS_PID/oom_score_adj
The effect of all this is that the value specified in
XENSTORED_OOM_MEM_THRESHOLD is transformed before being echoed into
/proc, by being multiplied by -10.
Yes.
Of course an alternative would be to ask the user to specify the
tuneable directly but given its rather more obscure semantics I think
it is reasonable to have this done by the script.
Correct. Otherwise the user would need to know about the oom_score_adj
ABI.
But maybe we could add something to the doc comment ?
Eg
# (The specified value is multiplied by -10 and echoed into
# /proc/PID/oom_score_adj.)
?
Why? This is an internal implementation detail. I don't see why the
user needs to know how this is accomplished. What is unclear with the
XENSTORED_OOM_MEM_THRESHOLD semantics as described?
There is no other parameter with an explanation how it's semantics are
being accomplished.
Juergen
Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature
|