puppet Out of memory
本帖最后由 kofpet 于 2014-08-06 16:23 编辑环境:
centos 5.7 64位 内核:2.6.39
内存:8G
CPU:E5620
puppet version:2.7.25
通过使用puppet来管理节点服务器,在服务器上开启了四个puppetmasterd进程服务,但是老是过一段时间就报内存溢出,需要重启puppetmasterd才能解决。
有遇到这样情况的大神吗?
本帖最后由 rdcwayx 于 2014-08-16 21:32 编辑
puppet opensouce 还是 puppet enterprise?
我看到 free swap=0kb, 楼主加些虚拟内存吧。
http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/
先加2GB dd if=/dev/zero of=/swapfile1 bs=1024 count=1024000 /proc//oom_adj (since Linux 2.6.11)
This file can be used to adjust the score used to select which
process should be killed in an out-of-memory (OOM) situation.
The kernel uses this value for a bit-shift operation of the
process's oom_score value: valid values are in the range -16
to +15, plus the special value -17, which disables OOM-killing
altogether for this process.A positive score increases the
likelihood of this process being killed by the OOM-killer; a
negative score decreases the likelihood.
The default value for this file is 0; a new process inherits
its parent's oom_adj setting.A process must be privileged
(CAP_SYS_RESOURCE) to update this file.
Since Linux 2.6.36, use of this file is deprecated in favor of
/proc//oom_score_adj.
/proc//oom_score (since Linux 2.6.11)
This file displays the current score that the kernel gives to
this process for the purpose of selecting a process for the
OOM-killer.A higher score means that the process is more
likely to be selected by the OOM-killer.The basis for this
score is the amount of memory used by the process, with
increases (+) or decreases (-) for factors including:
* whether the process creates a lot of children using fork(2)
(+);
* whether the process has been running a long time, or has
used a lot of CPU time (-);
* whether the process has a low nice value (i.e., > 0) (+);
* whether the process is privileged (-); and
* whether the process is making direct hardware access (-).
The oom_score also reflects the adjustment specified by the
oom_score_adj or oom_adj setting for the process.
/proc//oom_score_adj (since Linux 2.6.36)
This file can be used to adjust the badness heuristic used to
select which process gets killed in out-of-memory conditions.
The badness heuristic assigns a value to each candidate task
ranging from 0 (never kill) to 1000 (always kill) to determine
which process is targeted.The units are roughly a proportion
along that range of allowed memory the process may allocate
from, based on an estimation of its current memory and swap
use.For example, if a task is using all allowed memory, its
badness score will be 1000.If it is using half of its
allowed memory, its score will be 500.
There is an additional factor included in the badness score:
root processes are given 3% extra memory over other tasks.
The amount of "allowed" memory depends on the context in which
the OOM-killer was called.If it is due to the memory
assigned to the allocating task's cpuset being exhausted, the
allowed memory represents the set of mems assigned to that
cpuset (see cpuset(7)).If it is due to a mempolicy's node(s)
being exhausted, the allowed memory represents the set of
mempolicy nodes.If it is due to a memory limit (or swap
limit) being reached, the allowed memory is that configured
limit.Finally, if it is due to the entire system being out
of memory, the allowed memory represents all allocatable
resources.
The value of oom_score_adj is added to the badness score
before it is used to determine which task to kill.Acceptable
values range from -1000 (OOM_SCORE_ADJ_MIN) to +1000
(OOM_SCORE_ADJ_MAX).This allows user space to control the
preference for OOM-killing, ranging from always preferring a
certain task or completely disabling it from OOM-killing.The
lowest possible value, -1000, is equivalent to disabling OOM-
killing entirely for that task, since it will always report a
badness score of 0.
Consequently, it is very simple for user space to define the
amount of memory to consider for each task.Setting a
oom_score_adj value of +500, for example, is roughly
equivalent to allowing the remainder of tasks sharing the same
system, cpuset, mempolicy, or memory controller resources to
use at least 50% more memory.A value of -500, on the other
hand, would be roughly equivalent to discounting 50% of the
task's allowed memory from being considered as scoring against
the task.
For backward compatibility with previous kernels,
/proc//oom_adj can still be used to tune the badness
score.Its value is scaled linearly with oom_score_adj.
Writing to /proc//oom_score_adj or /proc//oom_adj
will change the other with its scaled value.
你client多少呀,8G还没内存?!机器上还有装别的东西不?! puppet opensouce ,swap内存我们一般都不会用到的。回复 2# rdcwayx
回复 5# kofpet
是不会用,还是没配好啊。 swap空间使用不是你手工控制的,系统会自动调配的。
你的报告里明显有个 free swap =0kb,你还是再按照这个查一下。 不好意思迟来的回复,系统我有开启自动内存回收机制的,但是还是会使用到swap,服务器上单单跑一个Puppet而已,8g内存应该是够用的。回复 6# rdcwayx
页:
[1]